error[E0308]: mismatched types --> $DIR/invalid.rs:120:21 | LL | break 'blk; | ^^^^^^^^^^ expected `State`, found `()` | help: give the `break` a value of the expected type | LL | break 'blk /* value */; | +++++++++++ error[E0695]: unlabeled `break` inside of a labeled block --> $DIR/invalid.rs:154:25 | LL | break State::A; | ^^^^^^^^^^^^^^ `break` statements that would diverge to or through a labeled block need to bear a label error: invalid update of the `#[loop_match]` state --> $DIR/invalid.rs:18:9 | LL | fake = 'blk: { | ^^^^ LL | LL | match state { | ----- the assignment must update this variable error: invalid match on `#[loop_match]` state --> $DIR/invalid.rs:32:19 | LL | match State::A { | ^^^^^^^^ | = note: a local variable must be the scrutinee within a `#[loop_match]` error: statements are not allowed in this position within a `#[loop_match]` --> $DIR/invalid.rs:44:9 | LL | 1; | ^^ error: statements are not allowed in this position within a `#[loop_match]` --> $DIR/invalid.rs:59:13 | LL | 1; | ^^ error: this expression must be a single `match` wrapped in a labeled block --> $DIR/invalid.rs:72:17 | LL | state = State::B | ^^^^^^^^ error: this expression must be a single `match` wrapped in a labeled block --> $DIR/invalid.rs:82:13 | LL | State::B | ^^^^^^^^ error: this expression must be a single `match` wrapped in a labeled block --> $DIR/invalid.rs:92:17 | LL | state = 'blk: { | _________________^ LL | | LL | | } | |_________^ error: expected a single assignment expression --> $DIR/invalid.rs:101:9 | LL | () | ^^ error: expected a single assignment expression --> $DIR/invalid.rs:107:10 | LL | loop { | __________^ LL | | LL | | } | |_____^ error: a `#[const_continue]` must break to a label with a value --> $DIR/invalid.rs:137:21 | LL | break 'blk; | ^^^^^^^^^^ error: a `#[const_continue]` must break to a label with a value --> $DIR/invalid.rs:154:25 | LL | break State::A; | ^^^^^^^^^^^^^^ error: match arms that are part of a `#[loop_match]` cannot have guards --> $DIR/invalid.rs:174:29 | LL | State::B if cond => break 'a, | ^^^^ error[E0004]: non-exhaustive patterns: `State::B` and `State::C` not covered --> $DIR/invalid.rs:187:19 | LL | match state { | ^^^^^ patterns `State::B` and `State::C` not covered | note: `State` defined here --> $DIR/invalid.rs:7:6 | LL | enum State { | ^^^^^ LL | A, LL | B, | - not covered LL | C, | - not covered = note: the matched value is of type `State` help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms | LL ~ State::A => State::B, LL ~ State::B | State::C => todo!(), | error[E0579]: lower range bound must be less than upper --> $DIR/invalid.rs:204:17 | LL | 4.0..3.0 => { | ^^^^^^^^ error: aborting due to 16 previous errors Some errors have detailed explanations: E0004, E0308, E0579, E0695. For more information about an error, try `rustc --explain E0004`.