aboutsummaryrefslogtreecommitdiffstats
path: root/askama_derive/src/parser/node.rs
diff options
context:
space:
mode:
Diffstat (limited to 'askama_derive/src/parser/node.rs')
-rw-r--r--askama_derive/src/parser/node.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/askama_derive/src/parser/node.rs b/askama_derive/src/parser/node.rs
index fc6860e..8c122af 100644
--- a/askama_derive/src/parser/node.rs
+++ b/askama_derive/src/parser/node.rs
@@ -133,12 +133,13 @@ fn block_call(i: &str) -> IResult<&str, Node<'_>> {
cut(tuple((
opt(tuple((ws(identifier), ws(tag("::"))))),
ws(identifier),
- ws(Expr::parse_arguments),
+ opt(ws(Expr::parse_arguments)),
opt(expr_handle_ws),
))),
));
let (i, (pws, _, (scope, name, args, nws))) = p(i)?;
let scope = scope.map(|(scope, _)| scope);
+ let args = args.unwrap_or_default();
Ok((i, Node::Call(Ws(pws, nws), scope, name, args)))
}
@@ -415,7 +416,7 @@ fn block_macro<'a>(i: &'a str, s: &State<'_>) -> IResult<&'a str, Node<'a>> {
ws(keyword("macro")),
cut(tuple((
ws(identifier),
- ws(parameters),
+ opt(ws(parameters)),
opt(expr_handle_ws),
|i| tag_block_end(i, s),
))),
@@ -435,6 +436,8 @@ fn block_macro<'a>(i: &'a str, s: &State<'_>) -> IResult<&'a str, Node<'a>> {
assert_ne!(name, "super", "invalid macro name 'super'");
+ let params = params.unwrap_or_default();
+
Ok((
i,
Node::Macro(