From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Mon, 13 Nov 2023 00:14:03 +0000 (+0100) Subject: [3.11] gh-111944: Add assignment expression parentheses requirements (GH-111977)... X-Git-Tag: v3.11.7~71 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b64afbc55c27274a73ade0680606cde2a26470cb;p=thirdparty%2FPython%2Fcpython.git [3.11] gh-111944: Add assignment expression parentheses requirements (GH-111977) (#112011) Augment the list of places where parentheses are required around assignnment statements. In particular, 'a := 0' and 'a = b := 1' are syntax errors. (cherry picked from commit 9a2f25d374f027f6509484d66e1c7bba03977b99) Co-authored-by: Terry Jan Reedy --- diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst index 5cba4a6934f0..9207fd3f3c02 100644 --- a/Doc/reference/expressions.rst +++ b/Doc/reference/expressions.rst @@ -1764,10 +1764,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.