summaryrefslogtreecommitdiffstats
path: root/Grammar
diff options
context:
space:
mode:
authorLysandros Nikolaou <lisandrosnik@gmail.com>2020-06-25 23:22:36 (GMT)
committerGitHub <noreply@github.com>2020-06-25 23:22:36 (GMT)
commit4b85e60601489f9ee9dd2909e28d89a31566887c (patch)
tree34275650fdc0b1ccb1b2c996edc183528a2dca7d /Grammar
parent6f8a6ee59cb7f99f68df8ee9c3e8c8cf19af3eed (diff)
downloadcpython-4b85e60601489f9ee9dd2909e28d89a31566887c.zip
cpython-4b85e60601489f9ee9dd2909e28d89a31566887c.tar.gz
cpython-4b85e60601489f9ee9dd2909e28d89a31566887c.tar.bz2
bpo-41119: Output correct error message for list/tuple followed by colon (GH-21160)
Diffstat (limited to 'Grammar')
-rw-r--r--Grammar/python.gram10
1 files changed, 5 insertions, 5 deletions
diff --git a/Grammar/python.gram b/Grammar/python.gram
index c5a5dbe..652f0db 100644
--- a/Grammar/python.gram
+++ b/Grammar/python.gram
@@ -646,18 +646,18 @@ invalid_named_expression:
RAISE_SYNTAX_ERROR_KNOWN_LOCATION(
a, "cannot use assignment expressions with %s", _PyPegen_get_expr_name(a)) }
invalid_assignment:
- | a=list ':' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "only single target (not list) can be annotated") }
- | a=tuple ':' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "only single target (not tuple) can be annotated") }
- | a=star_named_expression ',' star_named_expressions* ':' {
+ | a=list ':' expression { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "only single target (not list) can be annotated") }
+ | a=tuple ':' expression { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "only single target (not tuple) can be annotated") }
+ | a=star_named_expression ',' star_named_expressions* ':' expression {
RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "only single target (not tuple) can be annotated") }
- | a=expression ':' expression ['=' annotated_rhs] {
+ | a=expression ':' expression {
RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "illegal target for annotation") }
| (star_targets '=')* a=star_expressions '=' {
RAISE_SYNTAX_ERROR_INVALID_TARGET(STAR_TARGETS, a) }
| (star_targets '=')* a=yield_expr '=' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "assignment to yield expression not possible") }
| a=star_expressions augassign (yield_expr | star_expressions) {
RAISE_SYNTAX_ERROR_KNOWN_LOCATION(
- a,
+ a,
"'%s' is an illegal expression for augmented assignment",
_PyPegen_get_expr_name(a)
)}