diff options
author | Matthieu Dartiailh <marul@laposte.net> | 2022-04-05 13:47:13 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-05 13:47:13 (GMT) |
commit | aa0f056a00c4bcaef83d729e042359ddae903382 (patch) | |
tree | 45b026af73776c5f38423e44b989df335f52f405 /Grammar/python.gram | |
parent | f1606a5ba50bdc4e7d335d62297b4b4043a25e6e (diff) | |
download | cpython-aa0f056a00c4bcaef83d729e042359ddae903382.zip cpython-aa0f056a00c4bcaef83d729e042359ddae903382.tar.gz cpython-aa0f056a00c4bcaef83d729e042359ddae903382.tar.bz2 |
bpo-47212: Improve error messages for un-parenthesized generator expressions (GH-32302)
Diffstat (limited to 'Grammar/python.gram')
-rw-r--r-- | Grammar/python.gram | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Grammar/python.gram b/Grammar/python.gram index b9965d2..15c40b6 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -1073,12 +1073,12 @@ func_type_comment[Token*]: invalid_arguments: | a=args ',' '*' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "iterable argument unpacking follows keyword argument unpacking") } | a=expression b=for_if_clauses ',' [args | expression for_if_clauses] { - RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, PyPegen_last_item(b, comprehension_ty)->target, "Generator expression must be parenthesized") } + RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, _PyPegen_get_last_comprehension_item(PyPegen_last_item(b, comprehension_ty)), "Generator expression must be parenthesized") } | a=NAME b='=' expression for_if_clauses { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Maybe you meant '==' or ':=' instead of '='?")} | a=args b=for_if_clauses { _PyPegen_nonparen_genexp_in_call(p, a, b) } | args ',' a=expression b=for_if_clauses { - RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, asdl_seq_GET(b, b->size-1)->target, "Generator expression must be parenthesized") } + RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, _PyPegen_get_last_comprehension_item(PyPegen_last_item(b, comprehension_ty)), "Generator expression must be parenthesized") } | a=args ',' args { _PyPegen_arguments_parsing_error(p, a) } invalid_kwarg: | a[Token*]=('True'|'False'|'None') b='=' { @@ -1257,7 +1257,7 @@ invalid_finally_stmt: invalid_except_stmt_indent: | a='except' expression ['as' NAME ] ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'except' statement on line %d", a->lineno) } - | a='except' ':' NEWLINE !INDENT { RAISE_SYNTAX_ERROR("expected an indented block after except statement on line %d", a->lineno) } + | a='except' ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'except' statement on line %d", a->lineno) } invalid_except_star_stmt_indent: | a='except' '*' expression ['as' NAME ] ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'except*' statement on line %d", a->lineno) } |