Fix false positive undefined-variable (E0602) for for-loop variable shadowing patterns like for item in item: when the variable was previously defined.
Fixed crash in 'unnecessary-list-index-lookup' when starting an enumeration using
minus the length of an iterable inside a dict comprehension when the len call was only
made in this dict comprehension, and not elsewhere. Also changed the approach,
to use inference in all cases but the simple ones, so we don't have to fix crashes
one by one for arbitrarily complex expressions in enumerate.
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | `3.3.8` -> `3.3.9` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>pylint-dev/pylint (pylint)</summary>
### [`v3.3.9`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.9)
[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.8...v3.3.9)
## What's new in Pylint 3.3.9?
Release date: 2025-10-05
## False Positives Fixed
- Fix used-before-assignment for PEP 695 type aliases and parameters.
Closes [#​9815](https://github.com/pylint-dev/pylint/issues/9815)
- No longer flag undeprecated functions in `importlib.resources` as deprecated.
Closes [#​10593](https://github.com/pylint-dev/pylint/issues/10593)
- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.
Closes [#​10508](https://github.com/pylint-dev/pylint/issues/10508)
- Fix false positive `undefined-variable` (E0602) for for-loop variable shadowing patterns like `for item in item:` when the variable was previously defined.
Closes [#​10562](https://github.com/pylint-dev/pylint/issues/10562)
## Other Bug Fixes
- Fixed crash in 'unnecessary-list-index-lookup' when starting an enumeration using
minus the length of an iterable inside a dict comprehension when the len call was only
made in this dict comprehension, and not elsewhere. Also changed the approach,
to use inference in all cases but the simple ones, so we don't have to fix crashes
one by one for arbitrarily complex expressions in enumerate.
Closes [#​10510](https://github.com/pylint-dev/pylint/issues/10510)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDEuMCIsInVwZGF0ZWRJblZlciI6IjQxLjE0MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
3.3.8->3.3.9Release Notes
pylint-dev/pylint (pylint)
v3.3.9Compare Source
What's new in Pylint 3.3.9?
Release date: 2025-10-05
False Positives Fixed
Fix used-before-assignment for PEP 695 type aliases and parameters.
Closes #9815
No longer flag undeprecated functions in
importlib.resourcesas deprecated.Closes #10593
Fix false positive
inconsistent-return-statementswhen usingquit()orexit()functions.Closes #10508
Fix false positive
undefined-variable(E0602) for for-loop variable shadowing patterns likefor item in item:when the variable was previously defined.Closes #10562
Other Bug Fixes
Fixed crash in 'unnecessary-list-index-lookup' when starting an enumeration using
minus the length of an iterable inside a dict comprehension when the len call was only
made in this dict comprehension, and not elsewhere. Also changed the approach,
to use inference in all cases but the simple ones, so we don't have to fix crashes
one by one for arbitrarily complex expressions in enumerate.
Closes #10510
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.