about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaybe Waffle <waffle.lapkin@gmail.com>2023-01-12 19:25:32 +0000
committerMaybe Waffle <waffle.lapkin@gmail.com>2023-01-12 19:25:32 +0000
commitb0609889d7ca7f11dcb90880caf97fdf411a9374 (patch)
tree57c9b257e8c0bbda2aa95403fd16c9a752745da0
parent741c65344b4f2c860cb1237f431ebe0da418b0f1 (diff)
downloadrust-b0609889d7ca7f11dcb90880caf97fdf411a9374.tar.gz
rust-b0609889d7ca7f11dcb90880caf97fdf411a9374.zip
Add a test for recovery of unticked labels
-rw-r--r--tests/ui/parser/recover-unticked-labels.rs5
-rw-r--r--tests/ui/parser/recover-unticked-labels.stderr25
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/ui/parser/recover-unticked-labels.rs b/tests/ui/parser/recover-unticked-labels.rs
new file mode 100644
index 00000000000..88bd15d0ca8
--- /dev/null
+++ b/tests/ui/parser/recover-unticked-labels.rs
@@ -0,0 +1,5 @@
+fn main() {
+    'label: loop { break label }    //~ error: cannot find value `label` in this scope
+    'label: loop { break label 0 }  //~ error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `0`
+    'label: loop { continue label } //~ error: expected one of `.`, `;`, `?`, `}`, or an operator, found `label`
+}
diff --git a/tests/ui/parser/recover-unticked-labels.stderr b/tests/ui/parser/recover-unticked-labels.stderr
new file mode 100644
index 00000000000..3b48c1224b3
--- /dev/null
+++ b/tests/ui/parser/recover-unticked-labels.stderr
@@ -0,0 +1,25 @@
+error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `0`
+  --> $DIR/recover-unticked-labels.rs:3:32
+   |
+LL |     'label: loop { break label 0 }
+   |                                ^ expected one of 8 possible tokens
+
+error: expected one of `.`, `;`, `?`, `}`, or an operator, found `label`
+  --> $DIR/recover-unticked-labels.rs:4:29
+   |
+LL |     'label: loop { continue label }
+   |                             ^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
+
+error[E0425]: cannot find value `label` in this scope
+  --> $DIR/recover-unticked-labels.rs:2:26
+   |
+LL |     'label: loop { break label }
+   |     ------               ^^^^^
+   |     |                    |
+   |     |                    not found in this scope
+   |     |                    help: use the similarly named label: `'label`
+   |     a label with a similar name exists
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0425`.