// EMIT_MIR_FOR_EACH_PANIC_STRATEGY //@ test-mir-pass: DataflowConstProp //@ compile-flags: -Zmir-enable-passes=+InstSimplify-after-simplifycfg // EMIT_MIR_FOR_EACH_BIT_WIDTH // EMIT_MIR slice_len.main.DataflowConstProp.diff // CHECK-LABEL: fn main( fn main() { // CHECK: debug local => [[local:_.*]]; // CHECK: debug constant => [[constant:_.*]]; // CHECK-NOT: {{_.*}} = Len( // CHECK-NOT: {{_.*}} = Lt( // CHECK-NOT: assert(move _ // CHECK: {{_.*}} = const 3_usize; // CHECK: {{_.*}} = const true; // CHECK: assert(const true, // CHECK: [[local]] = copy (*{{_.*}})[1 of 2]; let local = (&[1u32, 2, 3] as &[u32])[1]; // CHECK-NOT: {{_.*}} = Len( // CHECK-NOT: {{_.*}} = Lt( // CHECK-NOT: assert(move _ const SLICE: &[u32] = &[1, 2, 3]; // CHECK: {{_.*}} = const 3_usize; // CHECK: {{_.*}} = const true; // CHECK: assert(const true, // CHECK-NOT: [[constant]] = {{copy|move}} (*{{_.*}})[_ // CHECK: [[constant]] = copy (*{{_.*}})[1 of 2]; let constant = SLICE[1]; }