| // Test that a `#[const_continue]` that breaks on a polymorphic constant produces an error. | |
| // A polymorphic constant does not have a concrete value at MIR building time, and therefore the | |
| // `#[loop_match]~ desugaring can't handle such values. | |
| #![allow(incomplete_features)] | |
| #![feature(loop_match)] | |
| #![crate_type = "lib"] | |
| trait Foo { | |
| const TARGET: u8; | |
| fn test_u8(mut state: u8) -> &'static str { | |
| #[loop_match] | |
| loop { | |
| state = 'blk: { | |
| match state { | |
| 0 => { | |
| #[const_continue] | |
| break 'blk Self::TARGET; | |
| //~^ ERROR could not determine the target branch for this `#[const_continue]` | |
| } | |
| 1 => return "bar", | |
| 2 => return "baz", | |
| _ => unreachable!(), | |
| } | |
| } | |
| } | |
| } | |
| } |