aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Galindo <Pablogsal@gmail.com>2020-11-17 01:17:12 +0000
committerGitHub <noreply@github.com>2020-11-17 01:17:12 +0000
commitb0aba1fcdc3da952698d99aec2334faa79a8b68c (patch)
tree7a349807a405f2adf73bd64b766715d543c22b81 /Grammar
parentbpo-41625: Expose the splice() system call in the os module (GH-21947) (diff)
downloadcpython-b0aba1fcdc3da952698d99aec2334faa79a8b68c.tar.gz
cpython-b0aba1fcdc3da952698d99aec2334faa79a8b68c.tar.bz2
cpython-b0aba1fcdc3da952698d99aec2334faa79a8b68c.zip
bpo-42381: Allow walrus in set literals and set comprehensions (GH-23332)
Currently walruses are not allowerd in set literals and set comprehensions: >>> {y := 4, 4**2, 3**3} File "<stdin>", line 1 {y := 4, 4**2, 3**3} ^ SyntaxError: invalid syntax but they should be allowed as well per PEP 572
Diffstat (limited to 'Grammar')
-rw-r--r--Grammar/python.gram5
1 files changed, 2 insertions, 3 deletions
diff --git a/Grammar/python.gram b/Grammar/python.gram
index a0e9a89ab99..9e915acf5db 100644
--- a/Grammar/python.gram
+++ b/Grammar/python.gram
@@ -311,7 +311,6 @@ block[asdl_stmt_seq*] (memo):
| simple_stmt
| invalid_block
-expressions_list[asdl_expr_seq*]: a[asdl_expr_seq*]=','.star_expression+ [','] { a }
star_expressions[expr_ty]:
| a=star_expression b=(',' c=star_expression { c })+ [','] {
_Py_Tuple(CHECK(asdl_expr_seq*, _PyPegen_seq_insert_in_front(p, a, b)), Load, EXTRA) }
@@ -519,9 +518,9 @@ group[expr_ty]:
genexp[expr_ty]:
| '(' a=named_expression ~ b=for_if_clauses ')' { _Py_GeneratorExp(a, b, EXTRA) }
| invalid_comprehension
-set[expr_ty]: '{' a=expressions_list '}' { _Py_Set(a, EXTRA) }
+set[expr_ty]: '{' a=star_named_expressions '}' { _Py_Set(a, EXTRA) }
setcomp[expr_ty]:
- | '{' a=expression ~ b=for_if_clauses '}' { _Py_SetComp(a, b, EXTRA) }
+ | '{' a=named_expression ~ b=for_if_clauses '}' { _Py_SetComp(a, b, EXTRA) }
| invalid_comprehension
dict[expr_ty]:
| '{' a=[double_starred_kvpairs] '}' {