aboutsummaryrefslogtreecommitdiffstats
path: root/askama_derive
diff options
context:
space:
mode:
authorLibravatar Dirkjan Ochtman <dirkjan@ochtman.nl>2018-06-16 14:06:50 +0200
committerLibravatar Dirkjan Ochtman <dirkjan@ochtman.nl>2018-06-16 14:06:50 +0200
commit316b28600d8af30b8af5d552b5f3b466a0ad7c22 (patch)
tree0f13180926f1c3d1f71d18b0e636349cc9fd5b76 /askama_derive
parentdbb48dbbf2647100f6e3db5d4ae0ec920722eca4 (diff)
downloadaskama-316b28600d8af30b8af5d552b5f3b466a0ad7c22.tar.gz
askama-316b28600d8af30b8af5d552b5f3b466a0ad7c22.tar.bz2
askama-316b28600d8af30b8af5d552b5f3b466a0ad7c22.zip
Restrict use of macro/import/extend nodes to the top level
Diffstat (limited to 'askama_derive')
-rw-r--r--askama_derive/src/generator.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/askama_derive/src/generator.rs b/askama_derive/src/generator.rs
index 0d3dd5f..a6e74bc 100644
--- a/askama_derive/src/generator.rs
+++ b/askama_derive/src/generator.rs
@@ -358,20 +358,20 @@ impl<'a> Generator<'a> {
self.write_call(state, ws, scope, name, args);
},
Node::Macro(_, ref m) => {
- if let AstLevel::Nested = level {
+ if level != AstLevel::Top {
panic!("macro blocks only allowed at the top level");
}
self.flush_ws(&m.ws1);
self.prepare_ws(&m.ws2);
},
Node::Import(ref ws, _, _) => {
- if let AstLevel::Nested = level {
+ if level != AstLevel::Top {
panic!("import blocks only allowed at the top level");
}
self.handle_ws(ws);
},
Node::Extends(_) => {
- if let AstLevel::Nested = level {
+ if level != AstLevel::Top {
panic!("extend blocks only allowed at the top level");
}
// No whitespace handling: child template top-level is not used,
@@ -974,7 +974,7 @@ fn get_parent_type(ast: &syn::DeriveInput) -> Option<&syn::Type> {
}.next()
}
-#[derive(Clone)]
+#[derive(Clone, PartialEq)]
enum AstLevel {
Top,
Block,