From ffcdd4ea42114f0af4a1cbab4aff931be4eb0b0d Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 29 Aug 2025 21:41:06 +0800 Subject: [PATCH] [`refurb`] Add fix safety section (`FURB105`) (#17499) ## Summary This PR add the `fix safety` section for rule `FURB105` in `print_empty_string.rs` for #15584 Before: ``` def get_sep(): print("side effect") return "" print("", sep=get_sep()) ``` After: ``` def get_sep(): print("side effect") return "" print() ``` --------- Co-authored-by: Brent Westbrook <36778786+ntBre@users.noreply.github.com> --- .../ruff_linter/src/rules/refurb/rules/print_empty_string.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crates/ruff_linter/src/rules/refurb/rules/print_empty_string.rs b/crates/ruff_linter/src/rules/refurb/rules/print_empty_string.rs index b0b17456ab..29a26f44ca 100644 --- a/crates/ruff_linter/src/rules/refurb/rules/print_empty_string.rs +++ b/crates/ruff_linter/src/rules/refurb/rules/print_empty_string.rs @@ -30,6 +30,11 @@ use crate::{Applicability, Edit, Fix, FixAvailability, Violation}; /// print() /// ``` /// +/// ## Fix safety +/// This fix is marked as unsafe if it removes an unused `sep` keyword argument +/// that may have side effects. Removing such arguments may change the program's +/// behavior by skipping the execution of those side effects. +/// /// ## References /// - [Python documentation: `print`](https://docs.python.org/3/library/functions.html#print) #[derive(ViolationMetadata)]