mirror of
https://gitee.com/openharmony/third_party_jinja2
synced 2025-02-21 08:13:54 +00:00
removed loop.parent. If this variable is wanted you can get it by doing something like {% parent_looo = loop %}
before the iteration
--HG-- branch : trunk
This commit is contained in:
parent
4c81b16ccc
commit
f64efb8293
@ -656,8 +656,6 @@ class CodeGenerator(NodeVisitor):
|
||||
else:
|
||||
self.visit(node.iter, loop_frame)
|
||||
|
||||
if 'loop' in aliases:
|
||||
self.write(', ' + aliases['loop'])
|
||||
self.write(extended_loop and '):' or ':')
|
||||
|
||||
# tests in not extended loops become a continue
|
||||
|
@ -145,7 +145,6 @@ class Optimizer(NodeTransformer):
|
||||
except (nodes.Impossible, TypeError):
|
||||
return fallback
|
||||
|
||||
parent = context.get('loop')
|
||||
context.push()
|
||||
result = []
|
||||
iterated = False
|
||||
@ -181,7 +180,7 @@ class Optimizer(NodeTransformer):
|
||||
|
||||
try:
|
||||
try:
|
||||
for item, loop in LoopContext(iterable, parent, True):
|
||||
for item, loop in LoopContext(iterable, True):
|
||||
context['loop'] = loop.make_static()
|
||||
assign(node.target, item)
|
||||
result.extend(self.visit(n.copy(), context)
|
||||
|
@ -152,21 +152,17 @@ class LoopContextBase(object):
|
||||
class LoopContext(LoopContextBase):
|
||||
"""A loop context for dynamic iteration."""
|
||||
|
||||
def __init__(self, iterable, parent=None, enforce_length=False):
|
||||
def __init__(self, iterable, enforce_length=False):
|
||||
self._iterable = iterable
|
||||
self._next = iter(iterable).next
|
||||
self._length = None
|
||||
self.index0 = -1
|
||||
self.parent = parent
|
||||
if enforce_length:
|
||||
len(self)
|
||||
|
||||
def make_static(self):
|
||||
"""Return a static loop context for the optimizer."""
|
||||
parent = None
|
||||
if self.parent is not None:
|
||||
parent = self.parent.make_static()
|
||||
return StaticLoopContext(self.index0, self.length, parent)
|
||||
return StaticLoopContext(self.index0, self.length)
|
||||
|
||||
def __iter__(self):
|
||||
return self
|
||||
@ -197,17 +193,15 @@ class StaticLoopContext(LoopContextBase):
|
||||
loop object is accessed in a non static way (eg: becomes part of a
|
||||
function call)."""
|
||||
|
||||
def __init__(self, index0, length, parent):
|
||||
def __init__(self, index0, length):
|
||||
self.index0 = index0
|
||||
self.parent = parent
|
||||
self.length = length
|
||||
|
||||
def __repr__(self):
|
||||
"""The repr is used by the optimizer to dump the object."""
|
||||
return 'StaticLoopContext(%r, %r, %r)' % (
|
||||
return 'StaticLoopContext(%r, %r)' % (
|
||||
self.index0,
|
||||
self.length,
|
||||
self.parent
|
||||
self.length
|
||||
)
|
||||
|
||||
def make_static(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user