Skip to content

Commit 50bf3fa

Browse files
MeGaGiGaGondylwil3
andauthored
[flake8-pie] Add fix safety section to PIE794 (astral-sh#18802)
<!-- Thank you for contributing to Ruff/ty! To help us out with reviewing, please consider the following: - Does this pull request include a summary of the change? (See below.) - Does this pull request include a descriptive title? (Please prefix with `[ty]` for ty pull requests.) - Does this pull request include references to any relevant issues? --> ## Summary <!-- What's the purpose of the change? What does it do, and why? --> Part of astral-sh#15584 This PR adds a fix safety section to `PIE794` I could not track down when this rule was initially implemented/made unsafe due how old it could be + multiple large refactors to `ruff`. There is no comment/reasoning in the code given for the unsafety. Here is a code example demonstrating why it should be unsafe, since removing any of the assignments would change program behavior [playground](https://play.ruff.rs/01004644-4259-4449-a581-5007cd59846a) ```py class A: x = 1 x = 2 print(x) class B: x = print(3) x = print(4) class C: x = [1,2,3] y = x x = y[1] ``` ## Test Plan <!-- How was it tested? --> N/A, no tests affected. --------- Co-authored-by: Dylan <[email protected]>
1 parent 440635c commit 50bf3fa

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

crates/ruff_linter/src/rules/flake8_pie/rules/duplicate_class_field_definition.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ use crate::{AlwaysFixableViolation, Fix};
3030
/// name = Tom
3131
/// ...
3232
/// ```
33+
///
34+
/// ## Fix Safety
35+
/// This fix is always marked as unsafe since we cannot know
36+
// for certain which assignment was intended.
3337
#[derive(ViolationMetadata)]
3438
pub(crate) struct DuplicateClassFieldDefinition {
3539
name: String,

0 commit comments

Comments
 (0)