From c2d7c673caa5f4d572f999ada6923f3521dd5f12 Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 29 Aug 2025 21:55:19 +0800 Subject: [PATCH] [`pyupgrade`] Add fix safety section to docs (`UP029`) (#17490) ## Summary Add `fix safety` section to `UP029: unnecessary_builtin_import.rs`, for #15584 --- .../pyupgrade/rules/unnecessary_builtin_import.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/crates/ruff_linter/src/rules/pyupgrade/rules/unnecessary_builtin_import.rs b/crates/ruff_linter/src/rules/pyupgrade/rules/unnecessary_builtin_import.rs index bef5438882..a01fe8d23a 100644 --- a/crates/ruff_linter/src/rules/pyupgrade/rules/unnecessary_builtin_import.rs +++ b/crates/ruff_linter/src/rules/pyupgrade/rules/unnecessary_builtin_import.rs @@ -27,6 +27,21 @@ use crate::{AlwaysFixableViolation, Fix}; /// str(1) /// ``` /// +/// ## Fix safety +/// This fix is marked as unsafe because removing the import +/// may change program behavior. For example, in the following +/// situation: +/// +/// ```python +/// def str(x): +/// return x +/// +/// +/// from builtins import str +/// +/// str(1) # `"1"` with the import, `1` without +/// ``` +/// /// ## References /// - [Python documentation: The Python Standard Library](https://docs.python.org/3/library/index.html) #[derive(ViolationMetadata)]