From 88a2b2c7871494f7c001d23b83edaf1951619a91 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Fri, 12 Apr 2024 09:36:46 -0400 Subject: [PATCH] Respect per-file-ignores for RUF100 on blanket # noqa --- .../resources/test/fixtures/ruff/ruff_per_file_ignores.py | 1 + crates/ruff_linter/src/checkers/noqa.rs | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/ruff_linter/resources/test/fixtures/ruff/ruff_per_file_ignores.py b/crates/ruff_linter/resources/test/fixtures/ruff/ruff_per_file_ignores.py index 26112db8f424e..9eec8454522e7 100644 --- a/crates/ruff_linter/resources/test/fixtures/ruff/ruff_per_file_ignores.py +++ b/crates/ruff_linter/resources/test/fixtures/ruff/ruff_per_file_ignores.py @@ -1,2 +1,3 @@ import os import foo # noqa: F401 +import bar # noqa diff --git a/crates/ruff_linter/src/checkers/noqa.rs b/crates/ruff_linter/src/checkers/noqa.rs index 58a1efed90f06..e82645421e8ab 100644 --- a/crates/ruff_linter/src/checkers/noqa.rs +++ b/crates/ruff_linter/src/checkers/noqa.rs @@ -111,6 +111,7 @@ pub(crate) fn check_noqa( FileExemption::All => true, FileExemption::Codes(codes) => codes.contains(&Rule::UnusedNOQA.noqa_code()), }) + && !per_file_ignores.contains(Rule::UnusedNOQA) { for line in noqa_directives.lines() { match &line.directive { @@ -129,7 +130,7 @@ pub(crate) fn check_noqa( let mut unknown_codes = vec![]; let mut unmatched_codes = vec![]; let mut valid_codes = vec![]; - let mut self_ignore = per_file_ignores.contains(Rule::UnusedNOQA); + let mut self_ignore = false; for code in directive.codes() { let code = get_redirect_target(code).unwrap_or(code); if Rule::UnusedNOQA.noqa_code() == code {