Skip to content

Usage of test function triggers panic #975

@kakoc

Description

@kakoc

Hi,
Right now the usage of thing like {{ items is array_filter([1,2,3]) }} triggers panic.
The issue happens at add_raw_template, not render stage as I see.
Can it be made as some Result error instead?

Stack trace:

0: rust_begin_unwind
             at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/std/src/panicking.rs:695:5
   1: core::panicking::panic_fmt
             at /rustc/05f9846f893b09a1be1fc8560e33fc3c815cfecb/library/core/src/panicking.rs:75:14
   2: tera::parser::parse_test_call
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:128:30
   3: tera::parser::parse_test
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:148:38
   4: tera::parser::parse_basic_expression
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:255:37
   5: core::ops::function::FnMut::call_mut
             at /Users/kakoc/.rustup/toolchains/1.86-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:166:5
   6: pest::pratt_parser::PrattParserMap<R,F,T>::nud
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:345:21
   7: pest::pratt_parser::PrattParserMap<R,F,T>::expr
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:324:23
   8: pest::pratt_parser::PrattParserMap<R,F,T>::parse
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:320:9
   9: tera::parser::parse_basic_expression
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:265:13
  10: tera::parser::parse_basic_expr_with_filters
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:279:49
  11: tera::parser::parse_comparison_val
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:380:36
  12: core::ops::function::FnMut::call_mut
             at /Users/kakoc/.rustup/toolchains/1.86-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:166:5
  13: pest::pratt_parser::PrattParserMap<R,F,T>::nud
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:345:21
  14: pest::pratt_parser::PrattParserMap<R,F,T>::expr
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:324:23
  15: pest::pratt_parser::PrattParserMap<R,F,T>::parse
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:320:9
  16: tera::parser::parse_comparison_val
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:382:13
  17: tera::parser::parse_comparison_expression
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:409:33
  18: core::ops::function::FnMut::call_mut
             at /Users/kakoc/.rustup/toolchains/1.86-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:166:5
  19: pest::pratt_parser::PrattParserMap<R,F,T>::nud
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:345:21
  20: pest::pratt_parser::PrattParserMap<R,F,T>::expr
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:324:23
  21: pest::pratt_parser::PrattParserMap<R,F,T>::parse
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:320:9
  22: tera::parser::parse_comparison_expression
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:412:13
  23: tera::parser::parse_logic_val
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:428:50
  24: tera::parser::parse_logic_expr
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:461:28
  25: core::ops::function::FnMut::call_mut
             at /Users/kakoc/.rustup/toolchains/1.86-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:166:5
  26: pest::pratt_parser::PrattParserMap<R,F,T>::nud
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:345:21
  27: pest::pratt_parser::PrattParserMap<R,F,T>::expr
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:324:23
  28: pest::pratt_parser::PrattParserMap<R,F,T>::parse
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pest-2.8.1/src/pratt_parser.rs:320:9
  29: tera::parser::parse_logic_expr
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:463:13
  30: tera::parser::parse_variable_tag
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:538:45
  31: tera::parser::parse_content
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:1059:46
  32: tera::parser::parse
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/parser/mod.rs:1217:43
  33: tera::template::Template::new
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/template.rs:48:37
  34: tera::tera::Tera::add_raw_template
             at /Users/kakoc/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tera-1.20.0/src/tera.rs:523:19

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions