// MIR for `bar` after Inline fn bar() -> bool { let mut _0: bool; // return place in scope 0 at $DIR/inline-retag.rs:10:13: 10:17 let _1: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo}; // in scope 0 at $DIR/inline-retag.rs:11:9: 11:10 let mut _2: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo}; // in scope 0 at $DIR/inline-retag.rs:12:5: 12:6 let mut _3: &i32; // in scope 0 at $DIR/inline-retag.rs:12:7: 12:9 let _4: &i32; // in scope 0 at $DIR/inline-retag.rs:12:7: 12:9 let _5: i32; // in scope 0 at $DIR/inline-retag.rs:12:8: 12:9 let mut _6: &i32; // in scope 0 at $DIR/inline-retag.rs:12:11: 12:14 let _7: &i32; // in scope 0 at $DIR/inline-retag.rs:12:11: 12:14 let _8: i32; // in scope 0 at $DIR/inline-retag.rs:12:12: 12:14 scope 1 { debug f => _1; // in scope 1 at $DIR/inline-retag.rs:11:9: 11:10 let mut _9: &i32; // in scope 1 at $DIR/inline-retag.rs:12:11: 12:14 let mut _10: &i32; // in scope 1 at $DIR/inline-retag.rs:12:7: 12:9 scope 2 (inlined foo) { // at $DIR/inline-retag.rs:12:5: 12:15 debug x => _3; // in scope 2 at $DIR/inline-retag.rs:12:5: 12:15 debug y => _6; // in scope 2 at $DIR/inline-retag.rs:12:5: 12:15 let mut _11: i32; // in scope 2 at $DIR/inline-retag.rs:12:5: 12:15 let mut _12: i32; // in scope 2 at $DIR/inline-retag.rs:12:5: 12:15 } } bb0: { StorageLive(_1); // scope 0 at $DIR/inline-retag.rs:11:9: 11:10 _1 = foo; // scope 0 at $DIR/inline-retag.rs:11:13: 11:16 // mir::Constant // + span: $DIR/inline-retag.rs:11:13: 11:16 // + literal: Const { ty: for<'r, 's> fn(&'r i32, &'s i32) -> bool {foo}, val: Value(Scalar()) } StorageLive(_2); // scope 1 at $DIR/inline-retag.rs:12:5: 12:6 _2 = _1; // scope 1 at $DIR/inline-retag.rs:12:5: 12:6 StorageLive(_3); // scope 1 at $DIR/inline-retag.rs:12:7: 12:9 StorageLive(_4); // scope 1 at $DIR/inline-retag.rs:12:7: 12:9 _10 = const bar::promoted[1]; // scope 1 at $DIR/inline-retag.rs:12:7: 12:9 // ty::Const // + ty: &i32 // + val: Unevaluated(bar, [], Some(promoted[1])) // mir::Constant // + span: $DIR/inline-retag.rs:12:7: 12:9 // + literal: Const { ty: &i32, val: Unevaluated(Unevaluated { def: WithOptConstParam { did: DefId(0:4 ~ inline_retag[HASH]::bar), const_param_did: None }, substs_: Some([]), promoted: Some(promoted[1]) }) } Retag(_10); // scope 1 at $DIR/inline-retag.rs:12:7: 12:9 _4 = &(*_10); // scope 1 at $DIR/inline-retag.rs:12:7: 12:9 Retag(_4); // scope 1 at $DIR/inline-retag.rs:12:7: 12:9 _3 = &(*_4); // scope 1 at $DIR/inline-retag.rs:12:7: 12:9 Retag(_3); // scope 1 at $DIR/inline-retag.rs:12:7: 12:9 StorageLive(_6); // scope 1 at $DIR/inline-retag.rs:12:11: 12:14 StorageLive(_7); // scope 1 at $DIR/inline-retag.rs:12:11: 12:14 _9 = const bar::promoted[0]; // scope 1 at $DIR/inline-retag.rs:12:11: 12:14 // ty::Const // + ty: &i32 // + val: Unevaluated(bar, [], Some(promoted[0])) // mir::Constant // + span: $DIR/inline-retag.rs:12:11: 12:14 // + literal: Const { ty: &i32, val: Unevaluated(Unevaluated { def: WithOptConstParam { did: DefId(0:4 ~ inline_retag[HASH]::bar), const_param_did: None }, substs_: Some([]), promoted: Some(promoted[0]) }) } Retag(_9); // scope 1 at $DIR/inline-retag.rs:12:11: 12:14 _7 = &(*_9); // scope 1 at $DIR/inline-retag.rs:12:11: 12:14 Retag(_7); // scope 1 at $DIR/inline-retag.rs:12:11: 12:14 _6 = &(*_7); // scope 1 at $DIR/inline-retag.rs:12:11: 12:14 Retag(_6); // scope 1 at $DIR/inline-retag.rs:12:11: 12:14 Retag(_3); // scope 2 at $DIR/inline-retag.rs:12:5: 12:15 Retag(_6); // scope 2 at $DIR/inline-retag.rs:12:5: 12:15 StorageLive(_11); // scope 2 at $DIR/inline-retag.rs:12:5: 12:15 _11 = (*_3); // scope 2 at $DIR/inline-retag.rs:12:5: 12:15 StorageLive(_12); // scope 2 at $DIR/inline-retag.rs:12:5: 12:15 _12 = (*_6); // scope 2 at $DIR/inline-retag.rs:12:5: 12:15 _0 = Eq(move _11, move _12); // scope 2 at $DIR/inline-retag.rs:12:5: 12:15 StorageDead(_12); // scope 2 at $DIR/inline-retag.rs:12:5: 12:15 StorageDead(_11); // scope 2 at $DIR/inline-retag.rs:12:5: 12:15 StorageDead(_6); // scope 1 at $DIR/inline-retag.rs:12:14: 12:15 StorageDead(_3); // scope 1 at $DIR/inline-retag.rs:12:14: 12:15 StorageDead(_2); // scope 1 at $DIR/inline-retag.rs:12:14: 12:15 StorageDead(_1); // scope 0 at $DIR/inline-retag.rs:13:1: 13:2 StorageDead(_7); // scope 0 at $DIR/inline-retag.rs:13:1: 13:2 StorageDead(_4); // scope 0 at $DIR/inline-retag.rs:13:1: 13:2 return; // scope 0 at $DIR/inline-retag.rs:13:2: 13:2 } }