aboutsummaryrefslogtreecommitdiffstats
path: root/testing/tests/ui
diff options
context:
space:
mode:
authorLibravatar René Kijewski <kijewski@library.vetmed.fu-berlin.de>2021-07-17 13:40:49 +0200
committerLibravatar Dirkjan Ochtman <dirkjan@ochtman.nl>2021-07-30 11:45:56 +0200
commit268d8250fb0a9cdcbbd760bdf39424ed02fd1920 (patch)
tree02a31fa920a29cff2420e597158637619cf7606c /testing/tests/ui
parent1622df7aeecb71fca2da630330513b26cefef16b (diff)
downloadaskama-268d8250fb0a9cdcbbd760bdf39424ed02fd1920.tar.gz
askama-268d8250fb0a9cdcbbd760bdf39424ed02fd1920.tar.bz2
askama-268d8250fb0a9cdcbbd760bdf39424ed02fd1920.zip
Use "target()" to parse "when" block
`target()` as used in parsing "let" and "if let" implements parsing nested tuples and structs. But it does not implement parsing literals. The functions `match_variant()` and `with_parameters()` as used in parsing "when" blocks do not implement parsing nested structs, but it implements parsing literals. This PR combines `match_variant()` and `with_parameters()` into `target()`, so that all `{%when%}` support nested structs, too.
Diffstat (limited to 'testing/tests/ui')
-rw-r--r--testing/tests/ui/lit_on_assignment_lhs.rs11
-rw-r--r--testing/tests/ui/lit_on_assignment_lhs.stderr7
2 files changed, 18 insertions, 0 deletions
diff --git a/testing/tests/ui/lit_on_assignment_lhs.rs b/testing/tests/ui/lit_on_assignment_lhs.rs
new file mode 100644
index 0000000..1793770
--- /dev/null
+++ b/testing/tests/ui/lit_on_assignment_lhs.rs
@@ -0,0 +1,11 @@
+use askama::Template;
+
+#[derive(Template)]
+#[template(
+ source = "{%let 7=x%}",
+ ext = "txt"
+)]
+struct MyTemplate;
+
+fn main() {
+}
diff --git a/testing/tests/ui/lit_on_assignment_lhs.stderr b/testing/tests/ui/lit_on_assignment_lhs.stderr
new file mode 100644
index 0000000..fa488cb
--- /dev/null
+++ b/testing/tests/ui/lit_on_assignment_lhs.stderr
@@ -0,0 +1,7 @@
+error: proc-macro derive panicked
+ --> $DIR/lit_on_assignment_lhs.rs:3:10
+ |
+3 | #[derive(Template)]
+ | ^^^^^^^^
+ |
+ = help: message: Cannot have literals on the left-hand-side of an assignment.