Author: Ronan Lamy <[email protected]>
Branch: py3.5
Changeset: r89712:686b6385285d
Date: 2017-01-24 00:14 +0000
http://bitbucket.org/pypy/pypy/changeset/686b6385285d/
Log: hg merge default
diff --git a/pypy/interpreter/astcompiler/ast.py
b/pypy/interpreter/astcompiler/ast.py
--- a/pypy/interpreter/astcompiler/ast.py
+++ b/pypy/interpreter/astcompiler/ast.py
@@ -31,6 +31,7 @@
class AST(object):
__metaclass__ = extendabletype
+ #_attrs_ = ['lineno', 'col_offset']
def walkabout(self, visitor):
raise AssertionError("walkabout() implementation not provided")
@@ -184,7 +185,9 @@
def mutate_over(self, visitor):
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
return visitor.visit_Module(self)
def to_object(self, space):
@@ -217,7 +220,9 @@
def mutate_over(self, visitor):
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
return visitor.visit_Interactive(self)
def to_object(self, space):
@@ -279,7 +284,9 @@
def mutate_over(self, visitor):
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
return visitor.visit_Suite(self)
def to_object(self, space):
@@ -380,9 +387,13 @@
def mutate_over(self, visitor):
self.args = self.args.mutate_over(visitor)
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
if self.decorator_list:
- visitor._mutate_sequence(self.decorator_list)
+ for i in range(len(self.decorator_list)):
+ if self.decorator_list[i] is not None:
+ self.decorator_list[i] =
self.decorator_list[i].mutate_over(visitor)
if self.returns:
self.returns = self.returns.mutate_over(visitor)
return visitor.visit_FunctionDef(self)
@@ -456,9 +467,13 @@
def mutate_over(self, visitor):
self.args = self.args.mutate_over(visitor)
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
if self.decorator_list:
- visitor._mutate_sequence(self.decorator_list)
+ for i in range(len(self.decorator_list)):
+ if self.decorator_list[i] is not None:
+ self.decorator_list[i] =
self.decorator_list[i].mutate_over(visitor)
if self.returns:
self.returns = self.returns.mutate_over(visitor)
return visitor.visit_AsyncFunctionDef(self)
@@ -531,13 +546,21 @@
def mutate_over(self, visitor):
if self.bases:
- visitor._mutate_sequence(self.bases)
+ for i in range(len(self.bases)):
+ if self.bases[i] is not None:
+ self.bases[i] = self.bases[i].mutate_over(visitor)
if self.keywords:
- visitor._mutate_sequence(self.keywords)
+ for i in range(len(self.keywords)):
+ if self.keywords[i] is not None:
+ self.keywords[i] = self.keywords[i].mutate_over(visitor)
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
if self.decorator_list:
- visitor._mutate_sequence(self.decorator_list)
+ for i in range(len(self.decorator_list)):
+ if self.decorator_list[i] is not None:
+ self.decorator_list[i] =
self.decorator_list[i].mutate_over(visitor)
return visitor.visit_ClassDef(self)
def to_object(self, space):
@@ -649,7 +672,9 @@
def mutate_over(self, visitor):
if self.targets:
- visitor._mutate_sequence(self.targets)
+ for i in range(len(self.targets)):
+ if self.targets[i] is not None:
+ self.targets[i] = self.targets[i].mutate_over(visitor)
return visitor.visit_Delete(self)
def to_object(self, space):
@@ -692,7 +717,9 @@
def mutate_over(self, visitor):
if self.targets:
- visitor._mutate_sequence(self.targets)
+ for i in range(len(self.targets)):
+ if self.targets[i] is not None:
+ self.targets[i] = self.targets[i].mutate_over(visitor)
self.value = self.value.mutate_over(visitor)
return visitor.visit_Assign(self)
@@ -799,9 +826,13 @@
self.target = self.target.mutate_over(visitor)
self.iter = self.iter.mutate_over(visitor)
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
if self.orelse:
- visitor._mutate_sequence(self.orelse)
+ for i in range(len(self.orelse)):
+ if self.orelse[i] is not None:
+ self.orelse[i] = self.orelse[i].mutate_over(visitor)
return visitor.visit_For(self)
def to_object(self, space):
@@ -869,9 +900,13 @@
self.target = self.target.mutate_over(visitor)
self.iter = self.iter.mutate_over(visitor)
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
if self.orelse:
- visitor._mutate_sequence(self.orelse)
+ for i in range(len(self.orelse)):
+ if self.orelse[i] is not None:
+ self.orelse[i] = self.orelse[i].mutate_over(visitor)
return visitor.visit_AsyncFor(self)
def to_object(self, space):
@@ -937,9 +972,13 @@
def mutate_over(self, visitor):
self.test = self.test.mutate_over(visitor)
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
if self.orelse:
- visitor._mutate_sequence(self.orelse)
+ for i in range(len(self.orelse)):
+ if self.orelse[i] is not None:
+ self.orelse[i] = self.orelse[i].mutate_over(visitor)
return visitor.visit_While(self)
def to_object(self, space):
@@ -999,9 +1038,13 @@
def mutate_over(self, visitor):
self.test = self.test.mutate_over(visitor)
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
if self.orelse:
- visitor._mutate_sequence(self.orelse)
+ for i in range(len(self.orelse)):
+ if self.orelse[i] is not None:
+ self.orelse[i] = self.orelse[i].mutate_over(visitor)
return visitor.visit_If(self)
def to_object(self, space):
@@ -1059,9 +1102,13 @@
def mutate_over(self, visitor):
if self.items:
- visitor._mutate_sequence(self.items)
+ for i in range(len(self.items)):
+ if self.items[i] is not None:
+ self.items[i] = self.items[i].mutate_over(visitor)
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
return visitor.visit_With(self)
def to_object(self, space):
@@ -1113,9 +1160,13 @@
def mutate_over(self, visitor):
if self.items:
- visitor._mutate_sequence(self.items)
+ for i in range(len(self.items)):
+ if self.items[i] is not None:
+ self.items[i] = self.items[i].mutate_over(visitor)
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
return visitor.visit_AsyncWith(self)
def to_object(self, space):
@@ -1213,13 +1264,21 @@
def mutate_over(self, visitor):
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
if self.handlers:
- visitor._mutate_sequence(self.handlers)
+ for i in range(len(self.handlers)):
+ if self.handlers[i] is not None:
+ self.handlers[i] = self.handlers[i].mutate_over(visitor)
if self.orelse:
- visitor._mutate_sequence(self.orelse)
+ for i in range(len(self.orelse)):
+ if self.orelse[i] is not None:
+ self.orelse[i] = self.orelse[i].mutate_over(visitor)
if self.finalbody:
- visitor._mutate_sequence(self.finalbody)
+ for i in range(len(self.finalbody)):
+ if self.finalbody[i] is not None:
+ self.finalbody[i] = self.finalbody[i].mutate_over(visitor)
return visitor.visit_Try(self)
def to_object(self, space):
@@ -1333,7 +1392,9 @@
def mutate_over(self, visitor):
if self.names:
- visitor._mutate_sequence(self.names)
+ for i in range(len(self.names)):
+ if self.names[i] is not None:
+ self.names[i] = self.names[i].mutate_over(visitor)
return visitor.visit_Import(self)
def to_object(self, space):
@@ -1377,7 +1438,9 @@
def mutate_over(self, visitor):
if self.names:
- visitor._mutate_sequence(self.names)
+ for i in range(len(self.names)):
+ if self.names[i] is not None:
+ self.names[i] = self.names[i].mutate_over(visitor)
return visitor.visit_ImportFrom(self)
def to_object(self, space):
@@ -1706,7 +1769,9 @@
def mutate_over(self, visitor):
if self.values:
- visitor._mutate_sequence(self.values)
+ for i in range(len(self.values)):
+ if self.values[i] is not None:
+ self.values[i] = self.values[i].mutate_over(visitor)
return visitor.visit_BoolOp(self)
def to_object(self, space):
@@ -1953,9 +2018,13 @@
def mutate_over(self, visitor):
if self.keys:
- visitor._mutate_sequence(self.keys)
+ for i in range(len(self.keys)):
+ if self.keys[i] is not None:
+ self.keys[i] = self.keys[i].mutate_over(visitor)
if self.values:
- visitor._mutate_sequence(self.values)
+ for i in range(len(self.values)):
+ if self.values[i] is not None:
+ self.values[i] = self.values[i].mutate_over(visitor)
return visitor.visit_Dict(self)
def to_object(self, space):
@@ -2006,7 +2075,9 @@
def mutate_over(self, visitor):
if self.elts:
- visitor._mutate_sequence(self.elts)
+ for i in range(len(self.elts)):
+ if self.elts[i] is not None:
+ self.elts[i] = self.elts[i].mutate_over(visitor)
return visitor.visit_Set(self)
def to_object(self, space):
@@ -2050,7 +2121,9 @@
def mutate_over(self, visitor):
self.elt = self.elt.mutate_over(visitor)
if self.generators:
- visitor._mutate_sequence(self.generators)
+ for i in range(len(self.generators)):
+ if self.generators[i] is not None:
+ self.generators[i] =
self.generators[i].mutate_over(visitor)
return visitor.visit_ListComp(self)
def to_object(self, space):
@@ -2100,7 +2173,9 @@
def mutate_over(self, visitor):
self.elt = self.elt.mutate_over(visitor)
if self.generators:
- visitor._mutate_sequence(self.generators)
+ for i in range(len(self.generators)):
+ if self.generators[i] is not None:
+ self.generators[i] =
self.generators[i].mutate_over(visitor)
return visitor.visit_SetComp(self)
def to_object(self, space):
@@ -2152,7 +2227,9 @@
self.key = self.key.mutate_over(visitor)
self.value = self.value.mutate_over(visitor)
if self.generators:
- visitor._mutate_sequence(self.generators)
+ for i in range(len(self.generators)):
+ if self.generators[i] is not None:
+ self.generators[i] =
self.generators[i].mutate_over(visitor)
return visitor.visit_DictComp(self)
def to_object(self, space):
@@ -2208,7 +2285,9 @@
def mutate_over(self, visitor):
self.elt = self.elt.mutate_over(visitor)
if self.generators:
- visitor._mutate_sequence(self.generators)
+ for i in range(len(self.generators)):
+ if self.generators[i] is not None:
+ self.generators[i] =
self.generators[i].mutate_over(visitor)
return visitor.visit_GeneratorExp(self)
def to_object(self, space):
@@ -2372,7 +2451,9 @@
def mutate_over(self, visitor):
self.left = self.left.mutate_over(visitor)
if self.comparators:
- visitor._mutate_sequence(self.comparators)
+ for i in range(len(self.comparators)):
+ if self.comparators[i] is not None:
+ self.comparators[i] =
self.comparators[i].mutate_over(visitor)
return visitor.visit_Compare(self)
def to_object(self, space):
@@ -2432,9 +2513,13 @@
def mutate_over(self, visitor):
self.func = self.func.mutate_over(visitor)
if self.args:
- visitor._mutate_sequence(self.args)
+ for i in range(len(self.args)):
+ if self.args[i] is not None:
+ self.args[i] = self.args[i].mutate_over(visitor)
if self.keywords:
- visitor._mutate_sequence(self.keywords)
+ for i in range(len(self.keywords)):
+ if self.keywords[i] is not None:
+ self.keywords[i] = self.keywords[i].mutate_over(visitor)
return visitor.visit_Call(self)
def to_object(self, space):
@@ -2864,7 +2949,9 @@
def mutate_over(self, visitor):
if self.elts:
- visitor._mutate_sequence(self.elts)
+ for i in range(len(self.elts)):
+ if self.elts[i] is not None:
+ self.elts[i] = self.elts[i].mutate_over(visitor)
return visitor.visit_List(self)
def to_object(self, space):
@@ -2913,7 +3000,9 @@
def mutate_over(self, visitor):
if self.elts:
- visitor._mutate_sequence(self.elts)
+ for i in range(len(self.elts)):
+ if self.elts[i] is not None:
+ self.elts[i] = self.elts[i].mutate_over(visitor)
return visitor.visit_Tuple(self)
def to_object(self, space):
@@ -3119,7 +3208,9 @@
def mutate_over(self, visitor):
if self.dims:
- visitor._mutate_sequence(self.dims)
+ for i in range(len(self.dims)):
+ if self.dims[i] is not None:
+ self.dims[i] = self.dims[i].mutate_over(visitor)
return visitor.visit_ExtSlice(self)
def to_object(self, space):
@@ -3487,7 +3578,9 @@
self.target = self.target.mutate_over(visitor)
self.iter = self.iter.mutate_over(visitor)
if self.ifs:
- visitor._mutate_sequence(self.ifs)
+ for i in range(len(self.ifs)):
+ if self.ifs[i] is not None:
+ self.ifs[i] = self.ifs[i].mutate_over(visitor)
return visitor.visit_comprehension(self)
def walkabout(self, visitor):
@@ -3555,7 +3648,9 @@
if self.type:
self.type = self.type.mutate_over(visitor)
if self.body:
- visitor._mutate_sequence(self.body)
+ for i in range(len(self.body)):
+ if self.body[i] is not None:
+ self.body[i] = self.body[i].mutate_over(visitor)
return visitor.visit_ExceptHandler(self)
def to_object(self, space):
@@ -3606,17 +3701,25 @@
def mutate_over(self, visitor):
if self.args:
- visitor._mutate_sequence(self.args)
+ for i in range(len(self.args)):
+ if self.args[i] is not None:
+ self.args[i] = self.args[i].mutate_over(visitor)
if self.vararg:
self.vararg = self.vararg.mutate_over(visitor)
if self.kwonlyargs:
- visitor._mutate_sequence(self.kwonlyargs)
+ for i in range(len(self.kwonlyargs)):
+ if self.kwonlyargs[i] is not None:
+ self.kwonlyargs[i] =
self.kwonlyargs[i].mutate_over(visitor)
if self.kw_defaults:
- visitor._mutate_sequence(self.kw_defaults)
+ for i in range(len(self.kw_defaults)):
+ if self.kw_defaults[i] is not None:
+ self.kw_defaults[i] =
self.kw_defaults[i].mutate_over(visitor)
if self.kwarg:
self.kwarg = self.kwarg.mutate_over(visitor)
if self.defaults:
- visitor._mutate_sequence(self.defaults)
+ for i in range(len(self.defaults)):
+ if self.defaults[i] is not None:
+ self.defaults[i] = self.defaults[i].mutate_over(visitor)
return visitor.visit_arguments(self)
def walkabout(self, visitor):
@@ -3827,11 +3930,6 @@
def default_visitor(self, node):
raise NodeVisitorNotImplemented
- def _mutate_sequence(self, seq):
- for i in range(len(seq)):
- if seq[i] is not None:
- seq[i] = seq[i].mutate_over(self)
-
def visit_Module(self, node):
return self.default_visitor(node)
def visit_Interactive(self, node):
diff --git a/pypy/interpreter/astcompiler/tools/asdl_py.py
b/pypy/interpreter/astcompiler/tools/asdl_py.py
--- a/pypy/interpreter/astcompiler/tools/asdl_py.py
+++ b/pypy/interpreter/astcompiler/tools/asdl_py.py
@@ -257,12 +257,19 @@
else:
level = 2
if field.seq:
- sub = (field.name,)
- self.emit("visitor._mutate_sequence(self.%s)" % sub, level)
+ sub = field.name
+ self.emit("for i in range(len(self.{})):".format(sub),
+ level)
+ self.emit("if self.{}[i] is not None:".format(sub),
+ level + 1)
+ self.emit(
+ "self.{0}[i] =
self.{0}[i].mutate_over(visitor)".format(sub),
+ level + 2)
else:
- sub = (field.name, field.name)
- self.emit("self.%s = self.%s.mutate_over(visitor)" % sub,
- level)
+ sub = field.name
+ self.emit(
+ "self.{0} = self.{0}.mutate_over(visitor)".format(sub),
+ level)
self.emit("return visitor.visit_%s(self)" % (name,), 2)
self.emit("")
@@ -305,11 +312,6 @@
self.emit("def default_visitor(self, node):", 1)
self.emit("raise NodeVisitorNotImplemented", 2)
self.emit("")
- self.emit("def _mutate_sequence(self, seq):", 1)
- self.emit("for i in range(len(seq)):", 2)
- self.emit("if seq[i] is not None:", 3)
- self.emit("seq[i] = seq[i].mutate_over(self)", 4)
- self.emit("")
super(ASTVisitorVisitor, self).visitModule(mod)
self.emit("")
@@ -451,6 +453,7 @@
class AST(object):
__metaclass__ = extendabletype
+ #_attrs_ = ['lineno', 'col_offset']
def walkabout(self, visitor):
raise AssertionError("walkabout() implementation not provided")
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit