- // MIR for `f` before CopyProp + // MIR for `f` after CopyProp fn f(_1: Foo) -> bool { let mut _0: bool; // return place in scope 0 at $DIR/move_projection.rs:+0:17: +0:21 let mut _2: Foo; // in scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL let mut _3: u8; // in scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL bb0: { - _2 = _1; // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL - _3 = move (_2.0: u8); // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL - _0 = opaque::(move _1) -> bb1; // scope 0 at $DIR/move_projection.rs:+6:13: +6:44 + _3 = (_1.0: u8); // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL + _0 = opaque::(_1) -> bb1; // scope 0 at $DIR/move_projection.rs:+6:13: +6:44 // mir::Constant // + span: $DIR/move_projection.rs:19:28: 19:34 // + literal: Const { ty: fn(Foo) -> bool {opaque::}, val: Value() } } bb1: { _0 = opaque::(move _3) -> bb2; // scope 0 at $DIR/move_projection.rs:+9:13: +9:44 // mir::Constant // + span: $DIR/move_projection.rs:22:28: 22:34 // + literal: Const { ty: fn(u8) -> bool {opaque::}, val: Value() } } bb2: { return; // scope 0 at $DIR/move_projection.rs:+12:13: +12:21 } }