From 73c82030e893ab259081bf38b4259e05156c32d0 Mon Sep 17 00:00:00 2001 From: Rakshith Ravi Date: Thu, 26 Mar 2020 10:36:52 +0530 Subject: Throw error when encountering `...` instead of `..` while destructing a pattern Added tests and stderr output --- .../issue-70388-recover-dotdotdot-rest-pat.rs | 7 ++++++ .../issue-70388-recover-dotdotdot-rest-pat.stderr | 29 ++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.rs create mode 100644 src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.stderr (limited to 'src/test') diff --git a/src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.rs b/src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.rs new file mode 100644 index 00000000000..ca8abd78c47 --- /dev/null +++ b/src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.rs @@ -0,0 +1,7 @@ +struct Foo(i32); + +fn main() { + let Foo(...) = Foo(0); //~ ERROR unexpected `...` + let [_, ..., _] = [0, 1]; //~ ERROR unexpected `...` + let _recovery_witness: () = 0; //~ ERROR mismatched types +} diff --git a/src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.stderr b/src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.stderr new file mode 100644 index 00000000000..4961e8fc049 --- /dev/null +++ b/src/test/ui/parser/issue-70388-recover-dotdotdot-rest-pat.stderr @@ -0,0 +1,29 @@ +error: unexpected `...` + --> $DIR/issue-70388-recover-dotdotdot-rest-pat.rs:4:13 + | +LL | let Foo(...) = Foo(0); + | ^^^ + | | + | not a valid pattern + | help: for a rest pattern, use `..` instead of `...` + +error: unexpected `...` + --> $DIR/issue-70388-recover-dotdotdot-rest-pat.rs:5:13 + | +LL | let [_, ..., _] = [0, 1]; + | ^^^ + | | + | not a valid pattern + | help: for a rest pattern, use `..` instead of `...` + +error[E0308]: mismatched types + --> $DIR/issue-70388-recover-dotdotdot-rest-pat.rs:6:33 + | +LL | let _recovery_witness: () = 0; + | -- ^ expected `()`, found integer + | | + | expected due to this + +error: aborting due to 3 previous errors + +For more information about this error, try `rustc --explain E0308`. -- cgit 1.4.1-3-g733a5