Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[ruff] Make fix unsafe if it deletes comments (RUF020)#22664

Merged
ntBre merged 3 commits intoastral-sh:mainfrom
chirizxc:RUF020
Jan 20, 2026
Merged

[ruff] Make fix unsafe if it deletes comments (RUF020)#22664
ntBre merged 3 commits intoastral-sh:mainfrom
chirizxc:RUF020

Conversation

@chirizxc
Copy link
Contributor

Summary

Test Plan

@astral-sh-bot
Copy link

astral-sh-bot bot commented Jan 17, 2026

ruff-ecosystem results

Linter (stable)

✅ ecosystem check detected no linter changes.

Linter (preview)

✅ ecosystem check detected no linter changes.

@amyreese amyreese added the fixes Related to suggested fixes for violations label Jan 19, 2026
@amyreese amyreese requested a review from ntBre January 19, 2026 18:22
Copy link
Contributor

@ntBre ntBre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! This looks fine to me, just one suggestion about sharing the applicability check.

(I almost wonder if this could warrant a helper method on Checker since this is such a common pattern, but I couldn't think of a great name/API for it earlier)

@amyreese
Copy link
Member

(I almost wonder if this could warrant a helper method on Checker since this is such a common pattern, but I couldn't think of a great name/API for it earlier)

I kind of agree after seeing all these PRs. Perhaps something like checker.contains_comments(expr) ?

@ntBre
Copy link
Contributor

ntBre commented Jan 19, 2026

Yeah I just couldn't decide how magical it should be. Something like:

diagnostic.set_applicable_fix(checker.comment_ranges(), edit);

could also be nice. I don't think checker.contains_comments(ranged) returning a bool is that much of an improvement over the status quo, so I wanted it to return or even set the applicability too.

@chirizxc chirizxc requested review from amyreese and ntBre January 20, 2026 12:10
Copy link
Contributor

@ntBre ntBre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@ntBre ntBre merged commit 7b16239 into astral-sh:main Jan 20, 2026
41 checks passed
@chirizxc chirizxc deleted the RUF020 branch January 20, 2026 15:04
carljm added a commit that referenced this pull request Jan 20, 2026
* main: (149 commits)
  Preserve required parentheses in lambda bodies (#22747)
  [`flake8-simplify`] Make fix unsafe if it deletes comments (`SIM911`) (#22661)
  [`refurb`] Make fix unsafe if it deletes comments (`FURB145`) (#22670)
  [`ruff`] Make fix unsafe if it deletes comments (`RUF020`) (#22664)
  [ty] Add README for `ty_completion_bench` CLI tool
  [ty] Update completion eval
  [ty] Collect completions into a max-heap
  [ty] Truncate imports and qualifications derived from completions
  [ty] Get rid of high-level completion deduplication
  [ty] Refactor how we sort completions
  [ty] Optimize collection of "all symbols"
  [ty] Speed up completions by tweaking sorts
  [ty] Add new `ty_completion_bench` for ad hoc benchmarking
  gitignore: ignore scratch directories in completion eval truth directory
  [`pyupgrade`] Allow shadowing non-builtin bindings (`UP029`) (#22749)
  [ty] Emit invalid type form for stringified annotations (#22752)
  [ty] Allow `if type(x) is Y` narrowing for types other than class-literal types (#22729)
  [ty] Add basic support for overloads in `ParamSpec` (#21946)
  [`ruff`] Make fix unsafe if it deletes comments (`RUF019`) (#22663)
  [`flake8-bugbear`] Make fix unsafe if it deletes comments (`B014`) (#22659)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fixes Related to suggested fixes for violations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants