//@ build-pass //@ compile-flags: -Zvalidate-mir #![allow(incomplete_features)] #![feature(loop_match)] #![crate_type = "lib"] // Test that a #[loop_match] without an explicit break from the loop generates valid MIR. fn break_to_block_unit() -> u8 { let mut state = 0; #[loop_match] loop { state = 'blk: { match state { _ => 'b: { break 'b 2; } } } } } fn break_to_block_value() -> u8 { let mut state = 0u8; #[loop_match] 'a: loop { state = 'blk: { match state { _ => break 'blk state, } } } } fn infinite_a(mut state: u8) { #[loop_match] loop { state = 'blk: { match state { a => a, } } } }