]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Python 2.6+ supports conditional expressions. 216/head
authorCory Benfield <lukasaoz@gmail.com>
Sat, 18 May 2013 10:58:57 +0000 (11:58 +0100)
committerCory Benfield <lukasaoz@gmail.com>
Sat, 18 May 2013 11:00:14 +0000 (12:00 +0100)
jinja2/compiler.py

index 5c7f1a61952c1715c5137271069c05bac05a9dbe..24bf252e04a8684584413ee6e99fedef3c9bd585 100644 (file)
@@ -36,14 +36,6 @@ operators = {
     'notin':    'not in'
 }
 
-try:
-    exec('(0 if 0 else 0)')
-except SyntaxError:
-    have_condexpr = False
-else:
-    have_condexpr = True
-
-
 # what method to iterate over items do we want to use for dict iteration
 # in generated code?  on 2.x let's go with iteritems, on 3.x with items
 if hasattr(dict, 'iteritems'):
@@ -1565,22 +1557,13 @@ class CodeGenerator(NodeVisitor):
                        'expression on %s evaluated to false and '
                        'no else section was defined.' % self.position(node)))
 
-        if not have_condexpr:
-            self.write('((')
-            self.visit(node.test, frame)
-            self.write(') and (')
-            self.visit(node.expr1, frame)
-            self.write(',) or (')
-            write_expr2()
-            self.write(',))[0]')
-        else:
-            self.write('(')
-            self.visit(node.expr1, frame)
-            self.write(' if ')
-            self.visit(node.test, frame)
-            self.write(' else ')
-            write_expr2()
-            self.write(')')
+        self.write('(')
+        self.visit(node.expr1, frame)
+        self.write(' if ')
+        self.visit(node.test, frame)
+        self.write(' else ')
+        write_expr2()
+        self.write(')')
 
     def visit_Call(self, node, frame, forward_caller=False):
         if self.environment.sandboxed: