| #![allow(incomplete_features)] |
| #![feature(loop_match)] |
| |
| #[derive(Clone, Copy)] |
| enum State { |
| A, |
| B, |
| } |
| |
| fn main() { |
| let mut state = State::A; |
| |
| #[loop_match] |
| loop { |
| state = 'blk: { |
| match state { |
| State::A => { |
| #[const_continue] |
| break 'blk State::B; |
| } |
| State::B => { |
| return; |
| } |
| } |
| } |
| } |
| |
| || { |
| #[loop_match] |
| loop { |
| state = 'blk: { |
| match state { |
| //~^ ERROR invalid match on `#[loop_match]` state |
| State::A => { |
| #[const_continue] |
| break 'blk State::B; |
| } |
| State::B => { |
| return; |
| } |
| } |
| } |
| } |
| }; |
| |
| || { |
| let mut state = state; |
| #[loop_match] |
| loop { |
| state = 'blk: { |
| match state { |
| State::A => { |
| #[const_continue] |
| break 'blk State::B; |
| } |
| State::B => { |
| return; |
| } |
| } |
| } |
| } |
| }; |
| |
| move || { |
| #[loop_match] |
| loop { |
| state = 'blk: { |
| match state { |
| //~^ ERROR invalid match on `#[loop_match]` state |
| State::A => { |
| #[const_continue] |
| break 'blk State::B; |
| } |
| State::B => { |
| return; |
| } |
| } |
| } |
| } |
| }; |
| } |