From b4a8a17a8b29887c32c3c44e611c3c3ddbbca2b9 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Sun, 12 Mar 2023 14:21:49 -0400 Subject: [PATCH] Avoid respecting noqa directives when RUF100 is enabled --- crates/ruff/src/checkers/noqa.rs | 6 ++---- crates/ruff/src/linter.rs | 7 ++++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/crates/ruff/src/checkers/noqa.rs b/crates/ruff/src/checkers/noqa.rs index f6dfcd52b9556..3ec8a31b73c3e 100644 --- a/crates/ruff/src/checkers/noqa.rs +++ b/crates/ruff/src/checkers/noqa.rs @@ -22,7 +22,7 @@ pub fn check_noqa( noqa_line_for: &IntMap, settings: &Settings, autofix: flags::Autofix, -) { +) -> Vec { let enforce_noqa = settings.rules.enabled(&Rule::UnusedNOQA); // Whether the file is exempted from all checks. @@ -264,7 +264,5 @@ pub fn check_noqa( } ignored_diagnostics.sort_unstable(); - for index in ignored_diagnostics.iter().rev() { - diagnostics.swap_remove(*index); - } + ignored_diagnostics } diff --git a/crates/ruff/src/linter.rs b/crates/ruff/src/linter.rs index e2432307c0d3a..7c634b409012c 100644 --- a/crates/ruff/src/linter.rs +++ b/crates/ruff/src/linter.rs @@ -215,7 +215,7 @@ pub fn check_path( .iter_enabled() .any(|rule_code| rule_code.lint_source().is_noqa()) { - check_noqa( + let ignored = check_noqa( &mut diagnostics, contents, indexer.commented_lines(), @@ -223,6 +223,11 @@ pub fn check_path( settings, error.as_ref().map_or(autofix, |_| flags::Autofix::Disabled), ); + if noqa.into() { + for index in ignored.iter().rev() { + diagnostics.swap_remove(*index); + } + } } LinterResult::new(diagnostics, error)