diff options
Diffstat (limited to 'testing')
-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>); |