@@ -301,19 +301,25 @@ async def _visit(node: Node, template_name: str, scope: _StaticScope) -> None:
301301def _extract_filters (
302302 expression : Expression , template_name : str
303303) -> Iterable [tuple [str , Span ]]:
304- if (
305- isinstance (expression , (FilteredExpression , TernaryFilteredExpression ))
306- and expression .filters
307- ):
308- yield from (
309- (f .name , Span (template_name , f .token .start_index ))
310- for f in expression .filters
311- )
304+ if isinstance (expression , TernaryFilteredExpression ):
305+ yield from _extract_filters (expression .left , template_name )
312306
313- if isinstance (expression , TernaryFilteredExpression ) and expression .tail_filters :
307+ if expression .filters :
308+ yield from (
309+ (f .name , Span (template_name , f .token .start_index ))
310+ for f in expression .filters
311+ )
312+
313+ if expression .tail_filters :
314+ yield from (
315+ (f .name , Span (template_name , f .token .start_index ))
316+ for f in expression .tail_filters
317+ )
318+
319+ if isinstance (expression , FilteredExpression ) and expression .filters :
314320 yield from (
315321 (f .name , Span (template_name , f .token .start_index ))
316- for f in expression .tail_filters
322+ for f in expression .filters
317323 )
318324
319325 for expr in expression .children ():
0 commit comments