]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Fix attribute access in async code. Fixes #1141
authorArmin Ronacher <armin.ronacher@active-4.com>
Thu, 30 Jan 2020 17:14:22 +0000 (18:14 +0100)
committerDavid Lord <davidism@gmail.com>
Thu, 30 Jan 2020 17:39:07 +0000 (09:39 -0800)
src/jinja2/compiler.py

index cbc0546d23031a0ed7691c37cd02b072e904841b..f450ec6e314d5e4f5ab245c743497882f49c2238 100644 (file)
@@ -1641,14 +1641,14 @@ class CodeGenerator(NodeVisitor):
     @optimizeconst
     def visit_Getattr(self, node, frame):
         if self.environment.is_async:
-            self.write("await auto_await(")
+            self.write("(await auto_await(")
 
         self.write("environment.getattr(")
         self.visit(node.node, frame)
         self.write(", %r)" % node.attr)
 
         if self.environment.is_async:
-            self.write(")")
+            self.write("))")
 
     @optimizeconst
     def visit_Getitem(self, node, frame):
@@ -1660,7 +1660,7 @@ class CodeGenerator(NodeVisitor):
             self.write("]")
         else:
             if self.environment.is_async:
-                self.write("await auto_await(")
+                self.write("(await auto_await(")
 
             self.write("environment.getitem(")
             self.visit(node.node, frame)
@@ -1669,7 +1669,7 @@ class CodeGenerator(NodeVisitor):
             self.write(")")
 
             if self.environment.is_async:
-                self.write(")")
+                self.write("))")
 
     def visit_Slice(self, node, frame):
         if node.start is not None: