diff options
author | René Kijewski <rene.kijewski@fu-berlin.de> | 2023-01-30 13:09:49 +0100 |
---|---|---|
committer | Dirkjan Ochtman <dirkjan@ochtman.nl> | 2023-01-30 14:19:46 +0100 |
commit | 63b98ec7d379768d771966c6aa44de20862e0994 (patch) | |
tree | 894aa4967a46890adf7af4ea0c06eac42afa0c46 | |
parent | 071106d94254d67388de64f0a7727732b345f413 (diff) | |
download | askama-63b98ec7d379768d771966c6aa44de20862e0994.tar.gz askama-63b98ec7d379768d771966c6aa44de20862e0994.tar.bz2 askama-63b98ec7d379768d771966c6aa44de20862e0994.zip |
Extends expects a string and nothing else
-rw-r--r-- | askama_derive/src/generator.rs | 2 | ||||
-rw-r--r-- | askama_derive/src/heritage.rs | 4 | ||||
-rw-r--r-- | askama_derive/src/parser.rs | 4 |
3 files changed, 5 insertions, 5 deletions
diff --git a/askama_derive/src/generator.rs b/askama_derive/src/generator.rs index 5770bd5..173fab1 100644 --- a/askama_derive/src/generator.rs +++ b/askama_derive/src/generator.rs @@ -200,7 +200,7 @@ fn find_used_templates( while let Some((path, source)) = check.pop() { for n in parse(&source, input.syntax)? { match n { - Node::Extends(Expr::StrLit(extends)) => { + Node::Extends(extends) => { let extends = input.config.find_template(extends, Some(&path))?; let dependency_path = (path.clone(), extends.clone()); if dependency_graph.contains(&dependency_path) { diff --git a/askama_derive/src/heritage.rs b/askama_derive/src/heritage.rs index 010f723..ec1997e 100644 --- a/askama_derive/src/heritage.rs +++ b/askama_derive/src/heritage.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use std::path::{Path, PathBuf}; use crate::config::Config; -use crate::parser::{Expr, Loop, Macro, Node}; +use crate::parser::{Loop, Macro, Node}; use crate::CompileError; pub(crate) struct Heritage<'a> { @@ -58,7 +58,7 @@ impl Context<'_> { while let Some(nodes) = nested.pop() { for n in nodes { match n { - Node::Extends(Expr::StrLit(extends_path)) if top => match extends { + Node::Extends(extends_path) if top => match extends { Some(_) => return Err("multiple extend blocks found".into()), None => { extends = Some(config.find_template(extends_path, Some(path))?); diff --git a/askama_derive/src/parser.rs b/askama_derive/src/parser.rs index bcf9c58..5045731 100644 --- a/askama_derive/src/parser.rs +++ b/askama_derive/src/parser.rs @@ -24,7 +24,7 @@ pub(crate) enum Node<'a> { Cond(Vec<Cond<'a>>, Ws), Match(Ws, Expr<'a>, Vec<When<'a>>, Ws), Loop(Loop<'a>), - Extends(Expr<'a>), + Extends(&'a str), BlockDef(Ws, &'a str, Vec<Node<'a>>, Ws), Include(Ws, &'a str), Import(Ws, &'a str, &'a str), @@ -985,7 +985,7 @@ fn block_for<'a>(i: &'a str, s: &State<'_>) -> IResult<&'a str, Node<'a>> { } fn block_extends(i: &str) -> IResult<&str, Node<'_>> { - let (i, (_, name)) = tuple((ws(keyword("extends")), ws(expr_str_lit)))(i)?; + let (i, (_, name)) = tuple((ws(keyword("extends")), ws(str_lit)))(i)?; Ok((i, Node::Extends(name))) } |