diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/issues/issue-26468.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-26468.rs b/src/test/ui/issues/issue-26468.rs new file mode 100644 index 000000000..71cc90e8b --- /dev/null +++ b/src/test/ui/issues/issue-26468.rs @@ -0,0 +1,29 @@ +// run-pass +#![allow(dead_code)] + +enum FooMode { + Check = 0x1001, +} + +enum BarMode { + Check = 0x2001, +} + +enum Mode { + Foo(FooMode), + Bar(BarMode), +} + +#[inline(never)] +fn broken(mode: &Mode) -> u32 { + for _ in 0..1 { + if let Mode::Foo(FooMode::Check) = *mode { return 17 } + if let Mode::Bar(BarMode::Check) = *mode { return 19 } + } + return 42; +} + +fn main() { + let mode = Mode::Bar(BarMode::Check); + assert_eq!(broken(&mode), 19); +} |