diff options
author | René Kijewski <kijewski@library.vetmed.fu-berlin.de> | 2022-01-31 09:02:17 +0100 |
---|---|---|
committer | Dirkjan Ochtman <dirkjan@ochtman.nl> | 2022-01-31 11:30:35 +0100 |
commit | 91874702f0f3581549c129369a8bc0783006b5fa (patch) | |
tree | 5b70acb63e7634cc8b9d1dfc29eabd7b4d30238a /askama_shared | |
parent | da0b6ead0e75082bfffa24f8529d1f83961ba45c (diff) | |
download | askama-91874702f0f3581549c129369a8bc0783006b5fa.tar.gz askama-91874702f0f3581549c129369a8bc0783006b5fa.tar.bz2 askama-91874702f0f3581549c129369a8bc0783006b5fa.zip |
Allow comments in `{% match %}` and remove panic!
Diffstat (limited to 'askama_shared')
-rw-r--r-- | askama_shared/src/parser.rs | 21 |
1 files changed, 2 insertions, 19 deletions
diff --git a/askama_shared/src/parser.rs b/askama_shared/src/parser.rs index 085d73b..97ccf6c 100644 --- a/askama_shared/src/parser.rs +++ b/askama_shared/src/parser.rs @@ -804,7 +804,7 @@ fn block_match<'a>(i: &'a str, s: &State<'_>) -> IResult<&'a str, Node<'a>> { opt(char('-')), |i| tag_block_end(i, s), cut(tuple(( - opt(|i| take_content(i, s)), + ws(many0(ws(value((), |i| block_comment(i, s))))), many1(|i| when_block(i, s)), cut(tuple(( opt(|i| match_else_block(i, s)), @@ -818,30 +818,13 @@ fn block_match<'a>(i: &'a str, s: &State<'_>) -> IResult<&'a str, Node<'a>> { ))), ))), )); - let (i, (pws1, _, (expr, nws1, _, (inter, arms, (else_arm, (_, pws2, _, nws2)))))) = p(i)?; + let (i, (pws1, _, (expr, nws1, _, (_, arms, (else_arm, (_, pws2, _, nws2)))))) = p(i)?; let mut arms = arms; if let Some(arm) = else_arm { arms.push(arm); } - match inter { - Some(Node::Lit(_, val, rws)) => { - assert!( - val.is_empty(), - "only whitespace allowed between match and first when, found {}", - val - ); - assert!( - rws.is_empty(), - "only whitespace allowed between match and first when, found {}", - rws - ); - } - None => {} - _ => panic!("only literals allowed between match and first when"), - } - Ok(( i, Node::Match( |