diff options
author | Batuhan Taskaya <isidentical@gmail.com> | 2021-05-16 16:33:22 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-16 16:33:22 +0300 |
commit | 51cef8be8c77dff522bec6f95d6853031bf19038 (patch) | |
tree | 0203aa036aa29740dfa17b719cdc854db6cf2522 /Lib/ast.py | |
parent | 1a08c5ac49b748d5e4e4b508d22d3804e3cd4dcc (diff) | |
download | cpython-51cef8be8c77dff522bec6f95d6853031bf19038.tar.gz cpython-51cef8be8c77dff522bec6f95d6853031bf19038.zip |
bpo-44142: drop redundant parantheses when unparsing tuples as assignment targets (GH-26156)
Diffstat (limited to 'Lib/ast.py')
-rw-r--r-- | Lib/ast.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Lib/ast.py b/Lib/ast.py index 0aef172516b..64487d2f0a6 100644 --- a/Lib/ast.py +++ b/Lib/ast.py @@ -640,7 +640,8 @@ _INFSTR = "1e" + repr(sys.float_info.max_10_exp + 1) class _Precedence: """Precedence table that originated from python grammar.""" - TUPLE = auto() + NAMED_EXPR = auto() # <target> := <expr1> + TUPLE = auto() # <expr1>, <expr2> YIELD = auto() # 'yield', 'yield from' TEST = auto() # 'if'-'else', 'lambda' OR = auto() # 'or' @@ -838,7 +839,7 @@ class _Unparser(NodeVisitor): self.traverse(node.value) def visit_NamedExpr(self, node): - with self.require_parens(_Precedence.TUPLE, node): + with self.require_parens(_Precedence.NAMED_EXPR, node): self.set_precedence(_Precedence.ATOM, node.target, node.value) self.traverse(node.target) self.write(" := ") @@ -859,6 +860,7 @@ class _Unparser(NodeVisitor): def visit_Assign(self, node): self.fill() for target in node.targets: + self.set_precedence(_Precedence.TUPLE, target) self.traverse(target) self.write(" = ") self.traverse(node.value) @@ -1030,6 +1032,7 @@ class _Unparser(NodeVisitor): def _for_helper(self, fill, node): self.fill(fill) + self.set_precedence(_Precedence.TUPLE, node.target) self.traverse(node.target) self.write(" in ") self.traverse(node.iter) @@ -1315,7 +1318,7 @@ class _Unparser(NodeVisitor): ) def visit_Tuple(self, node): - with self.delimit("(", ")"): + with self.require_parens(_Precedence.TUPLE, node): self.items_view(self.traverse, node.elts) unop = {"Invert": "~", "Not": "not", "UAdd": "+", "USub": "-"} |