diff options
Diffstat (limited to '')
| -rw-r--r-- | testing/templates/let-shadow.html | 22 | ||||
| -rw-r--r-- | testing/tests/vars.rs | 21 | 
2 files changed, 43 insertions, 0 deletions
| diff --git a/testing/templates/let-shadow.html b/testing/templates/let-shadow.html new file mode 100644 index 0000000..938c5bf --- /dev/null +++ b/testing/templates/let-shadow.html @@ -0,0 +1,22 @@ +{%- let a = 1 -%} +{%- let b -%} + +{%- if cond -%} +    {%- let b = 22 -%} +    {{ b }}- + +    {%- let b = 33 -%} +    {{ a }}-{{ b }}- +{%- else -%} +    {%- let b = 222 -%} +    {{ b }}- + +    {%- let b = 333 -%} +    {{ a }}-{{ b }}- + +    {%- let (a, b) = Self::tuple() -%} +    {{ a }}-{{ b }}- +{%- endif -%} + +{%- let a = 11 -%} +{{ a }}-{{ b }} diff --git a/testing/tests/vars.rs b/testing/tests/vars.rs index d1c41f9..d70a084 100644 --- a/testing/tests/vars.rs +++ b/testing/tests/vars.rs @@ -47,6 +47,27 @@ fn test_let_decl() {  }  #[derive(Template)] +#[template(path = "let-shadow.html")] +struct LetShadowTemplate { +    cond: bool, +} + +impl LetShadowTemplate { +    fn tuple() -> (i32, i32) { +        (4, 5) +    } +} + +#[test] +fn test_let_shadow() { +    let t = LetShadowTemplate { cond: true }; +    assert_eq!(t.render().unwrap(), "22-1-33-11-22"); + +    let t = LetShadowTemplate { cond: false }; +    assert_eq!(t.render().unwrap(), "222-1-333-4-5-11-222"); +} + +#[derive(Template)]  #[template(source = "{% for v in self.0 %}{{ v }}{% endfor %}", ext = "txt")]  struct SelfIterTemplate(Vec<usize>); | 
