mirror of https://github.com/python/cpython
gh-94192: Fix error for dictionary literals with invalid expression as value. (#94304)
* Fix error for dictionary literals with invalid expression as value. * Remove trailing whitespace
This commit is contained in:
parent
aedb5194d5
commit
8c237a7a71
|
@ -1314,4 +1314,4 @@ invalid_kvpair:
|
||||||
| a=expression !(':') {
|
| a=expression !(':') {
|
||||||
RAISE_ERROR_KNOWN_LOCATION(p, PyExc_SyntaxError, a->lineno, a->end_col_offset - 1, a->end_lineno, -1, "':' expected after dictionary key") }
|
RAISE_ERROR_KNOWN_LOCATION(p, PyExc_SyntaxError, a->lineno, a->end_col_offset - 1, a->end_lineno, -1, "':' expected after dictionary key") }
|
||||||
| expression ':' a='*' bitwise_or { RAISE_SYNTAX_ERROR_STARTING_FROM(a, "cannot use a starred expression in a dictionary value") }
|
| expression ':' a='*' bitwise_or { RAISE_SYNTAX_ERROR_STARTING_FROM(a, "cannot use a starred expression in a dictionary value") }
|
||||||
| expression a=':' {RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "expression expected after dictionary key and ':'") }
|
| expression a=':' &('}'|',') {RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "expression expected after dictionary key and ':'") }
|
||||||
|
|
|
@ -1265,12 +1265,22 @@ Incomplete dictionary literals
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: expression expected after dictionary key and ':'
|
SyntaxError: expression expected after dictionary key and ':'
|
||||||
|
|
||||||
# Ensure that the error is not raise for syntax errors that happen after sets
|
# Ensure that the error is not raised for syntax errors that happen after sets
|
||||||
|
|
||||||
>>> {1} $
|
>>> {1} $
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
SyntaxError: invalid syntax
|
SyntaxError: invalid syntax
|
||||||
|
|
||||||
|
# Ensure that the error is not raised for invalid expressions
|
||||||
|
|
||||||
|
>>> {1: 2, 3: foo(,), 4: 5}
|
||||||
|
Traceback (most recent call last):
|
||||||
|
SyntaxError: invalid syntax
|
||||||
|
|
||||||
|
>>> {1: $, 2: 3}
|
||||||
|
Traceback (most recent call last):
|
||||||
|
SyntaxError: invalid syntax
|
||||||
|
|
||||||
Specialized indentation errors:
|
Specialized indentation errors:
|
||||||
|
|
||||||
>>> while condition:
|
>>> while condition:
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Fix error for dictionary literals with invalid expression as value.
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue