From abbbe8f3af905c655b9b345d7a325bea0e47861b Mon Sep 17 00:00:00 2001 From: Takayuki Maeda Date: Wed, 8 Oct 2025 13:52:43 +0900 Subject: [PATCH] [`ruff`] Use `DiagnosticTag` for more pyupgrade rules (#20734) --- .../src/rules/pyupgrade/rules/deprecated_c_element_tree.rs | 1 + .../src/rules/pyupgrade/rules/deprecated_mock_import.rs | 3 +++ .../src/rules/pyupgrade/rules/deprecated_unittest_alias.rs | 1 + .../src/rules/pyupgrade/rules/replace_universal_newlines.rs | 1 + .../src/rules/pyupgrade/rules/typing_text_str_alias.rs | 1 + 5 files changed, 7 insertions(+) diff --git a/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_c_element_tree.rs b/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_c_element_tree.rs index 03dfec9322..e154084268 100644 --- a/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_c_element_tree.rs +++ b/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_c_element_tree.rs @@ -43,6 +43,7 @@ where T: Ranged, { let mut diagnostic = checker.report_diagnostic(DeprecatedCElementTree, node.range()); + diagnostic.add_primary_tag(ruff_db::diagnostic::DiagnosticTag::Deprecated); let contents = checker.locator().slice(node); diagnostic.set_fix(Fix::safe_edit(Edit::range_replacement( contents.replacen("cElementTree", "ElementTree", 1), diff --git a/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_mock_import.rs b/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_mock_import.rs index 5a77e36dbb..654dcad96d 100644 --- a/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_mock_import.rs +++ b/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_mock_import.rs @@ -265,6 +265,7 @@ pub(crate) fn deprecated_mock_attribute(checker: &Checker, attribute: &ast::Expr }, attribute.value.range(), ); + diagnostic.add_primary_tag(ruff_db::diagnostic::DiagnosticTag::Deprecated); diagnostic.set_fix(Fix::safe_edit(Edit::range_replacement( "mock".to_string(), attribute.value.range(), @@ -313,6 +314,7 @@ pub(crate) fn deprecated_mock_import(checker: &Checker, stmt: &Stmt) { }, name.range(), ); + diagnostic.add_primary_tag(ruff_db::diagnostic::DiagnosticTag::Deprecated); if let Some(content) = content.as_ref() { diagnostic.set_fix(Fix::safe_edit(Edit::range_replacement( content.clone(), @@ -351,6 +353,7 @@ pub(crate) fn deprecated_mock_import(checker: &Checker, stmt: &Stmt) { }, stmt.range(), ); + diagnostic.add_primary_tag(ruff_db::diagnostic::DiagnosticTag::Deprecated); if let Some(indent) = indentation(checker.source(), stmt) { diagnostic.try_set_fix(|| { format_import_from(stmt, indent, checker.locator(), checker.stylist()) diff --git a/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_unittest_alias.rs b/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_unittest_alias.rs index 519f8d9d39..2a336e9b8c 100644 --- a/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_unittest_alias.rs +++ b/crates/ruff_linter/src/rules/pyupgrade/rules/deprecated_unittest_alias.rs @@ -98,6 +98,7 @@ pub(crate) fn deprecated_unittest_alias(checker: &Checker, expr: &Expr) { }, expr.range(), ); + diagnostic.add_primary_tag(ruff_db::diagnostic::DiagnosticTag::Deprecated); diagnostic.set_fix(Fix::safe_edit(Edit::range_replacement( format!("self.{target}"), expr.range(), diff --git a/crates/ruff_linter/src/rules/pyupgrade/rules/replace_universal_newlines.rs b/crates/ruff_linter/src/rules/pyupgrade/rules/replace_universal_newlines.rs index c9a2a8b530..9769dde244 100644 --- a/crates/ruff_linter/src/rules/pyupgrade/rules/replace_universal_newlines.rs +++ b/crates/ruff_linter/src/rules/pyupgrade/rules/replace_universal_newlines.rs @@ -68,6 +68,7 @@ pub(crate) fn replace_universal_newlines(checker: &Checker, call: &ast::ExprCall }; let mut diagnostic = checker.report_diagnostic(ReplaceUniversalNewlines, arg.range()); + diagnostic.add_primary_tag(ruff_db::diagnostic::DiagnosticTag::Deprecated); if call.arguments.find_keyword("text").is_some() { diagnostic.try_set_fix(|| { diff --git a/crates/ruff_linter/src/rules/pyupgrade/rules/typing_text_str_alias.rs b/crates/ruff_linter/src/rules/pyupgrade/rules/typing_text_str_alias.rs index 9e8adda647..3f11b63579 100644 --- a/crates/ruff_linter/src/rules/pyupgrade/rules/typing_text_str_alias.rs +++ b/crates/ruff_linter/src/rules/pyupgrade/rules/typing_text_str_alias.rs @@ -57,6 +57,7 @@ pub(crate) fn typing_text_str_alias(checker: &Checker, expr: &Expr) { .is_some_and(|qualified_name| matches!(qualified_name.segments(), ["typing", "Text"])) { let mut diagnostic = checker.report_diagnostic(TypingTextStrAlias, expr.range()); + diagnostic.add_primary_tag(ruff_db::diagnostic::DiagnosticTag::Deprecated); diagnostic.try_set_fix(|| { let (import_edit, binding) = checker.importer().get_or_import_builtin_symbol( "str",