aboutsummaryrefslogtreecommitdiffstats
path: root/askama_derive/src/parser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'askama_derive/src/parser.rs')
-rw-r--r--askama_derive/src/parser.rs23
1 files changed, 14 insertions, 9 deletions
diff --git a/askama_derive/src/parser.rs b/askama_derive/src/parser.rs
index fb591d4..96e0f09 100644
--- a/askama_derive/src/parser.rs
+++ b/askama_derive/src/parser.rs
@@ -623,15 +623,20 @@ named!(block_macro<Input, Node>, do_parse!(
pws2: opt!(tag_s!("-")) >>
ws!(tag_s!("endmacro")) >>
nws2: opt!(tag_s!("-")) >>
- (Node::Macro(
- name,
- Macro {
- ws1: WS(pws1.is_some(), nws1.is_some()),
- args: params,
- nodes: contents,
- ws2: WS(pws2.is_some(), nws2.is_some())
- }
- ))
+ ({
+ if name == "super" {
+ panic!("invalid macro name 'super'");
+ }
+ Node::Macro(
+ name,
+ Macro {
+ ws1: WS(pws1.is_some(), nws1.is_some()),
+ args: params,
+ nodes: contents,
+ ws2: WS(pws2.is_some(), nws2.is_some())
+ }
+ )
+ })
));
named!(block_node<Input, Node>, do_parse!(