about summary refs log tree commit diff
path: root/tests/ui/loops/loop-break-value.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/loops/loop-break-value.stderr')
-rw-r--r--tests/ui/loops/loop-break-value.stderr193
1 files changed, 193 insertions, 0 deletions
diff --git a/tests/ui/loops/loop-break-value.stderr b/tests/ui/loops/loop-break-value.stderr
new file mode 100644
index 00000000000..ccb27c35070
--- /dev/null
+++ b/tests/ui/loops/loop-break-value.stderr
@@ -0,0 +1,193 @@
+error[E0425]: cannot find value `LOOP` in this scope
+  --> $DIR/loop-break-value.rs:95:15
+   |
+LL |     'LOOP: for _ in 0 .. 9 {
+   |     ----- a label with a similar name exists
+LL |         break LOOP;
+   |               ^^^^
+   |               |
+   |               not found in this scope
+   |               help: use the similarly named label: `'LOOP`
+
+warning: denote infinite loops with `loop { ... }`
+  --> $DIR/loop-break-value.rs:26:5
+   |
+LL |     'while_loop: while true {
+   |     ^^^^^^^^^^^^^^^^^^^^^^^ help: use `loop`
+   |
+   = note: `#[warn(while_true)]` on by default
+
+error[E0571]: `break` with value from a `while` loop
+  --> $DIR/loop-break-value.rs:28:9
+   |
+LL |     'while_loop: while true {
+   |     ----------------------- you can't `break` with a value in a `while` loop
+LL |         break;
+LL |         break ();
+   |         ^^^^^^^^ can only break with a value inside `loop` or breakable block
+   |
+help: use `break` on its own without a value inside this `while` loop
+   |
+LL |         break;
+   |         ~~~~~
+help: alternatively, you might have meant to use the available loop label
+   |
+LL |         break 'while_loop;
+   |               ~~~~~~~~~~~
+
+error[E0571]: `break` with value from a `while` loop
+  --> $DIR/loop-break-value.rs:30:13
+   |
+LL |     'while_loop: while true {
+   |     ----------------------- you can't `break` with a value in a `while` loop
+...
+LL |             break 'while_loop 123;
+   |             ^^^^^^^^^^^^^^^^^^^^^ can only break with a value inside `loop` or breakable block
+   |
+help: use `break` on its own without a value inside this `while` loop
+   |
+LL |             break 'while_loop;
+   |             ~~~~~~~~~~~~~~~~~
+
+error[E0571]: `break` with value from a `while` loop
+  --> $DIR/loop-break-value.rs:38:12
+   |
+LL |     while let Some(_) = Some(()) {
+   |     ---------------------------- you can't `break` with a value in a `while` loop
+LL |         if break () {
+   |            ^^^^^^^^ can only break with a value inside `loop` or breakable block
+   |
+help: use `break` on its own without a value inside this `while` loop
+   |
+LL |         if break {
+   |            ~~~~~
+
+error[E0571]: `break` with value from a `while` loop
+  --> $DIR/loop-break-value.rs:43:9
+   |
+LL |     while let Some(_) = Some(()) {
+   |     ---------------------------- you can't `break` with a value in a `while` loop
+LL |         break None;
+   |         ^^^^^^^^^^ can only break with a value inside `loop` or breakable block
+   |
+help: use `break` on its own without a value inside this `while` loop
+   |
+LL |         break;
+   |         ~~~~~
+
+error[E0571]: `break` with value from a `while` loop
+  --> $DIR/loop-break-value.rs:49:13
+   |
+LL |     'while_let_loop: while let Some(_) = Some(()) {
+   |     --------------------------------------------- you can't `break` with a value in a `while` loop
+LL |         loop {
+LL |             break 'while_let_loop "nope";
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ can only break with a value inside `loop` or breakable block
+   |
+help: use `break` on its own without a value inside this `while` loop
+   |
+LL |             break 'while_let_loop;
+   |             ~~~~~~~~~~~~~~~~~~~~~
+
+error[E0571]: `break` with value from a `for` loop
+  --> $DIR/loop-break-value.rs:56:9
+   |
+LL |     for _ in &[1,2,3] {
+   |     ----------------- you can't `break` with a value in a `for` loop
+LL |         break ();
+   |         ^^^^^^^^ can only break with a value inside `loop` or breakable block
+   |
+help: use `break` on its own without a value inside this `for` loop
+   |
+LL |         break;
+   |         ~~~~~
+
+error[E0571]: `break` with value from a `for` loop
+  --> $DIR/loop-break-value.rs:57:9
+   |
+LL |     for _ in &[1,2,3] {
+   |     ----------------- you can't `break` with a value in a `for` loop
+LL |         break ();
+LL |         break [()];
+   |         ^^^^^^^^^^ can only break with a value inside `loop` or breakable block
+   |
+help: use `break` on its own without a value inside this `for` loop
+   |
+LL |         break;
+   |         ~~~~~
+
+error[E0571]: `break` with value from a `for` loop
+  --> $DIR/loop-break-value.rs:64:13
+   |
+LL |     'for_loop: for _ in &[1,2,3] {
+   |     ---------------------------- you can't `break` with a value in a `for` loop
+...
+LL |             break 'for_loop Some(17);
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^ can only break with a value inside `loop` or breakable block
+   |
+help: use `break` on its own without a value inside this `for` loop
+   |
+LL |             break 'for_loop;
+   |             ~~~~~~~~~~~~~~~
+
+error[E0308]: mismatched types
+  --> $DIR/loop-break-value.rs:4:31
+   |
+LL |     let val: ! = loop { break break; };
+   |                               ^^^^^ expected `!`, found `()`
+   |
+   = note:   expected type `!`
+           found unit type `()`
+
+error[E0308]: mismatched types
+  --> $DIR/loop-break-value.rs:11:19
+   |
+LL |             break 123;
+   |                   ^^^ expected `&str`, found integer
+
+error[E0308]: mismatched types
+  --> $DIR/loop-break-value.rs:16:15
+   |
+LL |         break "asdf";
+   |               ^^^^^^ expected `i32`, found `&str`
+
+error[E0308]: mismatched types
+  --> $DIR/loop-break-value.rs:21:31
+   |
+LL |             break 'outer_loop "nope";
+   |                               ^^^^^^ expected `i32`, found `&str`
+
+error[E0308]: mismatched types
+  --> $DIR/loop-break-value.rs:73:26
+   |
+LL |                 break 'c 123;
+   |                          ^^^ expected `()`, found integer
+
+error[E0308]: mismatched types
+  --> $DIR/loop-break-value.rs:80:15
+   |
+LL |         break (break, break);
+   |               ^^^^^^^^^^^^^^ expected `()`, found tuple
+   |
+   = note: expected unit type `()`
+                  found tuple `(!, !)`
+
+error[E0308]: mismatched types
+  --> $DIR/loop-break-value.rs:85:15
+   |
+LL |         break 2;
+   |               ^ expected `()`, found integer
+
+error[E0308]: mismatched types
+  --> $DIR/loop-break-value.rs:90:9
+   |
+LL |         break;
+   |         ^^^^^
+   |         |
+   |         expected integer, found `()`
+   |         help: give it a value of the expected type: `break value`
+
+error: aborting due to 17 previous errors; 1 warning emitted
+
+Some errors have detailed explanations: E0308, E0425, E0571.
+For more information about an error, try `rustc --explain E0308`.