aboutsummaryrefslogtreecommitdiffstats
path: root/askama_shared/src/generator.rs
diff options
context:
space:
mode:
Diffstat (limited to 'askama_shared/src/generator.rs')
-rw-r--r--askama_shared/src/generator.rs23
1 files changed, 8 insertions, 15 deletions
diff --git a/askama_shared/src/generator.rs b/askama_shared/src/generator.rs
index fb8619e..d904524 100644
--- a/askama_shared/src/generator.rs
+++ b/askama_shared/src/generator.rs
@@ -1030,7 +1030,10 @@ impl<'a, S: std::hash::BuildHasher> Generator<'a, S> {
}
let scoped = match *arg {
- Expr::Filter(_, _) | Expr::MethodCall(_, _, _) => true,
+ Expr::Filter(_, _)
+ | Expr::MethodCall(_, _, _)
+ | Expr::VarCall(_, _)
+ | Expr::PathCall(_, _) => true,
_ => false,
};
@@ -1169,13 +1172,8 @@ impl<'a, S: std::hash::BuildHasher> Generator<'a, S> {
}
buf.write(part);
}
- buf.write("(");
- for (i, arg) in args.iter().enumerate() {
- if i > 0 {
- buf.write(",");
- }
- self.visit_expr(buf, arg);
- }
+ buf.write("(&");
+ self._visit_args(buf, args);
buf.write(")");
DisplayWrap::Unwrapped
}
@@ -1198,13 +1196,8 @@ impl<'a, S: std::hash::BuildHasher> Generator<'a, S> {
buf.write("self.");
buf.write(s);
}
- buf.write(")(");
- for (i, arg) in args.iter().enumerate() {
- if i > 0 {
- buf.write(",");
- }
- self.visit_expr(buf, arg);
- }
+ buf.write(")(&");
+ self._visit_args(buf, args);
buf.write(")");
DisplayWrap::Unwrapped
}