From f50dc0bbdbab3b1b573984ff1355365dbb8990a7 Mon Sep 17 00:00:00 2001 From: Emile Anclin Date: Thu, 9 Dec 2010 16:38:50 +0100 Subject: fix #52006: "True" and "False" can be assigned another fix: yield can yield nothing --- rebuilder.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'rebuilder.py') diff --git a/rebuilder.py b/rebuilder.py index ad80e6a..d423d30 100644 --- a/rebuilder.py +++ b/rebuilder.py @@ -617,15 +617,17 @@ class TreeRebuilder(object): def visit_name(self, node, parent): """visit a Name node by returning a fresh instance of it""" - if node.id in CONST_NAME_TRANSFORMS: - newnode = new.Const(CONST_NAME_TRANSFORMS[node.id]) - _set_infos(node, newnode, parent) - return newnode + # True and False can be assigned to something in py2x, so we have to + # check first the asscontext if self.asscontext == "Del": newnode = new.DelName() elif self.asscontext is not None: # Ass assert self.asscontext == "Ass" newnode = new.AssName() + elif node.id in CONST_NAME_TRANSFORMS: + newnode = new.Const(CONST_NAME_TRANSFORMS[node.id]) + _set_infos(node, newnode, parent) + return newnode else: newnode = new.Name() _lineno_parent(node, newnode, parent) @@ -798,7 +800,8 @@ class TreeRebuilder(object): """visit a Yield node by returning a fresh instance of it""" newnode = new.Yield() _lineno_parent(node, newnode, parent) - newnode.value = self.visit(node.value, newnode) + if node.value is not None: + newnode.value = self.visit(node.value, newnode) newnode.set_line_info(newnode.last_child()) return newnode -- cgit v1.2.1