aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--testing/templates/let-shadow.html22
-rw-r--r--testing/tests/vars.rs21
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>);