aboutsummaryrefslogtreecommitdiff
path: root/jinja2
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2017-01-07 02:44:37 +0100
committerArmin Ronacher <armin.ronacher@active-4.com>2017-01-07 02:44:37 +0100
commit01d9e7e906386d24ef3d067bee40401a138098e6 (patch)
tree1f18463a483c3c75cdbf7c3f787b8b14a386b814 /jinja2
parente8ef8aaceea50af07a14fcfb26360d3cf9715639 (diff)
downloadjinja-01d9e7e906386d24ef3d067bee40401a138098e6.tar.gz
Smaller fixes to stuff that broke on 3.x
Diffstat (limited to 'jinja2')
-rw-r--r--jinja2/asyncfilters.py2
-rw-r--r--jinja2/nodes.py7
2 files changed, 9 insertions, 0 deletions
diff --git a/jinja2/asyncfilters.py b/jinja2/asyncfilters.py
index d12afaf4..5c1f46d7 100644
--- a/jinja2/asyncfilters.py
+++ b/jinja2/asyncfilters.py
@@ -47,6 +47,8 @@ def dualfilter(normal_filter, async_filter):
if wrap_evalctx:
wrapper.evalcontextfilter = True
+ wrapper.asyncfiltervariant = True
+
return wrapper
diff --git a/jinja2/nodes.py b/jinja2/nodes.py
index 76f7814c..4d62cccb 100644
--- a/jinja2/nodes.py
+++ b/jinja2/nodes.py
@@ -592,6 +592,13 @@ class Filter(Expr):
filter_ = self.environment.filters.get(self.name)
if filter_ is None or getattr(filter_, 'contextfilter', False):
raise Impossible()
+
+ # We cannot constant handle async filters, so we need to make sure
+ # to not go down this path.
+ if eval_ctx.environment.is_async and \
+ getattr(filter_, 'asyncfiltervariant', False):
+ raise Impossible()
+
obj = self.node.as_const(eval_ctx)
args = [obj] + [x.as_const(eval_ctx) for x in self.args]
if getattr(filter_, 'evalcontextfilter', False):