gh-111944: Add assignment expression parentheses requirements (#111977)

gh-111944: Clarify where assignment expressions require ()s

Augment the list of places where parentheses are
required around assignnment statements.  In particular,
'a := 0' and 'a = b := 1' are syntax errors.
This commit is contained in:
Terry Jan Reedy 2023-11-12 19:06:50 -05:00 committed by GitHub
parent d7cef7bc7e
commit 9a2f25d374
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1781,10 +1781,11 @@ Or, when processing a file stream in chunks:
while chunk := file.read(9000):
process(chunk)
Assignment expressions must be surrounded by parentheses when used
as sub-expressions in slicing, conditional, lambda,
keyword-argument, and comprehension-if expressions
and in ``assert`` and ``with`` statements.
Assignment expressions must be surrounded by parentheses when
used as expression statements and when used as sub-expressions in
slicing, conditional, lambda,
keyword-argument, and comprehension-if expressions and
in ``assert``, ``with``, and ``assignment`` statements.
In all other places where they can be used, parentheses are not required,
including in ``if`` and ``while`` statements.