diff options
author | Lysandros Nikolaou <lisandrosnik@gmail.com> | 2020-10-27 22:38:42 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-27 22:38:42 (GMT) |
commit | c4b58cea4771afc0ddfdb857b0fb5115b9f4bc9f (patch) | |
tree | 7e9bc77d8b2fe08c43a86b6805c14bdc31c20485 /Grammar/python.gram | |
parent | 8aee019d71b9ed44107bdc8a0c9c132059c0e1ef (diff) | |
download | cpython-c4b58cea4771afc0ddfdb857b0fb5115b9f4bc9f.zip cpython-c4b58cea4771afc0ddfdb857b0fb5115b9f4bc9f.tar.gz cpython-c4b58cea4771afc0ddfdb857b0fb5115b9f4bc9f.tar.bz2 |
[3.9] bpo-41659: Disallow curly brace directly after primary (GH-22996) (#23006)
(cherry picked from commit 15acc4eaba8519d7d5f2acaffde65446b44dcf79)
Diffstat (limited to 'Grammar/python.gram')
-rw-r--r-- | Grammar/python.gram | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Grammar/python.gram b/Grammar/python.gram index 8f4d250..6c36b6a 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -460,6 +460,7 @@ await_primary[expr_ty] (memo): | AWAIT a=primary { CHECK_VERSION(5, "Await expressions are", _Py_Await(a, EXTRA)) } | primary primary[expr_ty]: + | invalid_primary # must be before 'primay genexp' because of invalid_genexp | a=primary '.' b=NAME { _Py_Attribute(a, b->v.Name.id, Load, EXTRA) } | a=primary b=genexp { _Py_Call(a, CHECK(_PyPegen_singleton_seq(p, b)), NULL, EXTRA) } | a=primary '(' b=[arguments] ')' { @@ -664,6 +665,8 @@ invalid_del_stmt: RAISE_SYNTAX_ERROR_INVALID_TARGET(DEL_TARGETS, a) } invalid_block: | NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block") } +invalid_primary: + | primary a='{' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "invalid syntax") } invalid_comprehension: | ('[' | '(' | '{') a=starred_expression for_if_clauses { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "iterable unpacking cannot be used in comprehension") } |