From e6b00f0c4e41885f8be13eeb80069036077cc418 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Mon, 5 Jun 2023 13:32:06 -0400 Subject: [PATCH] Avoid running RUF100 rules when code contains syntax errors (#4869) --- crates/ruff/src/checkers/noqa.rs | 5 ++--- crates/ruff/src/linter.rs | 1 + 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/ruff/src/checkers/noqa.rs b/crates/ruff/src/checkers/noqa.rs index f54b937d32..52d47182b5 100644 --- a/crates/ruff/src/checkers/noqa.rs +++ b/crates/ruff/src/checkers/noqa.rs @@ -18,10 +18,9 @@ pub(crate) fn check_noqa( locator: &Locator, comment_ranges: &[TextRange], noqa_line_for: &NoqaMapping, + analyze_directives: bool, settings: &Settings, ) -> Vec { - let enforce_noqa = settings.rules.enabled(Rule::UnusedNOQA); - // Identify any codes that are globally exempted (within the current file). let exemption = noqa::file_exemption(locator.contents(), comment_ranges); @@ -93,7 +92,7 @@ pub(crate) fn check_noqa( } // Enforce that the noqa directive was actually used (RUF100). - if enforce_noqa { + if analyze_directives && settings.rules.enabled(Rule::UnusedNOQA) { for line in noqa_directives.lines() { match &line.directive { Directive::All(leading_spaces, noqa_range, trailing_spaces) => { diff --git a/crates/ruff/src/linter.rs b/crates/ruff/src/linter.rs index 79ed8fba70..bd8f713d87 100644 --- a/crates/ruff/src/linter.rs +++ b/crates/ruff/src/linter.rs @@ -214,6 +214,7 @@ pub fn check_path( locator, indexer.comment_ranges(), &directives.noqa_line_for, + error.is_none(), settings, ); if noqa.into() {