Skip to content

Ignore pre-initialization references in SIM113#24235

Merged
charliermarsh merged 1 commit intomainfrom
charlie/sim113
Mar 27, 2026
Merged

Ignore pre-initialization references in SIM113#24235
charliermarsh merged 1 commit intomainfrom
charlie/sim113

Conversation

@charliermarsh
Copy link
Copy Markdown
Member

Summary

Given:

i = 0
for val in [1, 2, 3]:
    print(f"{i}: {val}")
    i += 1

i = 0
for val in [1, 2, 3]:
    print(f"{i}: {val}")
    i += 1

When analyzing the second loop, we want to ignore the references to i from within the first loop.

Closes #24206.

@charliermarsh charliermarsh added the bug Something isn't working label Mar 27, 2026
@charliermarsh charliermarsh marked this pull request as ready for review March 27, 2026 02:35
@astral-sh-bot astral-sh-bot bot requested a review from amyreese March 27, 2026 02:35
@charliermarsh charliermarsh merged commit 0629e70 into main Mar 27, 2026
41 checks passed
@charliermarsh charliermarsh deleted the charlie/sim113 branch March 27, 2026 02:38
carljm added a commit that referenced this pull request Mar 31, 2026
* main: (40 commits)
  [ty] resolve union-likes in emitting union attribute errors (#24263)
  [ty] Improve support for `Callable` type context (#23888)
  [ty] Propagate type context through `await` expressions (#24256)
  [`pyflakes`] Flag annotated variable redeclarations as `F811` in preview mode (#24244)
  [ty] Preserve `Divergent` when materializing recursive aliases (#24245)
  Fix W391 fixes for consecutive empty notebook cells (#24236)
  [flake8-bugbear] Clarify RUF071 fix safety for non-path string comparisons (#24149)
  [ty] Ban type qualifiers in PEP-695 type aliases (#24242)
  [ty] Include keyword-prefixed symbols in completions for attributes (#24232)
  [ty] Add tests for TypedDict method overloads on unions (#24230)
  [ty] report unused bindings as unnecessary hint diagnostics (#23305)
  Remove unused `non_root` variable (#24238)
  Extend F507 to flag %-format strings with zero placeholders (#24215)
  [`flake8-simplify`] Suppress `SIM105` for `except*` before Python 3.12 (#23869)
  Ignore pre-initialization references in SIM113 (#24235)
  Parenthesize expression in RUF050 fix (#24234)
  Publish playgrounds using the `release-playground` environment (#24223)
  [ty] Fix instance-attribute lookup in methods of protocol classes (#24213)
  [ty] Used shared expression cache during generic call inference (#24219)
  [ty] make `Type::BoundMethod` include instances of same-named methods bound to a subclass (#24039)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SIM113 only reported once per scope

2 participants