mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-138716: Fix assert a := b syntax error message (#138718)
This commit is contained in:
parent
1ce05537a3
commit
cf8f36fe0a
4 changed files with 262 additions and 173 deletions
|
|
@ -1315,6 +1315,14 @@ invalid_assert_stmt:
|
||||||
a, b,
|
a, b,
|
||||||
"cannot assign to %s here. Maybe you meant '==' instead of '='?",
|
"cannot assign to %s here. Maybe you meant '==' instead of '='?",
|
||||||
_PyPegen_get_expr_name(a)) }
|
_PyPegen_get_expr_name(a)) }
|
||||||
|
| 'assert' a=expression ':=' b=expression {
|
||||||
|
RAISE_SYNTAX_ERROR_KNOWN_RANGE(
|
||||||
|
a, b,
|
||||||
|
"cannot use named expression without parentheses here") }
|
||||||
|
| 'assert' expression ',' a=expression ':=' b=expression {
|
||||||
|
RAISE_SYNTAX_ERROR_KNOWN_RANGE(
|
||||||
|
a, b,
|
||||||
|
"cannot use named expression without parentheses here") }
|
||||||
invalid_block:
|
invalid_block:
|
||||||
| NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block") }
|
| NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block") }
|
||||||
invalid_comprehension:
|
invalid_comprehension:
|
||||||
|
|
|
||||||
|
|
@ -2690,10 +2690,15 @@ def f(x: *b)
|
||||||
Asserts:
|
Asserts:
|
||||||
|
|
||||||
>>> assert (a := 1) # ok
|
>>> assert (a := 1) # ok
|
||||||
>>> # TODO(@sobolevn): improve this message in the next PR
|
>>> assert 1, (a := 1) # ok
|
||||||
|
|
||||||
>>> assert a := 1
|
>>> assert a := 1
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: invalid syntax
|
SyntaxError: cannot use named expression without parentheses here
|
||||||
|
|
||||||
|
>>> assert 1, a := 1
|
||||||
|
Traceback (most recent call last):
|
||||||
|
SyntaxError: cannot use named expression without parentheses here
|
||||||
|
|
||||||
>>> assert 1 = 2 = 3
|
>>> assert 1 = 2 = 3
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
Improve :exc:`SyntaxError` message for :keyword:`assert` in cases like
|
||||||
|
``assert a := b``.
|
||||||
416
Parser/parser.c
generated
416
Parser/parser.c
generated
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue