Fix PLC2701 for type parameter scopes#24576
Merged
Merged
Conversation
|
ntBre
approved these changes
Apr 22, 2026
Contributor
ntBre
left a comment
There was a problem hiding this comment.
Looks good to me, thank you! I also verified locally that the example from the issue succeeds on this branch.
| || reference.in_typing_only_annotation() | ||
| || reference.in_string_type_definition() | ||
| || reference.in_runtime_evaluated_annotation() | ||
| reference.in_typing_context() || reference.in_runtime_evaluated_annotation() |
Contributor
There was a problem hiding this comment.
For posterity, the new checks expand to these SemanticModelFlags:
TYPE_CHECKING_BLOCK | TYPING_ONLY_ANNOTATION | STRING_TYPE_DEFINITION | TYPE_PARAM_DEFINITION | RUNTIME_EVALUATED_ANNOTATION
while the old checks were:
TYPE_CHECKING_BLOCK | TYPING_ONLY_ANNOTATION | STRING_TYPE_DEFINITION | RUNTIME_EVALUATED_ANNOTATION
so the diff is just adding TYPE_PARAM_DEFINITION:
-TYPE_CHECKING_BLOCK | TYPING_ONLY_ANNOTATION | STRING_TYPE_DEFINITION | RUNTIME_EVALUATED_ANNOTATION
+TYPE_CHECKING_BLOCK | TYPING_ONLY_ANNOTATION | STRING_TYPE_DEFINITION | TYPE_PARAM_DEFINITION | RUNTIME_EVALUATED_ANNOTATION
This was referenced Apr 27, 2026
nicopauss
pushed a commit
to Intersec/lib-common
that referenced
this pull request
Jun 4, 2026
##### [\`v0.15.12\`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01512) Released on 2026-04-24. ##### Preview features - Implement `#ruff:file-ignore` file-level suppressions ([#23599](astral-sh/ruff#23599)) - Implement `#ruff:ignore` logical-line suppressions ([#23404](astral-sh/ruff#23404)) - Revert preview changes to displayed diagnostic severity in LSP ([#24789](astral-sh/ruff#24789)) - \[`airflow`] Implement `task-branch-as-short-circuit` (`AIR004`) ([#23579](astral-sh/ruff#23579)) - \[`flake8-bugbear`] Fix `break`/`continue` handling in `loop-iterator-mutation` (`B909`) ([#24440](astral-sh/ruff#24440)) - \[`pylint`] Fix `PLC2701` for type parameter scopes ([#24576](astral-sh/ruff#24576)) ##### Rule changes - \[`pandas-vet`] Suggest `.array` as well in `PD011` ([#24805](astral-sh/ruff#24805)) ##### CLI - Respect default Unix permissions for cache files ([#24794](astral-sh/ruff#24794)) ##### Documentation - \[`pylint`] Fix `PLR0124` description not to claim self-comparison always returns the same value ([#24749](astral-sh/ruff#24749)) - \[`pyupgrade`] Expand docs on reusable `TypeVar`s and scoping (`UP046`) ([#24153](astral-sh/ruff#24153)) - Improve rules table accessibility ([#24711](astral-sh/ruff#24711)) ##### Contributors - [@dylwil3](https://github.com/dylwil3) - [@AlexWaygood](https://github.com/AlexWaygood) - [@woodruffw](https://github.com/woodruffw) - [@avasis-ai](https://github.com/avasis-ai) - [@Dev-iL](https://github.com/Dev-iL) - [@denyszhak](https://github.com/denyszhak) - [@ShipItAndPray](https://github.com/ShipItAndPray) - [@anishgirianish](https://github.com/anishgirianish) - [@augustelalande](https://github.com/augustelalande) - [@amyreese](https://github.com/amyreese) - [@majiayu000](https://github.com/majiayu000) ##### [\`v0.15.11\`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01511) Released on 2026-04-16. ##### Preview features - \[`ruff`] Ignore `RUF029` when function is decorated with `asynccontextmanager` ([#24642](astral-sh/ruff#24642)) - \[`airflow`] Implement `airflow-xcom-pull-in-template-string` (`AIR201`) ([#23583](astral-sh/ruff#23583)) - \[`flake8-bandit`] Fix `S103` false positives and negatives in mask analysis ([#24424](astral-sh/ruff#24424)) ##### Bug fixes - \[`flake8-async`] Omit overridden methods for `ASYNC109` ([#24648](astral-sh/ruff#24648)) ##### Documentation - \[`flake8-async`] Add override mention to `ASYNC109` docs ([#24666](astral-sh/ruff#24666)) - Update Neovim config examples to use `vim.lsp.config` ([#24577](astral-sh/ruff#24577)) ##### Contributors - [@augustelalande](https://github.com/augustelalande) - [@anishgirianish](https://github.com/anishgirianish) - [@benberryallwood](https://github.com/benberryallwood) - [@charliermarsh](https://github.com/charliermarsh) - [@Dev-iL](https://github.com/Dev-iL) Renovate-Branch: renovate/2024.6-ruff-0.15.x Change-Id: I2c5de44f14ce3133db71161eae18c7b43f7ba09b Priv-Id: 9c1a7f10043a2db2338a90de9a62a4d7989df14d
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #24563.
Ruff was treating private-name usage in PEP 695 type parameter lists as runtime code, which triggered PLC2701 false positives. This patch extends the typing-context check so private imports used only in type parameter scopes are exempt, and adds a regression case for a generic function with a private type parameter bound.