temporary identifiers are prefixed with "t_" now and the _node_setup_finished hack went away
--HG--
branch : trunk
diff --git a/jinja2/compiler.py b/jinja2/compiler.py
index 8dd31df..e0f02f3 100644
--- a/jinja2/compiler.py
+++ b/jinja2/compiler.py
@@ -355,7 +355,7 @@
def temporary_identifier(self):
"""Get a new unique identifier."""
self._last_identifier += 1
- return 't%d' % self._last_identifier
+ return 't_%d' % self._last_identifier
def buffer(self, frame):
"""Enable buffering for the frame from that point onwards."""
diff --git a/jinja2/lexer.py b/jinja2/lexer.py
index 2719dcc..61e1bca 100644
--- a/jinja2/lexer.py
+++ b/jinja2/lexer.py
@@ -92,10 +92,7 @@
return tuple.__new__(cls, (lineno, intern(str(type)), value))
def __str__(self):
- from jinja.lexer import keywords, reverse_operators
- if self.type in keywords:
- return self.type
- elif self.type in reverse_operators:
+ if self.type in reverse_operators:
return reverse_operators[self.type]
elif self.type is 'name':
return self.value
diff --git a/jinja2/nodes.py b/jinja2/nodes.py
index 960a540..969d785 100644
--- a/jinja2/nodes.py
+++ b/jinja2/nodes.py
@@ -48,10 +48,6 @@
}
-# if this is `True` no new Node classes can be created.
-_node_setup_finished = False
-
-
class Impossible(Exception):
"""Raised if the node could not perform a requested action."""
@@ -62,8 +58,6 @@
automatically forwarded to the child."""
def __new__(cls, name, bases, d):
- if __debug__ and _node_setup_finished:
- raise TypeError('Can\'t create custom node types.')
for attr in 'fields', 'attributes':
storage = []
storage.extend(getattr(bases[0], attr, ()))
@@ -808,5 +802,7 @@
"""Break a loop."""
-# and close down
-_node_setup_finished = True
+# make sure nobody creates custom nodes
+def _failing_new(*args, **kwargs):
+ raise TypeError('can\'t create custom node types')
+NodeType.__new__ = staticmethod(_failing_new); del _failing_new