summaryrefslogtreecommitdiffstats
path: root/Python/optimizer.c
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-09-26 20:55:32 (GMT)
committerGitHub <noreply@github.com>2024-09-26 20:55:32 (GMT)
commit410e0efc545c3fc542d00ea5dca54f2d559eef03 (patch)
tree6d538ae6166a3b62835e606b4551db6a4caf5969 /Python/optimizer.c
parentce63ea0fe42b8934af7aeb69979f1cd2d526b8c6 (diff)
downloadcpython-410e0efc545c3fc542d00ea5dca54f2d559eef03.zip
cpython-410e0efc545c3fc542d00ea5dca54f2d559eef03.tar.gz
cpython-410e0efc545c3fc542d00ea5dca54f2d559eef03.tar.bz2
[3.13] gh-115528: Update language reference for PEP 646 (GH-121181) (#124632)
gh-115528: Update language reference for PEP 646 (GH-121181) To recap: the objective is to make starred expressions valid in `subscription`, which is used for generics: `Generic[...]`, `list[...]`, etc. What _is_ gramatically valid in such contexts? Seemingly any of the following. (At least, none of the following throw `SyntaxError` in a 3.12.3 REPL.) Generic[x] Generic[*x] Generic[*x, y] Generic[y, *x] Generic[x := 1] Generic[x := 1, y := 2] So introducting flexible_expression: expression | assignment_expression | starred_item end then switching `subscription` to use `flexible_expression` sorts that. But then we need to field `yield` - for which any of the following are apparently valid: yield x yield x, yield x, y yield *x, yield *x, *y Introducing a separate `yield_list` is the simplest way I've been figure out to do this - separating out the special case of `starred_item ,`. (cherry picked from commit 7d3497f617edf77cb6ead6f5e62bce98d77b9ab8) Co-authored-by: Matthew Rahtz <matthew.rahtz@gmail.com> Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Diffstat (limited to 'Python/optimizer.c')
0 files changed, 0 insertions, 0 deletions