Merged revisions 67183,67191,67371 via svnmerge from

svn+ssh://pythondev@svn.python.org/sandbox/trunk/2to3/lib2to3

........
  r67183 | benjamin.peterson | 2008-11-11 04:51:33 +0100 (Di, 11 Nov 2008) | 1 line

  handle 'import x as y' in fix_imports; this still needs more work...
........
  r67191 | benjamin.peterson | 2008-11-12 00:24:51 +0100 (Mi, 12 Nov 2008) | 1 line

  super() is good
........
  r67371 | benjamin.peterson | 2008-11-24 23:02:00 +0100 (Mo, 24 Nov 2008) | 1 line

  don't blow up in the metaclass fixer when assignments in the class statement aren't simple
........
This commit is contained in:
Martin v. Löwis 2008-11-25 03:08:21 +00:00
parent 2b5d6ebfe5
commit 64903f9ed9
3 changed files with 31 additions and 9 deletions

View file

@ -110,8 +110,11 @@ def find_metas(cls_node):
if simple_node.type == syms.simple_stmt and simple_node.children:
expr_node = simple_node.children[0]
if expr_node.type == syms.expr_stmt and expr_node.children:
leaf_node = expr_node.children[0]
if leaf_node.value == '__metaclass__':
# Check if the expr_node is a simple assignment.
left_node = expr_node.children[0]
if isinstance(left_node, Leaf) and \
left_node.value == '__metaclass__':
# We found a assignment to __metaclass__.
fixup_simple_stmt(node, i, simple_node)
remove_trailing_newline(simple_node)
yield (node, i, simple_node)