diff --git a/crates/ruff/tests/lint.rs b/crates/ruff/tests/lint.rs index f9c819a5c4..c13ba49136 100644 --- a/crates/ruff/tests/lint.rs +++ b/crates/ruff/tests/lint.rs @@ -1021,6 +1021,22 @@ include = ["*.ipy"] Ok(()) } +#[test] +fn warn_invalid_noqa_with_no_diagnostics() { + assert_cmd_snapshot!(Command::new(get_cargo_bin(BIN_NAME)) + .args(STDIN_BASE_OPTIONS) + .args(["--isolated"]) + .arg("--select") + .arg("F401") + .arg("-") + .pass_stdin( + r#" +# ruff: noqa: AAA101 +print("Hello world!") +"# + )); +} + #[test] fn file_noqa_external() -> Result<()> { let tempdir = TempDir::new()?; diff --git a/crates/ruff/tests/snapshots/lint__warn_invalid_noqa_with_no_diagnostics.snap b/crates/ruff/tests/snapshots/lint__warn_invalid_noqa_with_no_diagnostics.snap new file mode 100644 index 0000000000..09772b73fc --- /dev/null +++ b/crates/ruff/tests/snapshots/lint__warn_invalid_noqa_with_no_diagnostics.snap @@ -0,0 +1,22 @@ +--- +source: crates/ruff/tests/lint.rs +info: + program: ruff + args: + - check + - "--no-cache" + - "--output-format" + - concise + - "--isolated" + - "--select" + - F401 + - "-" + stdin: "\n# ruff: noqa: AAA101\nprint(\"Hello world!\")\n" +--- +success: true +exit_code: 0 +----- stdout ----- +All checks passed! + +----- stderr ----- +warning: Invalid rule code provided to `# ruff: noqa` at -:2: AAA101 diff --git a/crates/ruff_linter/src/linter.rs b/crates/ruff_linter/src/linter.rs index 9d08f30135..ed27a6fdfd 100644 --- a/crates/ruff_linter/src/linter.rs +++ b/crates/ruff_linter/src/linter.rs @@ -267,7 +267,7 @@ pub fn check_path( } // Enforce `noqa` directives. - if (noqa.is_enabled() && !diagnostics.is_empty()) + if noqa.is_enabled() || settings .rules .iter_enabled()