gh-104374: don't inline comprehensions in non-function scopes #104519
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.
This PR updates and adds comprehension tests to mandate the same scoping and name-visibility rules as in Python 3.11, including in class scopes. These are the changes in
Lib/tests/test_listcomps.py
.Then there is one change in
Python/symtable.c
, to only inline comprehensions that occur within functions.The rest of the PR is purely a partial rollback of #101441, removing those parts of the implementation of PEP 709 that were required only for inlining module and class-level comprehensions.