Auto merge of #103904 - JakobDegen:mir-opt-dash, r=oli-obk

Ban dashes in miropt test file names

Dashes in miropt test file names are annoying - specifically, they cause the test files to not be sorted next to their outputs, which makes it very difficult to tell what goes with what. This PR changes all files to use underscores and adds a blessable tidy check that enforces this.

r? `@jyn514`

This PR is obviously going to bitrot very quickly. Because of this, I'm going to wait at least 48 hours and until review comes back to allow people from `@rust-lang/wg-mir-opt` or elsewhere to lodge complaints if there are any. If not, I'll rebase the branch on Friday afternoon PST and ask that it be `r+`'d with `p=1` at that time.
This commit is contained in:
bors 2022-11-03 09:24:28 +00:00
commit 160b194295
198 changed files with 3299 additions and 3262 deletions

View file

@ -1052,6 +1052,9 @@ impl Step for Tidy {
if builder.is_verbose() {
cmd.arg("--verbose");
}
if builder.config.cmd.bless() {
cmd.arg("--bless");
}
builder.info("tidy check");
try_run(builder, &mut cmd);

View file

@ -1,115 +1,115 @@
// MIR for `address_of_reborrow` after SimplifyCfg-initial
| User Type Annotations
| 0: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:7:5: 7:18, inferred_ty: *const [i32; 10]
| 1: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:9:5: 9:25, inferred_ty: *const dyn std::marker::Send
| 2: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:13:12: 13:20, inferred_ty: *const [i32; 10]
| 3: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:13:12: 13:20, inferred_ty: *const [i32; 10]
| 4: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address-of.rs:14:12: 14:28, inferred_ty: *const [i32; 10]
| 5: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address-of.rs:14:12: 14:28, inferred_ty: *const [i32; 10]
| 6: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:15:12: 15:27, inferred_ty: *const dyn std::marker::Send
| 7: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:15:12: 15:27, inferred_ty: *const dyn std::marker::Send
| 8: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address-of.rs:16:12: 16:24, inferred_ty: *const [i32]
| 9: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address-of.rs:16:12: 16:24, inferred_ty: *const [i32]
| 10: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:18:5: 18:18, inferred_ty: *const [i32; 10]
| 11: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:20:5: 20:25, inferred_ty: *const dyn std::marker::Send
| 12: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:23:12: 23:20, inferred_ty: *const [i32; 10]
| 13: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:23:12: 23:20, inferred_ty: *const [i32; 10]
| 14: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address-of.rs:24:12: 24:28, inferred_ty: *const [i32; 10]
| 15: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address-of.rs:24:12: 24:28, inferred_ty: *const [i32; 10]
| 16: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:25:12: 25:27, inferred_ty: *const dyn std::marker::Send
| 17: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:25:12: 25:27, inferred_ty: *const dyn std::marker::Send
| 18: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address-of.rs:26:12: 26:24, inferred_ty: *const [i32]
| 19: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address-of.rs:26:12: 26:24, inferred_ty: *const [i32]
| 20: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address-of.rs:28:5: 28:16, inferred_ty: *mut [i32; 10]
| 21: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address-of.rs:30:5: 30:23, inferred_ty: *mut dyn std::marker::Send
| 22: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address-of.rs:33:12: 33:18, inferred_ty: *mut [i32; 10]
| 23: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address-of.rs:33:12: 33:18, inferred_ty: *mut [i32; 10]
| 24: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32; 10]) }, span: $DIR/address-of.rs:34:12: 34:26, inferred_ty: *mut [i32; 10]
| 25: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32; 10]) }, span: $DIR/address-of.rs:34:12: 34:26, inferred_ty: *mut [i32; 10]
| 26: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address-of.rs:35:12: 35:25, inferred_ty: *mut dyn std::marker::Send
| 27: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address-of.rs:35:12: 35:25, inferred_ty: *mut dyn std::marker::Send
| 28: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32]) }, span: $DIR/address-of.rs:36:12: 36:22, inferred_ty: *mut [i32]
| 29: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32]) }, span: $DIR/address-of.rs:36:12: 36:22, inferred_ty: *mut [i32]
| 0: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:7:5: 7:18, inferred_ty: *const [i32; 10]
| 1: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:9:5: 9:25, inferred_ty: *const dyn std::marker::Send
| 2: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:13:12: 13:20, inferred_ty: *const [i32; 10]
| 3: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:13:12: 13:20, inferred_ty: *const [i32; 10]
| 4: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address_of.rs:14:12: 14:28, inferred_ty: *const [i32; 10]
| 5: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address_of.rs:14:12: 14:28, inferred_ty: *const [i32; 10]
| 6: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:15:12: 15:27, inferred_ty: *const dyn std::marker::Send
| 7: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:15:12: 15:27, inferred_ty: *const dyn std::marker::Send
| 8: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address_of.rs:16:12: 16:24, inferred_ty: *const [i32]
| 9: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address_of.rs:16:12: 16:24, inferred_ty: *const [i32]
| 10: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:18:5: 18:18, inferred_ty: *const [i32; 10]
| 11: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:20:5: 20:25, inferred_ty: *const dyn std::marker::Send
| 12: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:23:12: 23:20, inferred_ty: *const [i32; 10]
| 13: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address_of.rs:23:12: 23:20, inferred_ty: *const [i32; 10]
| 14: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address_of.rs:24:12: 24:28, inferred_ty: *const [i32; 10]
| 15: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address_of.rs:24:12: 24:28, inferred_ty: *const [i32; 10]
| 16: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:25:12: 25:27, inferred_ty: *const dyn std::marker::Send
| 17: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address_of.rs:25:12: 25:27, inferred_ty: *const dyn std::marker::Send
| 18: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address_of.rs:26:12: 26:24, inferred_ty: *const [i32]
| 19: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address_of.rs:26:12: 26:24, inferred_ty: *const [i32]
| 20: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address_of.rs:28:5: 28:16, inferred_ty: *mut [i32; 10]
| 21: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address_of.rs:30:5: 30:23, inferred_ty: *mut dyn std::marker::Send
| 22: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address_of.rs:33:12: 33:18, inferred_ty: *mut [i32; 10]
| 23: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address_of.rs:33:12: 33:18, inferred_ty: *mut [i32; 10]
| 24: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32; 10]) }, span: $DIR/address_of.rs:34:12: 34:26, inferred_ty: *mut [i32; 10]
| 25: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32; 10]) }, span: $DIR/address_of.rs:34:12: 34:26, inferred_ty: *mut [i32; 10]
| 26: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address_of.rs:35:12: 35:25, inferred_ty: *mut dyn std::marker::Send
| 27: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address_of.rs:35:12: 35:25, inferred_ty: *mut dyn std::marker::Send
| 28: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32]) }, span: $DIR/address_of.rs:36:12: 36:22, inferred_ty: *mut [i32]
| 29: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32]) }, span: $DIR/address_of.rs:36:12: 36:22, inferred_ty: *mut [i32]
|
fn address_of_reborrow() -> () {
let mut _0: (); // return place in scope 0 at $DIR/address-of.rs:+0:26: +0:26
let _1: &[i32; 10]; // in scope 0 at $DIR/address-of.rs:+1:9: +1:10
let _2: [i32; 10]; // in scope 0 at $DIR/address-of.rs:+1:14: +1:21
let mut _4: [i32; 10]; // in scope 0 at $DIR/address-of.rs:+2:22: +2:29
let _5: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+4:5: +4:18
let mut _6: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+4:5: +4:18
let _7: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+5:5: +5:26
let _8: *const dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:+6:5: +6:25
let mut _9: *const dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:+6:5: +6:25
let mut _10: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+6:5: +6:6
let _11: *const [i32]; // in scope 0 at $DIR/address-of.rs:+7:5: +7:22
let mut _12: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+7:5: +7:6
let _13: *const i32; // in scope 0 at $DIR/address-of.rs:+8:5: +8:20
let mut _14: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+8:5: +8:6
let mut _18: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+12:30: +12:31
let mut _20: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+13:27: +13:28
let _21: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+15:5: +15:18
let mut _22: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+15:5: +15:18
let _23: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+16:5: +16:26
let _24: *const dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:+17:5: +17:25
let mut _25: *const dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:+17:5: +17:25
let mut _26: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+17:5: +17:6
let _27: *const [i32]; // in scope 0 at $DIR/address-of.rs:+18:5: +18:22
let mut _28: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+18:5: +18:6
let mut _32: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+22:30: +22:31
let mut _34: *const [i32; 10]; // in scope 0 at $DIR/address-of.rs:+23:27: +23:28
let _35: *mut [i32; 10]; // in scope 0 at $DIR/address-of.rs:+25:5: +25:16
let mut _36: *mut [i32; 10]; // in scope 0 at $DIR/address-of.rs:+25:5: +25:16
let _37: *mut [i32; 10]; // in scope 0 at $DIR/address-of.rs:+26:5: +26:24
let _38: *mut dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:+27:5: +27:23
let mut _39: *mut dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:+27:5: +27:23
let mut _40: *mut [i32; 10]; // in scope 0 at $DIR/address-of.rs:+27:5: +27:6
let _41: *mut [i32]; // in scope 0 at $DIR/address-of.rs:+28:5: +28:20
let mut _42: *mut [i32; 10]; // in scope 0 at $DIR/address-of.rs:+28:5: +28:6
let mut _46: *mut [i32; 10]; // in scope 0 at $DIR/address-of.rs:+32:28: +32:29
let mut _48: *mut [i32; 10]; // in scope 0 at $DIR/address-of.rs:+33:25: +33:26
let mut _0: (); // return place in scope 0 at $DIR/address_of.rs:+0:26: +0:26
let _1: &[i32; 10]; // in scope 0 at $DIR/address_of.rs:+1:9: +1:10
let _2: [i32; 10]; // in scope 0 at $DIR/address_of.rs:+1:14: +1:21
let mut _4: [i32; 10]; // in scope 0 at $DIR/address_of.rs:+2:22: +2:29
let _5: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+4:5: +4:18
let mut _6: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+4:5: +4:18
let _7: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+5:5: +5:26
let _8: *const dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+6:5: +6:25
let mut _9: *const dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+6:5: +6:25
let mut _10: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+6:5: +6:6
let _11: *const [i32]; // in scope 0 at $DIR/address_of.rs:+7:5: +7:22
let mut _12: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+7:5: +7:6
let _13: *const i32; // in scope 0 at $DIR/address_of.rs:+8:5: +8:20
let mut _14: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+8:5: +8:6
let mut _18: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+12:30: +12:31
let mut _20: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+13:27: +13:28
let _21: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+15:5: +15:18
let mut _22: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+15:5: +15:18
let _23: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+16:5: +16:26
let _24: *const dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+17:5: +17:25
let mut _25: *const dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+17:5: +17:25
let mut _26: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+17:5: +17:6
let _27: *const [i32]; // in scope 0 at $DIR/address_of.rs:+18:5: +18:22
let mut _28: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+18:5: +18:6
let mut _32: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+22:30: +22:31
let mut _34: *const [i32; 10]; // in scope 0 at $DIR/address_of.rs:+23:27: +23:28
let _35: *mut [i32; 10]; // in scope 0 at $DIR/address_of.rs:+25:5: +25:16
let mut _36: *mut [i32; 10]; // in scope 0 at $DIR/address_of.rs:+25:5: +25:16
let _37: *mut [i32; 10]; // in scope 0 at $DIR/address_of.rs:+26:5: +26:24
let _38: *mut dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+27:5: +27:23
let mut _39: *mut dyn std::marker::Send; // in scope 0 at $DIR/address_of.rs:+27:5: +27:23
let mut _40: *mut [i32; 10]; // in scope 0 at $DIR/address_of.rs:+27:5: +27:6
let _41: *mut [i32]; // in scope 0 at $DIR/address_of.rs:+28:5: +28:20
let mut _42: *mut [i32; 10]; // in scope 0 at $DIR/address_of.rs:+28:5: +28:6
let mut _46: *mut [i32; 10]; // in scope 0 at $DIR/address_of.rs:+32:28: +32:29
let mut _48: *mut [i32; 10]; // in scope 0 at $DIR/address_of.rs:+33:25: +33:26
scope 1 {
debug y => _1; // in scope 1 at $DIR/address-of.rs:+1:9: +1:10
let mut _3: &mut [i32; 10]; // in scope 1 at $DIR/address-of.rs:+2:9: +2:14
debug y => _1; // in scope 1 at $DIR/address_of.rs:+1:9: +1:10
let mut _3: &mut [i32; 10]; // in scope 1 at $DIR/address_of.rs:+2:9: +2:14
scope 2 {
debug z => _3; // in scope 2 at $DIR/address-of.rs:+2:9: +2:14
let _15: *const [i32; 10] as UserTypeProjection { base: UserType(2), projs: [] }; // in scope 2 at $DIR/address-of.rs:+10:9: +10:10
debug z => _3; // in scope 2 at $DIR/address_of.rs:+2:9: +2:14
let _15: *const [i32; 10] as UserTypeProjection { base: UserType(2), projs: [] }; // in scope 2 at $DIR/address_of.rs:+10:9: +10:10
scope 3 {
debug p => _15; // in scope 3 at $DIR/address-of.rs:+10:9: +10:10
let _16: *const [i32; 10] as UserTypeProjection { base: UserType(4), projs: [] }; // in scope 3 at $DIR/address-of.rs:+11:9: +11:10
debug p => _15; // in scope 3 at $DIR/address_of.rs:+10:9: +10:10
let _16: *const [i32; 10] as UserTypeProjection { base: UserType(4), projs: [] }; // in scope 3 at $DIR/address_of.rs:+11:9: +11:10
scope 4 {
debug p => _16; // in scope 4 at $DIR/address-of.rs:+11:9: +11:10
let _17: *const dyn std::marker::Send as UserTypeProjection { base: UserType(6), projs: [] }; // in scope 4 at $DIR/address-of.rs:+12:9: +12:10
debug p => _16; // in scope 4 at $DIR/address_of.rs:+11:9: +11:10
let _17: *const dyn std::marker::Send as UserTypeProjection { base: UserType(6), projs: [] }; // in scope 4 at $DIR/address_of.rs:+12:9: +12:10
scope 5 {
debug p => _17; // in scope 5 at $DIR/address-of.rs:+12:9: +12:10
let _19: *const [i32] as UserTypeProjection { base: UserType(8), projs: [] }; // in scope 5 at $DIR/address-of.rs:+13:9: +13:10
debug p => _17; // in scope 5 at $DIR/address_of.rs:+12:9: +12:10
let _19: *const [i32] as UserTypeProjection { base: UserType(8), projs: [] }; // in scope 5 at $DIR/address_of.rs:+13:9: +13:10
scope 6 {
debug p => _19; // in scope 6 at $DIR/address-of.rs:+13:9: +13:10
let _29: *const [i32; 10] as UserTypeProjection { base: UserType(12), projs: [] }; // in scope 6 at $DIR/address-of.rs:+20:9: +20:10
debug p => _19; // in scope 6 at $DIR/address_of.rs:+13:9: +13:10
let _29: *const [i32; 10] as UserTypeProjection { base: UserType(12), projs: [] }; // in scope 6 at $DIR/address_of.rs:+20:9: +20:10
scope 7 {
debug p => _29; // in scope 7 at $DIR/address-of.rs:+20:9: +20:10
let _30: *const [i32; 10] as UserTypeProjection { base: UserType(14), projs: [] }; // in scope 7 at $DIR/address-of.rs:+21:9: +21:10
debug p => _29; // in scope 7 at $DIR/address_of.rs:+20:9: +20:10
let _30: *const [i32; 10] as UserTypeProjection { base: UserType(14), projs: [] }; // in scope 7 at $DIR/address_of.rs:+21:9: +21:10
scope 8 {
debug p => _30; // in scope 8 at $DIR/address-of.rs:+21:9: +21:10
let _31: *const dyn std::marker::Send as UserTypeProjection { base: UserType(16), projs: [] }; // in scope 8 at $DIR/address-of.rs:+22:9: +22:10
debug p => _30; // in scope 8 at $DIR/address_of.rs:+21:9: +21:10
let _31: *const dyn std::marker::Send as UserTypeProjection { base: UserType(16), projs: [] }; // in scope 8 at $DIR/address_of.rs:+22:9: +22:10
scope 9 {
debug p => _31; // in scope 9 at $DIR/address-of.rs:+22:9: +22:10
let _33: *const [i32] as UserTypeProjection { base: UserType(18), projs: [] }; // in scope 9 at $DIR/address-of.rs:+23:9: +23:10
debug p => _31; // in scope 9 at $DIR/address_of.rs:+22:9: +22:10
let _33: *const [i32] as UserTypeProjection { base: UserType(18), projs: [] }; // in scope 9 at $DIR/address_of.rs:+23:9: +23:10
scope 10 {
debug p => _33; // in scope 10 at $DIR/address-of.rs:+23:9: +23:10
let _43: *mut [i32; 10] as UserTypeProjection { base: UserType(22), projs: [] }; // in scope 10 at $DIR/address-of.rs:+30:9: +30:10
debug p => _33; // in scope 10 at $DIR/address_of.rs:+23:9: +23:10
let _43: *mut [i32; 10] as UserTypeProjection { base: UserType(22), projs: [] }; // in scope 10 at $DIR/address_of.rs:+30:9: +30:10
scope 11 {
debug p => _43; // in scope 11 at $DIR/address-of.rs:+30:9: +30:10
let _44: *mut [i32; 10] as UserTypeProjection { base: UserType(24), projs: [] }; // in scope 11 at $DIR/address-of.rs:+31:9: +31:10
debug p => _43; // in scope 11 at $DIR/address_of.rs:+30:9: +30:10
let _44: *mut [i32; 10] as UserTypeProjection { base: UserType(24), projs: [] }; // in scope 11 at $DIR/address_of.rs:+31:9: +31:10
scope 12 {
debug p => _44; // in scope 12 at $DIR/address-of.rs:+31:9: +31:10
let _45: *mut dyn std::marker::Send as UserTypeProjection { base: UserType(26), projs: [] }; // in scope 12 at $DIR/address-of.rs:+32:9: +32:10
debug p => _44; // in scope 12 at $DIR/address_of.rs:+31:9: +31:10
let _45: *mut dyn std::marker::Send as UserTypeProjection { base: UserType(26), projs: [] }; // in scope 12 at $DIR/address_of.rs:+32:9: +32:10
scope 13 {
debug p => _45; // in scope 13 at $DIR/address-of.rs:+32:9: +32:10
let _47: *mut [i32] as UserTypeProjection { base: UserType(28), projs: [] }; // in scope 13 at $DIR/address-of.rs:+33:9: +33:10
debug p => _45; // in scope 13 at $DIR/address_of.rs:+32:9: +32:10
let _47: *mut [i32] as UserTypeProjection { base: UserType(28), projs: [] }; // in scope 13 at $DIR/address_of.rs:+33:9: +33:10
scope 14 {
debug p => _47; // in scope 14 at $DIR/address-of.rs:+33:9: +33:10
debug p => _47; // in scope 14 at $DIR/address_of.rs:+33:9: +33:10
}
}
}
@ -126,183 +126,183 @@ fn address_of_reborrow() -> () {
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/address-of.rs:+1:9: +1:10
StorageLive(_2); // scope 0 at $DIR/address-of.rs:+1:14: +1:21
_2 = [const 0_i32; 10]; // scope 0 at $DIR/address-of.rs:+1:14: +1:21
_1 = &_2; // scope 0 at $DIR/address-of.rs:+1:13: +1:21
FakeRead(ForLet(None), _1); // scope 0 at $DIR/address-of.rs:+1:9: +1:10
StorageLive(_3); // scope 1 at $DIR/address-of.rs:+2:9: +2:14
StorageLive(_4); // scope 1 at $DIR/address-of.rs:+2:22: +2:29
_4 = [const 0_i32; 10]; // scope 1 at $DIR/address-of.rs:+2:22: +2:29
_3 = &mut _4; // scope 1 at $DIR/address-of.rs:+2:17: +2:29
FakeRead(ForLet(None), _3); // scope 1 at $DIR/address-of.rs:+2:9: +2:14
StorageLive(_5); // scope 2 at $DIR/address-of.rs:+4:5: +4:18
StorageLive(_6); // scope 2 at $DIR/address-of.rs:+4:5: +4:18
_6 = &raw const (*_1); // scope 2 at $DIR/address-of.rs:+4:5: +4:6
AscribeUserType(_6, o, UserTypeProjection { base: UserType(0), projs: [] }); // scope 2 at $DIR/address-of.rs:+4:5: +4:18
_5 = _6; // scope 2 at $DIR/address-of.rs:+4:5: +4:18
StorageDead(_6); // scope 2 at $DIR/address-of.rs:+4:18: +4:19
StorageDead(_5); // scope 2 at $DIR/address-of.rs:+4:18: +4:19
StorageLive(_7); // scope 2 at $DIR/address-of.rs:+5:5: +5:26
_7 = &raw const (*_1); // scope 2 at $DIR/address-of.rs:+5:5: +5:6
StorageDead(_7); // scope 2 at $DIR/address-of.rs:+5:26: +5:27
StorageLive(_8); // scope 2 at $DIR/address-of.rs:+6:5: +6:25
StorageLive(_9); // scope 2 at $DIR/address-of.rs:+6:5: +6:25
StorageLive(_10); // scope 2 at $DIR/address-of.rs:+6:5: +6:6
_10 = &raw const (*_1); // scope 2 at $DIR/address-of.rs:+6:5: +6:6
_9 = move _10 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 2 at $DIR/address-of.rs:+6:5: +6:6
StorageDead(_10); // scope 2 at $DIR/address-of.rs:+6:5: +6:6
AscribeUserType(_9, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 2 at $DIR/address-of.rs:+6:5: +6:25
_8 = _9; // scope 2 at $DIR/address-of.rs:+6:5: +6:25
StorageDead(_9); // scope 2 at $DIR/address-of.rs:+6:25: +6:26
StorageDead(_8); // scope 2 at $DIR/address-of.rs:+6:25: +6:26
StorageLive(_11); // scope 2 at $DIR/address-of.rs:+7:5: +7:22
StorageLive(_12); // scope 2 at $DIR/address-of.rs:+7:5: +7:6
_12 = &raw const (*_1); // scope 2 at $DIR/address-of.rs:+7:5: +7:6
_11 = move _12 as *const [i32] (Pointer(Unsize)); // scope 2 at $DIR/address-of.rs:+7:5: +7:6
StorageDead(_12); // scope 2 at $DIR/address-of.rs:+7:5: +7:6
StorageDead(_11); // scope 2 at $DIR/address-of.rs:+7:22: +7:23
StorageLive(_13); // scope 2 at $DIR/address-of.rs:+8:5: +8:20
StorageLive(_14); // scope 2 at $DIR/address-of.rs:+8:5: +8:6
_14 = &raw const (*_1); // scope 2 at $DIR/address-of.rs:+8:5: +8:6
_13 = move _14 as *const i32 (Pointer(ArrayToPointer)); // scope 2 at $DIR/address-of.rs:+8:5: +8:20
StorageDead(_14); // scope 2 at $DIR/address-of.rs:+8:19: +8:20
StorageDead(_13); // scope 2 at $DIR/address-of.rs:+8:20: +8:21
StorageLive(_15); // scope 2 at $DIR/address-of.rs:+10:9: +10:10
_15 = &raw const (*_1); // scope 2 at $DIR/address-of.rs:+10:23: +10:24
FakeRead(ForLet(None), _15); // scope 2 at $DIR/address-of.rs:+10:9: +10:10
AscribeUserType(_15, o, UserTypeProjection { base: UserType(3), projs: [] }); // scope 2 at $DIR/address-of.rs:+10:12: +10:20
StorageLive(_16); // scope 3 at $DIR/address-of.rs:+11:9: +11:10
_16 = &raw const (*_1); // scope 3 at $DIR/address-of.rs:+11:31: +11:32
FakeRead(ForLet(None), _16); // scope 3 at $DIR/address-of.rs:+11:9: +11:10
AscribeUserType(_16, o, UserTypeProjection { base: UserType(5), projs: [] }); // scope 3 at $DIR/address-of.rs:+11:12: +11:28
StorageLive(_17); // scope 4 at $DIR/address-of.rs:+12:9: +12:10
StorageLive(_18); // scope 4 at $DIR/address-of.rs:+12:30: +12:31
_18 = &raw const (*_1); // scope 4 at $DIR/address-of.rs:+12:30: +12:31
_17 = move _18 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 4 at $DIR/address-of.rs:+12:30: +12:31
StorageDead(_18); // scope 4 at $DIR/address-of.rs:+12:30: +12:31
FakeRead(ForLet(None), _17); // scope 4 at $DIR/address-of.rs:+12:9: +12:10
AscribeUserType(_17, o, UserTypeProjection { base: UserType(7), projs: [] }); // scope 4 at $DIR/address-of.rs:+12:12: +12:27
StorageLive(_19); // scope 5 at $DIR/address-of.rs:+13:9: +13:10
StorageLive(_20); // scope 5 at $DIR/address-of.rs:+13:27: +13:28
_20 = &raw const (*_1); // scope 5 at $DIR/address-of.rs:+13:27: +13:28
_19 = move _20 as *const [i32] (Pointer(Unsize)); // scope 5 at $DIR/address-of.rs:+13:27: +13:28
StorageDead(_20); // scope 5 at $DIR/address-of.rs:+13:27: +13:28
FakeRead(ForLet(None), _19); // scope 5 at $DIR/address-of.rs:+13:9: +13:10
AscribeUserType(_19, o, UserTypeProjection { base: UserType(9), projs: [] }); // scope 5 at $DIR/address-of.rs:+13:12: +13:24
StorageLive(_21); // scope 6 at $DIR/address-of.rs:+15:5: +15:18
StorageLive(_22); // scope 6 at $DIR/address-of.rs:+15:5: +15:18
_22 = &raw const (*_3); // scope 6 at $DIR/address-of.rs:+15:5: +15:6
AscribeUserType(_22, o, UserTypeProjection { base: UserType(10), projs: [] }); // scope 6 at $DIR/address-of.rs:+15:5: +15:18
_21 = _22; // scope 6 at $DIR/address-of.rs:+15:5: +15:18
StorageDead(_22); // scope 6 at $DIR/address-of.rs:+15:18: +15:19
StorageDead(_21); // scope 6 at $DIR/address-of.rs:+15:18: +15:19
StorageLive(_23); // scope 6 at $DIR/address-of.rs:+16:5: +16:26
_23 = &raw const (*_3); // scope 6 at $DIR/address-of.rs:+16:5: +16:6
StorageDead(_23); // scope 6 at $DIR/address-of.rs:+16:26: +16:27
StorageLive(_24); // scope 6 at $DIR/address-of.rs:+17:5: +17:25
StorageLive(_25); // scope 6 at $DIR/address-of.rs:+17:5: +17:25
StorageLive(_26); // scope 6 at $DIR/address-of.rs:+17:5: +17:6
_26 = &raw const (*_3); // scope 6 at $DIR/address-of.rs:+17:5: +17:6
_25 = move _26 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 6 at $DIR/address-of.rs:+17:5: +17:6
StorageDead(_26); // scope 6 at $DIR/address-of.rs:+17:5: +17:6
AscribeUserType(_25, o, UserTypeProjection { base: UserType(11), projs: [] }); // scope 6 at $DIR/address-of.rs:+17:5: +17:25
_24 = _25; // scope 6 at $DIR/address-of.rs:+17:5: +17:25
StorageDead(_25); // scope 6 at $DIR/address-of.rs:+17:25: +17:26
StorageDead(_24); // scope 6 at $DIR/address-of.rs:+17:25: +17:26
StorageLive(_27); // scope 6 at $DIR/address-of.rs:+18:5: +18:22
StorageLive(_28); // scope 6 at $DIR/address-of.rs:+18:5: +18:6
_28 = &raw const (*_3); // scope 6 at $DIR/address-of.rs:+18:5: +18:6
_27 = move _28 as *const [i32] (Pointer(Unsize)); // scope 6 at $DIR/address-of.rs:+18:5: +18:6
StorageDead(_28); // scope 6 at $DIR/address-of.rs:+18:5: +18:6
StorageDead(_27); // scope 6 at $DIR/address-of.rs:+18:22: +18:23
StorageLive(_29); // scope 6 at $DIR/address-of.rs:+20:9: +20:10
_29 = &raw const (*_3); // scope 6 at $DIR/address-of.rs:+20:23: +20:24
FakeRead(ForLet(None), _29); // scope 6 at $DIR/address-of.rs:+20:9: +20:10
AscribeUserType(_29, o, UserTypeProjection { base: UserType(13), projs: [] }); // scope 6 at $DIR/address-of.rs:+20:12: +20:20
StorageLive(_30); // scope 7 at $DIR/address-of.rs:+21:9: +21:10
_30 = &raw const (*_3); // scope 7 at $DIR/address-of.rs:+21:31: +21:32
FakeRead(ForLet(None), _30); // scope 7 at $DIR/address-of.rs:+21:9: +21:10
AscribeUserType(_30, o, UserTypeProjection { base: UserType(15), projs: [] }); // scope 7 at $DIR/address-of.rs:+21:12: +21:28
StorageLive(_31); // scope 8 at $DIR/address-of.rs:+22:9: +22:10
StorageLive(_32); // scope 8 at $DIR/address-of.rs:+22:30: +22:31
_32 = &raw const (*_3); // scope 8 at $DIR/address-of.rs:+22:30: +22:31
_31 = move _32 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 8 at $DIR/address-of.rs:+22:30: +22:31
StorageDead(_32); // scope 8 at $DIR/address-of.rs:+22:30: +22:31
FakeRead(ForLet(None), _31); // scope 8 at $DIR/address-of.rs:+22:9: +22:10
AscribeUserType(_31, o, UserTypeProjection { base: UserType(17), projs: [] }); // scope 8 at $DIR/address-of.rs:+22:12: +22:27
StorageLive(_33); // scope 9 at $DIR/address-of.rs:+23:9: +23:10
StorageLive(_34); // scope 9 at $DIR/address-of.rs:+23:27: +23:28
_34 = &raw const (*_3); // scope 9 at $DIR/address-of.rs:+23:27: +23:28
_33 = move _34 as *const [i32] (Pointer(Unsize)); // scope 9 at $DIR/address-of.rs:+23:27: +23:28
StorageDead(_34); // scope 9 at $DIR/address-of.rs:+23:27: +23:28
FakeRead(ForLet(None), _33); // scope 9 at $DIR/address-of.rs:+23:9: +23:10
AscribeUserType(_33, o, UserTypeProjection { base: UserType(19), projs: [] }); // scope 9 at $DIR/address-of.rs:+23:12: +23:24
StorageLive(_35); // scope 10 at $DIR/address-of.rs:+25:5: +25:16
StorageLive(_36); // scope 10 at $DIR/address-of.rs:+25:5: +25:16
_36 = &raw mut (*_3); // scope 10 at $DIR/address-of.rs:+25:5: +25:6
AscribeUserType(_36, o, UserTypeProjection { base: UserType(20), projs: [] }); // scope 10 at $DIR/address-of.rs:+25:5: +25:16
_35 = _36; // scope 10 at $DIR/address-of.rs:+25:5: +25:16
StorageDead(_36); // scope 10 at $DIR/address-of.rs:+25:16: +25:17
StorageDead(_35); // scope 10 at $DIR/address-of.rs:+25:16: +25:17
StorageLive(_37); // scope 10 at $DIR/address-of.rs:+26:5: +26:24
_37 = &raw mut (*_3); // scope 10 at $DIR/address-of.rs:+26:5: +26:6
StorageDead(_37); // scope 10 at $DIR/address-of.rs:+26:24: +26:25
StorageLive(_38); // scope 10 at $DIR/address-of.rs:+27:5: +27:23
StorageLive(_39); // scope 10 at $DIR/address-of.rs:+27:5: +27:23
StorageLive(_40); // scope 10 at $DIR/address-of.rs:+27:5: +27:6
_40 = &raw mut (*_3); // scope 10 at $DIR/address-of.rs:+27:5: +27:6
_39 = move _40 as *mut dyn std::marker::Send (Pointer(Unsize)); // scope 10 at $DIR/address-of.rs:+27:5: +27:6
StorageDead(_40); // scope 10 at $DIR/address-of.rs:+27:5: +27:6
AscribeUserType(_39, o, UserTypeProjection { base: UserType(21), projs: [] }); // scope 10 at $DIR/address-of.rs:+27:5: +27:23
_38 = _39; // scope 10 at $DIR/address-of.rs:+27:5: +27:23
StorageDead(_39); // scope 10 at $DIR/address-of.rs:+27:23: +27:24
StorageDead(_38); // scope 10 at $DIR/address-of.rs:+27:23: +27:24
StorageLive(_41); // scope 10 at $DIR/address-of.rs:+28:5: +28:20
StorageLive(_42); // scope 10 at $DIR/address-of.rs:+28:5: +28:6
_42 = &raw mut (*_3); // scope 10 at $DIR/address-of.rs:+28:5: +28:6
_41 = move _42 as *mut [i32] (Pointer(Unsize)); // scope 10 at $DIR/address-of.rs:+28:5: +28:6
StorageDead(_42); // scope 10 at $DIR/address-of.rs:+28:5: +28:6
StorageDead(_41); // scope 10 at $DIR/address-of.rs:+28:20: +28:21
StorageLive(_43); // scope 10 at $DIR/address-of.rs:+30:9: +30:10
_43 = &raw mut (*_3); // scope 10 at $DIR/address-of.rs:+30:21: +30:22
FakeRead(ForLet(None), _43); // scope 10 at $DIR/address-of.rs:+30:9: +30:10
AscribeUserType(_43, o, UserTypeProjection { base: UserType(23), projs: [] }); // scope 10 at $DIR/address-of.rs:+30:12: +30:18
StorageLive(_44); // scope 11 at $DIR/address-of.rs:+31:9: +31:10
_44 = &raw mut (*_3); // scope 11 at $DIR/address-of.rs:+31:29: +31:30
FakeRead(ForLet(None), _44); // scope 11 at $DIR/address-of.rs:+31:9: +31:10
AscribeUserType(_44, o, UserTypeProjection { base: UserType(25), projs: [] }); // scope 11 at $DIR/address-of.rs:+31:12: +31:26
StorageLive(_45); // scope 12 at $DIR/address-of.rs:+32:9: +32:10
StorageLive(_46); // scope 12 at $DIR/address-of.rs:+32:28: +32:29
_46 = &raw mut (*_3); // scope 12 at $DIR/address-of.rs:+32:28: +32:29
_45 = move _46 as *mut dyn std::marker::Send (Pointer(Unsize)); // scope 12 at $DIR/address-of.rs:+32:28: +32:29
StorageDead(_46); // scope 12 at $DIR/address-of.rs:+32:28: +32:29
FakeRead(ForLet(None), _45); // scope 12 at $DIR/address-of.rs:+32:9: +32:10
AscribeUserType(_45, o, UserTypeProjection { base: UserType(27), projs: [] }); // scope 12 at $DIR/address-of.rs:+32:12: +32:25
StorageLive(_47); // scope 13 at $DIR/address-of.rs:+33:9: +33:10
StorageLive(_48); // scope 13 at $DIR/address-of.rs:+33:25: +33:26
_48 = &raw mut (*_3); // scope 13 at $DIR/address-of.rs:+33:25: +33:26
_47 = move _48 as *mut [i32] (Pointer(Unsize)); // scope 13 at $DIR/address-of.rs:+33:25: +33:26
StorageDead(_48); // scope 13 at $DIR/address-of.rs:+33:25: +33:26
FakeRead(ForLet(None), _47); // scope 13 at $DIR/address-of.rs:+33:9: +33:10
AscribeUserType(_47, o, UserTypeProjection { base: UserType(29), projs: [] }); // scope 13 at $DIR/address-of.rs:+33:12: +33:22
_0 = const (); // scope 0 at $DIR/address-of.rs:+0:26: +34:2
StorageDead(_47); // scope 13 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_45); // scope 12 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_44); // scope 11 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_43); // scope 10 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_33); // scope 9 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_31); // scope 8 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_30); // scope 7 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_29); // scope 6 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_19); // scope 5 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_17); // scope 4 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_16); // scope 3 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_15); // scope 2 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_4); // scope 1 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_3); // scope 1 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_2); // scope 0 at $DIR/address-of.rs:+34:1: +34:2
StorageDead(_1); // scope 0 at $DIR/address-of.rs:+34:1: +34:2
return; // scope 0 at $DIR/address-of.rs:+34:2: +34:2
StorageLive(_1); // scope 0 at $DIR/address_of.rs:+1:9: +1:10
StorageLive(_2); // scope 0 at $DIR/address_of.rs:+1:14: +1:21
_2 = [const 0_i32; 10]; // scope 0 at $DIR/address_of.rs:+1:14: +1:21
_1 = &_2; // scope 0 at $DIR/address_of.rs:+1:13: +1:21
FakeRead(ForLet(None), _1); // scope 0 at $DIR/address_of.rs:+1:9: +1:10
StorageLive(_3); // scope 1 at $DIR/address_of.rs:+2:9: +2:14
StorageLive(_4); // scope 1 at $DIR/address_of.rs:+2:22: +2:29
_4 = [const 0_i32; 10]; // scope 1 at $DIR/address_of.rs:+2:22: +2:29
_3 = &mut _4; // scope 1 at $DIR/address_of.rs:+2:17: +2:29
FakeRead(ForLet(None), _3); // scope 1 at $DIR/address_of.rs:+2:9: +2:14
StorageLive(_5); // scope 2 at $DIR/address_of.rs:+4:5: +4:18
StorageLive(_6); // scope 2 at $DIR/address_of.rs:+4:5: +4:18
_6 = &raw const (*_1); // scope 2 at $DIR/address_of.rs:+4:5: +4:6
AscribeUserType(_6, o, UserTypeProjection { base: UserType(0), projs: [] }); // scope 2 at $DIR/address_of.rs:+4:5: +4:18
_5 = _6; // scope 2 at $DIR/address_of.rs:+4:5: +4:18
StorageDead(_6); // scope 2 at $DIR/address_of.rs:+4:18: +4:19
StorageDead(_5); // scope 2 at $DIR/address_of.rs:+4:18: +4:19
StorageLive(_7); // scope 2 at $DIR/address_of.rs:+5:5: +5:26
_7 = &raw const (*_1); // scope 2 at $DIR/address_of.rs:+5:5: +5:6
StorageDead(_7); // scope 2 at $DIR/address_of.rs:+5:26: +5:27
StorageLive(_8); // scope 2 at $DIR/address_of.rs:+6:5: +6:25
StorageLive(_9); // scope 2 at $DIR/address_of.rs:+6:5: +6:25
StorageLive(_10); // scope 2 at $DIR/address_of.rs:+6:5: +6:6
_10 = &raw const (*_1); // scope 2 at $DIR/address_of.rs:+6:5: +6:6
_9 = move _10 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 2 at $DIR/address_of.rs:+6:5: +6:6
StorageDead(_10); // scope 2 at $DIR/address_of.rs:+6:5: +6:6
AscribeUserType(_9, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 2 at $DIR/address_of.rs:+6:5: +6:25
_8 = _9; // scope 2 at $DIR/address_of.rs:+6:5: +6:25
StorageDead(_9); // scope 2 at $DIR/address_of.rs:+6:25: +6:26
StorageDead(_8); // scope 2 at $DIR/address_of.rs:+6:25: +6:26
StorageLive(_11); // scope 2 at $DIR/address_of.rs:+7:5: +7:22
StorageLive(_12); // scope 2 at $DIR/address_of.rs:+7:5: +7:6
_12 = &raw const (*_1); // scope 2 at $DIR/address_of.rs:+7:5: +7:6
_11 = move _12 as *const [i32] (Pointer(Unsize)); // scope 2 at $DIR/address_of.rs:+7:5: +7:6
StorageDead(_12); // scope 2 at $DIR/address_of.rs:+7:5: +7:6
StorageDead(_11); // scope 2 at $DIR/address_of.rs:+7:22: +7:23
StorageLive(_13); // scope 2 at $DIR/address_of.rs:+8:5: +8:20
StorageLive(_14); // scope 2 at $DIR/address_of.rs:+8:5: +8:6
_14 = &raw const (*_1); // scope 2 at $DIR/address_of.rs:+8:5: +8:6
_13 = move _14 as *const i32 (Pointer(ArrayToPointer)); // scope 2 at $DIR/address_of.rs:+8:5: +8:20
StorageDead(_14); // scope 2 at $DIR/address_of.rs:+8:19: +8:20
StorageDead(_13); // scope 2 at $DIR/address_of.rs:+8:20: +8:21
StorageLive(_15); // scope 2 at $DIR/address_of.rs:+10:9: +10:10
_15 = &raw const (*_1); // scope 2 at $DIR/address_of.rs:+10:23: +10:24
FakeRead(ForLet(None), _15); // scope 2 at $DIR/address_of.rs:+10:9: +10:10
AscribeUserType(_15, o, UserTypeProjection { base: UserType(3), projs: [] }); // scope 2 at $DIR/address_of.rs:+10:12: +10:20
StorageLive(_16); // scope 3 at $DIR/address_of.rs:+11:9: +11:10
_16 = &raw const (*_1); // scope 3 at $DIR/address_of.rs:+11:31: +11:32
FakeRead(ForLet(None), _16); // scope 3 at $DIR/address_of.rs:+11:9: +11:10
AscribeUserType(_16, o, UserTypeProjection { base: UserType(5), projs: [] }); // scope 3 at $DIR/address_of.rs:+11:12: +11:28
StorageLive(_17); // scope 4 at $DIR/address_of.rs:+12:9: +12:10
StorageLive(_18); // scope 4 at $DIR/address_of.rs:+12:30: +12:31
_18 = &raw const (*_1); // scope 4 at $DIR/address_of.rs:+12:30: +12:31
_17 = move _18 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 4 at $DIR/address_of.rs:+12:30: +12:31
StorageDead(_18); // scope 4 at $DIR/address_of.rs:+12:30: +12:31
FakeRead(ForLet(None), _17); // scope 4 at $DIR/address_of.rs:+12:9: +12:10
AscribeUserType(_17, o, UserTypeProjection { base: UserType(7), projs: [] }); // scope 4 at $DIR/address_of.rs:+12:12: +12:27
StorageLive(_19); // scope 5 at $DIR/address_of.rs:+13:9: +13:10
StorageLive(_20); // scope 5 at $DIR/address_of.rs:+13:27: +13:28
_20 = &raw const (*_1); // scope 5 at $DIR/address_of.rs:+13:27: +13:28
_19 = move _20 as *const [i32] (Pointer(Unsize)); // scope 5 at $DIR/address_of.rs:+13:27: +13:28
StorageDead(_20); // scope 5 at $DIR/address_of.rs:+13:27: +13:28
FakeRead(ForLet(None), _19); // scope 5 at $DIR/address_of.rs:+13:9: +13:10
AscribeUserType(_19, o, UserTypeProjection { base: UserType(9), projs: [] }); // scope 5 at $DIR/address_of.rs:+13:12: +13:24
StorageLive(_21); // scope 6 at $DIR/address_of.rs:+15:5: +15:18
StorageLive(_22); // scope 6 at $DIR/address_of.rs:+15:5: +15:18
_22 = &raw const (*_3); // scope 6 at $DIR/address_of.rs:+15:5: +15:6
AscribeUserType(_22, o, UserTypeProjection { base: UserType(10), projs: [] }); // scope 6 at $DIR/address_of.rs:+15:5: +15:18
_21 = _22; // scope 6 at $DIR/address_of.rs:+15:5: +15:18
StorageDead(_22); // scope 6 at $DIR/address_of.rs:+15:18: +15:19
StorageDead(_21); // scope 6 at $DIR/address_of.rs:+15:18: +15:19
StorageLive(_23); // scope 6 at $DIR/address_of.rs:+16:5: +16:26
_23 = &raw const (*_3); // scope 6 at $DIR/address_of.rs:+16:5: +16:6
StorageDead(_23); // scope 6 at $DIR/address_of.rs:+16:26: +16:27
StorageLive(_24); // scope 6 at $DIR/address_of.rs:+17:5: +17:25
StorageLive(_25); // scope 6 at $DIR/address_of.rs:+17:5: +17:25
StorageLive(_26); // scope 6 at $DIR/address_of.rs:+17:5: +17:6
_26 = &raw const (*_3); // scope 6 at $DIR/address_of.rs:+17:5: +17:6
_25 = move _26 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 6 at $DIR/address_of.rs:+17:5: +17:6
StorageDead(_26); // scope 6 at $DIR/address_of.rs:+17:5: +17:6
AscribeUserType(_25, o, UserTypeProjection { base: UserType(11), projs: [] }); // scope 6 at $DIR/address_of.rs:+17:5: +17:25
_24 = _25; // scope 6 at $DIR/address_of.rs:+17:5: +17:25
StorageDead(_25); // scope 6 at $DIR/address_of.rs:+17:25: +17:26
StorageDead(_24); // scope 6 at $DIR/address_of.rs:+17:25: +17:26
StorageLive(_27); // scope 6 at $DIR/address_of.rs:+18:5: +18:22
StorageLive(_28); // scope 6 at $DIR/address_of.rs:+18:5: +18:6
_28 = &raw const (*_3); // scope 6 at $DIR/address_of.rs:+18:5: +18:6
_27 = move _28 as *const [i32] (Pointer(Unsize)); // scope 6 at $DIR/address_of.rs:+18:5: +18:6
StorageDead(_28); // scope 6 at $DIR/address_of.rs:+18:5: +18:6
StorageDead(_27); // scope 6 at $DIR/address_of.rs:+18:22: +18:23
StorageLive(_29); // scope 6 at $DIR/address_of.rs:+20:9: +20:10
_29 = &raw const (*_3); // scope 6 at $DIR/address_of.rs:+20:23: +20:24
FakeRead(ForLet(None), _29); // scope 6 at $DIR/address_of.rs:+20:9: +20:10
AscribeUserType(_29, o, UserTypeProjection { base: UserType(13), projs: [] }); // scope 6 at $DIR/address_of.rs:+20:12: +20:20
StorageLive(_30); // scope 7 at $DIR/address_of.rs:+21:9: +21:10
_30 = &raw const (*_3); // scope 7 at $DIR/address_of.rs:+21:31: +21:32
FakeRead(ForLet(None), _30); // scope 7 at $DIR/address_of.rs:+21:9: +21:10
AscribeUserType(_30, o, UserTypeProjection { base: UserType(15), projs: [] }); // scope 7 at $DIR/address_of.rs:+21:12: +21:28
StorageLive(_31); // scope 8 at $DIR/address_of.rs:+22:9: +22:10
StorageLive(_32); // scope 8 at $DIR/address_of.rs:+22:30: +22:31
_32 = &raw const (*_3); // scope 8 at $DIR/address_of.rs:+22:30: +22:31
_31 = move _32 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 8 at $DIR/address_of.rs:+22:30: +22:31
StorageDead(_32); // scope 8 at $DIR/address_of.rs:+22:30: +22:31
FakeRead(ForLet(None), _31); // scope 8 at $DIR/address_of.rs:+22:9: +22:10
AscribeUserType(_31, o, UserTypeProjection { base: UserType(17), projs: [] }); // scope 8 at $DIR/address_of.rs:+22:12: +22:27
StorageLive(_33); // scope 9 at $DIR/address_of.rs:+23:9: +23:10
StorageLive(_34); // scope 9 at $DIR/address_of.rs:+23:27: +23:28
_34 = &raw const (*_3); // scope 9 at $DIR/address_of.rs:+23:27: +23:28
_33 = move _34 as *const [i32] (Pointer(Unsize)); // scope 9 at $DIR/address_of.rs:+23:27: +23:28
StorageDead(_34); // scope 9 at $DIR/address_of.rs:+23:27: +23:28
FakeRead(ForLet(None), _33); // scope 9 at $DIR/address_of.rs:+23:9: +23:10
AscribeUserType(_33, o, UserTypeProjection { base: UserType(19), projs: [] }); // scope 9 at $DIR/address_of.rs:+23:12: +23:24
StorageLive(_35); // scope 10 at $DIR/address_of.rs:+25:5: +25:16
StorageLive(_36); // scope 10 at $DIR/address_of.rs:+25:5: +25:16
_36 = &raw mut (*_3); // scope 10 at $DIR/address_of.rs:+25:5: +25:6
AscribeUserType(_36, o, UserTypeProjection { base: UserType(20), projs: [] }); // scope 10 at $DIR/address_of.rs:+25:5: +25:16
_35 = _36; // scope 10 at $DIR/address_of.rs:+25:5: +25:16
StorageDead(_36); // scope 10 at $DIR/address_of.rs:+25:16: +25:17
StorageDead(_35); // scope 10 at $DIR/address_of.rs:+25:16: +25:17
StorageLive(_37); // scope 10 at $DIR/address_of.rs:+26:5: +26:24
_37 = &raw mut (*_3); // scope 10 at $DIR/address_of.rs:+26:5: +26:6
StorageDead(_37); // scope 10 at $DIR/address_of.rs:+26:24: +26:25
StorageLive(_38); // scope 10 at $DIR/address_of.rs:+27:5: +27:23
StorageLive(_39); // scope 10 at $DIR/address_of.rs:+27:5: +27:23
StorageLive(_40); // scope 10 at $DIR/address_of.rs:+27:5: +27:6
_40 = &raw mut (*_3); // scope 10 at $DIR/address_of.rs:+27:5: +27:6
_39 = move _40 as *mut dyn std::marker::Send (Pointer(Unsize)); // scope 10 at $DIR/address_of.rs:+27:5: +27:6
StorageDead(_40); // scope 10 at $DIR/address_of.rs:+27:5: +27:6
AscribeUserType(_39, o, UserTypeProjection { base: UserType(21), projs: [] }); // scope 10 at $DIR/address_of.rs:+27:5: +27:23
_38 = _39; // scope 10 at $DIR/address_of.rs:+27:5: +27:23
StorageDead(_39); // scope 10 at $DIR/address_of.rs:+27:23: +27:24
StorageDead(_38); // scope 10 at $DIR/address_of.rs:+27:23: +27:24
StorageLive(_41); // scope 10 at $DIR/address_of.rs:+28:5: +28:20
StorageLive(_42); // scope 10 at $DIR/address_of.rs:+28:5: +28:6
_42 = &raw mut (*_3); // scope 10 at $DIR/address_of.rs:+28:5: +28:6
_41 = move _42 as *mut [i32] (Pointer(Unsize)); // scope 10 at $DIR/address_of.rs:+28:5: +28:6
StorageDead(_42); // scope 10 at $DIR/address_of.rs:+28:5: +28:6
StorageDead(_41); // scope 10 at $DIR/address_of.rs:+28:20: +28:21
StorageLive(_43); // scope 10 at $DIR/address_of.rs:+30:9: +30:10
_43 = &raw mut (*_3); // scope 10 at $DIR/address_of.rs:+30:21: +30:22
FakeRead(ForLet(None), _43); // scope 10 at $DIR/address_of.rs:+30:9: +30:10
AscribeUserType(_43, o, UserTypeProjection { base: UserType(23), projs: [] }); // scope 10 at $DIR/address_of.rs:+30:12: +30:18
StorageLive(_44); // scope 11 at $DIR/address_of.rs:+31:9: +31:10
_44 = &raw mut (*_3); // scope 11 at $DIR/address_of.rs:+31:29: +31:30
FakeRead(ForLet(None), _44); // scope 11 at $DIR/address_of.rs:+31:9: +31:10
AscribeUserType(_44, o, UserTypeProjection { base: UserType(25), projs: [] }); // scope 11 at $DIR/address_of.rs:+31:12: +31:26
StorageLive(_45); // scope 12 at $DIR/address_of.rs:+32:9: +32:10
StorageLive(_46); // scope 12 at $DIR/address_of.rs:+32:28: +32:29
_46 = &raw mut (*_3); // scope 12 at $DIR/address_of.rs:+32:28: +32:29
_45 = move _46 as *mut dyn std::marker::Send (Pointer(Unsize)); // scope 12 at $DIR/address_of.rs:+32:28: +32:29
StorageDead(_46); // scope 12 at $DIR/address_of.rs:+32:28: +32:29
FakeRead(ForLet(None), _45); // scope 12 at $DIR/address_of.rs:+32:9: +32:10
AscribeUserType(_45, o, UserTypeProjection { base: UserType(27), projs: [] }); // scope 12 at $DIR/address_of.rs:+32:12: +32:25
StorageLive(_47); // scope 13 at $DIR/address_of.rs:+33:9: +33:10
StorageLive(_48); // scope 13 at $DIR/address_of.rs:+33:25: +33:26
_48 = &raw mut (*_3); // scope 13 at $DIR/address_of.rs:+33:25: +33:26
_47 = move _48 as *mut [i32] (Pointer(Unsize)); // scope 13 at $DIR/address_of.rs:+33:25: +33:26
StorageDead(_48); // scope 13 at $DIR/address_of.rs:+33:25: +33:26
FakeRead(ForLet(None), _47); // scope 13 at $DIR/address_of.rs:+33:9: +33:10
AscribeUserType(_47, o, UserTypeProjection { base: UserType(29), projs: [] }); // scope 13 at $DIR/address_of.rs:+33:12: +33:22
_0 = const (); // scope 0 at $DIR/address_of.rs:+0:26: +34:2
StorageDead(_47); // scope 13 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_45); // scope 12 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_44); // scope 11 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_43); // scope 10 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_33); // scope 9 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_31); // scope 8 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_30); // scope 7 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_29); // scope 6 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_19); // scope 5 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_17); // scope 4 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_16); // scope 3 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_15); // scope 2 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_4); // scope 1 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_3); // scope 1 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_2); // scope 0 at $DIR/address_of.rs:+34:1: +34:2
StorageDead(_1); // scope 0 at $DIR/address_of.rs:+34:1: +34:2
return; // scope 0 at $DIR/address_of.rs:+34:2: +34:2
}
}

View file

@ -1,47 +1,47 @@
// MIR for `borrow_and_cast` after SimplifyCfg-initial
fn borrow_and_cast(_1: i32) -> () {
debug x => _1; // in scope 0 at $DIR/address-of.rs:+0:20: +0:25
let mut _0: (); // return place in scope 0 at $DIR/address-of.rs:+0:32: +0:32
let _2: *const i32; // in scope 0 at $DIR/address-of.rs:+1:9: +1:10
let _3: &i32; // in scope 0 at $DIR/address-of.rs:+1:13: +1:15
let _5: &mut i32; // in scope 0 at $DIR/address-of.rs:+2:13: +2:19
let mut _7: &mut i32; // in scope 0 at $DIR/address-of.rs:+3:13: +3:19
debug x => _1; // in scope 0 at $DIR/address_of.rs:+0:20: +0:25
let mut _0: (); // return place in scope 0 at $DIR/address_of.rs:+0:32: +0:32
let _2: *const i32; // in scope 0 at $DIR/address_of.rs:+1:9: +1:10
let _3: &i32; // in scope 0 at $DIR/address_of.rs:+1:13: +1:15
let _5: &mut i32; // in scope 0 at $DIR/address_of.rs:+2:13: +2:19
let mut _7: &mut i32; // in scope 0 at $DIR/address_of.rs:+3:13: +3:19
scope 1 {
debug p => _2; // in scope 1 at $DIR/address-of.rs:+1:9: +1:10
let _4: *const i32; // in scope 1 at $DIR/address-of.rs:+2:9: +2:10
debug p => _2; // in scope 1 at $DIR/address_of.rs:+1:9: +1:10
let _4: *const i32; // in scope 1 at $DIR/address_of.rs:+2:9: +2:10
scope 2 {
debug q => _4; // in scope 2 at $DIR/address-of.rs:+2:9: +2:10
let _6: *mut i32; // in scope 2 at $DIR/address-of.rs:+3:9: +3:10
debug q => _4; // in scope 2 at $DIR/address_of.rs:+2:9: +2:10
let _6: *mut i32; // in scope 2 at $DIR/address_of.rs:+3:9: +3:10
scope 3 {
debug r => _6; // in scope 3 at $DIR/address-of.rs:+3:9: +3:10
debug r => _6; // in scope 3 at $DIR/address_of.rs:+3:9: +3:10
}
}
}
bb0: {
StorageLive(_2); // scope 0 at $DIR/address-of.rs:+1:9: +1:10
StorageLive(_3); // scope 0 at $DIR/address-of.rs:+1:13: +1:15
_3 = &_1; // scope 0 at $DIR/address-of.rs:+1:13: +1:15
_2 = &raw const (*_3); // scope 0 at $DIR/address-of.rs:+1:13: +1:15
FakeRead(ForLet(None), _2); // scope 0 at $DIR/address-of.rs:+1:9: +1:10
StorageDead(_3); // scope 0 at $DIR/address-of.rs:+1:29: +1:30
StorageLive(_4); // scope 1 at $DIR/address-of.rs:+2:9: +2:10
StorageLive(_5); // scope 1 at $DIR/address-of.rs:+2:13: +2:19
_5 = &mut _1; // scope 1 at $DIR/address-of.rs:+2:13: +2:19
_4 = &raw const (*_5); // scope 1 at $DIR/address-of.rs:+2:13: +2:19
FakeRead(ForLet(None), _4); // scope 1 at $DIR/address-of.rs:+2:9: +2:10
StorageDead(_5); // scope 1 at $DIR/address-of.rs:+2:33: +2:34
StorageLive(_6); // scope 2 at $DIR/address-of.rs:+3:9: +3:10
StorageLive(_7); // scope 2 at $DIR/address-of.rs:+3:13: +3:19
_7 = &mut _1; // scope 2 at $DIR/address-of.rs:+3:13: +3:19
_6 = &raw mut (*_7); // scope 2 at $DIR/address-of.rs:+3:13: +3:19
FakeRead(ForLet(None), _6); // scope 2 at $DIR/address-of.rs:+3:9: +3:10
StorageDead(_7); // scope 2 at $DIR/address-of.rs:+3:31: +3:32
_0 = const (); // scope 0 at $DIR/address-of.rs:+0:32: +4:2
StorageDead(_6); // scope 2 at $DIR/address-of.rs:+4:1: +4:2
StorageDead(_4); // scope 1 at $DIR/address-of.rs:+4:1: +4:2
StorageDead(_2); // scope 0 at $DIR/address-of.rs:+4:1: +4:2
return; // scope 0 at $DIR/address-of.rs:+4:2: +4:2
StorageLive(_2); // scope 0 at $DIR/address_of.rs:+1:9: +1:10
StorageLive(_3); // scope 0 at $DIR/address_of.rs:+1:13: +1:15
_3 = &_1; // scope 0 at $DIR/address_of.rs:+1:13: +1:15
_2 = &raw const (*_3); // scope 0 at $DIR/address_of.rs:+1:13: +1:15
FakeRead(ForLet(None), _2); // scope 0 at $DIR/address_of.rs:+1:9: +1:10
StorageDead(_3); // scope 0 at $DIR/address_of.rs:+1:29: +1:30
StorageLive(_4); // scope 1 at $DIR/address_of.rs:+2:9: +2:10
StorageLive(_5); // scope 1 at $DIR/address_of.rs:+2:13: +2:19
_5 = &mut _1; // scope 1 at $DIR/address_of.rs:+2:13: +2:19
_4 = &raw const (*_5); // scope 1 at $DIR/address_of.rs:+2:13: +2:19
FakeRead(ForLet(None), _4); // scope 1 at $DIR/address_of.rs:+2:9: +2:10
StorageDead(_5); // scope 1 at $DIR/address_of.rs:+2:33: +2:34
StorageLive(_6); // scope 2 at $DIR/address_of.rs:+3:9: +3:10
StorageLive(_7); // scope 2 at $DIR/address_of.rs:+3:13: +3:19
_7 = &mut _1; // scope 2 at $DIR/address_of.rs:+3:13: +3:19
_6 = &raw mut (*_7); // scope 2 at $DIR/address_of.rs:+3:13: +3:19
FakeRead(ForLet(None), _6); // scope 2 at $DIR/address_of.rs:+3:9: +3:10
StorageDead(_7); // scope 2 at $DIR/address_of.rs:+3:31: +3:32
_0 = const (); // scope 0 at $DIR/address_of.rs:+0:32: +4:2
StorageDead(_6); // scope 2 at $DIR/address_of.rs:+4:1: +4:2
StorageDead(_4); // scope 1 at $DIR/address_of.rs:+4:1: +4:2
StorageDead(_2); // scope 0 at $DIR/address_of.rs:+4:1: +4:2
return; // scope 0 at $DIR/address_of.rs:+4:2: +4:2
}
}

View file

@ -1,22 +1,22 @@
// MIR for `main` after SimplifyCfg-elaborate-drops
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/array-index-is-temporary.rs:+0:11: +0:11
let mut _1: [u32; 3]; // in scope 0 at $DIR/array-index-is-temporary.rs:+1:9: +1:14
let mut _4: &mut usize; // in scope 0 at $DIR/array-index-is-temporary.rs:+3:25: +3:31
let mut _5: u32; // in scope 0 at $DIR/array-index-is-temporary.rs:+4:12: +4:29
let mut _6: *mut usize; // in scope 0 at $DIR/array-index-is-temporary.rs:+4:25: +4:26
let _7: usize; // in scope 0 at $DIR/array-index-is-temporary.rs:+4:7: +4:8
let mut _8: usize; // in scope 0 at $DIR/array-index-is-temporary.rs:+4:5: +4:9
let mut _9: bool; // in scope 0 at $DIR/array-index-is-temporary.rs:+4:5: +4:9
let mut _0: (); // return place in scope 0 at $DIR/array_index_is_temporary.rs:+0:11: +0:11
let mut _1: [u32; 3]; // in scope 0 at $DIR/array_index_is_temporary.rs:+1:9: +1:14
let mut _4: &mut usize; // in scope 0 at $DIR/array_index_is_temporary.rs:+3:25: +3:31
let mut _5: u32; // in scope 0 at $DIR/array_index_is_temporary.rs:+4:12: +4:29
let mut _6: *mut usize; // in scope 0 at $DIR/array_index_is_temporary.rs:+4:25: +4:26
let _7: usize; // in scope 0 at $DIR/array_index_is_temporary.rs:+4:7: +4:8
let mut _8: usize; // in scope 0 at $DIR/array_index_is_temporary.rs:+4:5: +4:9
let mut _9: bool; // in scope 0 at $DIR/array_index_is_temporary.rs:+4:5: +4:9
scope 1 {
debug x => _1; // in scope 1 at $DIR/array-index-is-temporary.rs:+1:9: +1:14
let mut _2: usize; // in scope 1 at $DIR/array-index-is-temporary.rs:+2:9: +2:14
debug x => _1; // in scope 1 at $DIR/array_index_is_temporary.rs:+1:9: +1:14
let mut _2: usize; // in scope 1 at $DIR/array_index_is_temporary.rs:+2:9: +2:14
scope 2 {
debug y => _2; // in scope 2 at $DIR/array-index-is-temporary.rs:+2:9: +2:14
let _3: *mut usize; // in scope 2 at $DIR/array-index-is-temporary.rs:+3:9: +3:10
debug y => _2; // in scope 2 at $DIR/array_index_is_temporary.rs:+2:9: +2:14
let _3: *mut usize; // in scope 2 at $DIR/array_index_is_temporary.rs:+3:9: +3:10
scope 3 {
debug z => _3; // in scope 3 at $DIR/array-index-is-temporary.rs:+3:9: +3:10
debug z => _3; // in scope 3 at $DIR/array_index_is_temporary.rs:+3:9: +3:10
scope 4 {
}
}
@ -24,41 +24,41 @@ fn main() -> () {
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/array-index-is-temporary.rs:+1:9: +1:14
_1 = [const 42_u32, const 43_u32, const 44_u32]; // scope 0 at $DIR/array-index-is-temporary.rs:+1:17: +1:29
StorageLive(_2); // scope 1 at $DIR/array-index-is-temporary.rs:+2:9: +2:14
_2 = const 1_usize; // scope 1 at $DIR/array-index-is-temporary.rs:+2:17: +2:18
StorageLive(_3); // scope 2 at $DIR/array-index-is-temporary.rs:+3:9: +3:10
StorageLive(_4); // scope 2 at $DIR/array-index-is-temporary.rs:+3:25: +3:31
_4 = &mut _2; // scope 2 at $DIR/array-index-is-temporary.rs:+3:25: +3:31
_3 = &raw mut (*_4); // scope 2 at $DIR/array-index-is-temporary.rs:+3:25: +3:31
StorageDead(_4); // scope 2 at $DIR/array-index-is-temporary.rs:+3:31: +3:32
StorageLive(_5); // scope 3 at $DIR/array-index-is-temporary.rs:+4:12: +4:29
StorageLive(_6); // scope 4 at $DIR/array-index-is-temporary.rs:+4:25: +4:26
_6 = _3; // scope 4 at $DIR/array-index-is-temporary.rs:+4:25: +4:26
_5 = foo(move _6) -> bb1; // scope 4 at $DIR/array-index-is-temporary.rs:+4:21: +4:27
StorageLive(_1); // scope 0 at $DIR/array_index_is_temporary.rs:+1:9: +1:14
_1 = [const 42_u32, const 43_u32, const 44_u32]; // scope 0 at $DIR/array_index_is_temporary.rs:+1:17: +1:29
StorageLive(_2); // scope 1 at $DIR/array_index_is_temporary.rs:+2:9: +2:14
_2 = const 1_usize; // scope 1 at $DIR/array_index_is_temporary.rs:+2:17: +2:18
StorageLive(_3); // scope 2 at $DIR/array_index_is_temporary.rs:+3:9: +3:10
StorageLive(_4); // scope 2 at $DIR/array_index_is_temporary.rs:+3:25: +3:31
_4 = &mut _2; // scope 2 at $DIR/array_index_is_temporary.rs:+3:25: +3:31
_3 = &raw mut (*_4); // scope 2 at $DIR/array_index_is_temporary.rs:+3:25: +3:31
StorageDead(_4); // scope 2 at $DIR/array_index_is_temporary.rs:+3:31: +3:32
StorageLive(_5); // scope 3 at $DIR/array_index_is_temporary.rs:+4:12: +4:29
StorageLive(_6); // scope 4 at $DIR/array_index_is_temporary.rs:+4:25: +4:26
_6 = _3; // scope 4 at $DIR/array_index_is_temporary.rs:+4:25: +4:26
_5 = foo(move _6) -> bb1; // scope 4 at $DIR/array_index_is_temporary.rs:+4:21: +4:27
// mir::Constant
// + span: $DIR/array-index-is-temporary.rs:16:21: 16:24
// + span: $DIR/array_index_is_temporary.rs:16:21: 16:24
// + literal: Const { ty: unsafe fn(*mut usize) -> u32 {foo}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_6); // scope 4 at $DIR/array-index-is-temporary.rs:+4:26: +4:27
StorageLive(_7); // scope 3 at $DIR/array-index-is-temporary.rs:+4:7: +4:8
_7 = _2; // scope 3 at $DIR/array-index-is-temporary.rs:+4:7: +4:8
_8 = Len(_1); // scope 3 at $DIR/array-index-is-temporary.rs:+4:5: +4:9
_9 = Lt(_7, _8); // scope 3 at $DIR/array-index-is-temporary.rs:+4:5: +4:9
assert(move _9, "index out of bounds: the length is {} but the index is {}", move _8, _7) -> bb2; // scope 3 at $DIR/array-index-is-temporary.rs:+4:5: +4:9
StorageDead(_6); // scope 4 at $DIR/array_index_is_temporary.rs:+4:26: +4:27
StorageLive(_7); // scope 3 at $DIR/array_index_is_temporary.rs:+4:7: +4:8
_7 = _2; // scope 3 at $DIR/array_index_is_temporary.rs:+4:7: +4:8
_8 = Len(_1); // scope 3 at $DIR/array_index_is_temporary.rs:+4:5: +4:9
_9 = Lt(_7, _8); // scope 3 at $DIR/array_index_is_temporary.rs:+4:5: +4:9
assert(move _9, "index out of bounds: the length is {} but the index is {}", move _8, _7) -> bb2; // scope 3 at $DIR/array_index_is_temporary.rs:+4:5: +4:9
}
bb2: {
_1[_7] = move _5; // scope 3 at $DIR/array-index-is-temporary.rs:+4:5: +4:29
StorageDead(_5); // scope 3 at $DIR/array-index-is-temporary.rs:+4:28: +4:29
StorageDead(_7); // scope 3 at $DIR/array-index-is-temporary.rs:+4:29: +4:30
_0 = const (); // scope 0 at $DIR/array-index-is-temporary.rs:+0:11: +5:2
StorageDead(_3); // scope 2 at $DIR/array-index-is-temporary.rs:+5:1: +5:2
StorageDead(_2); // scope 1 at $DIR/array-index-is-temporary.rs:+5:1: +5:2
StorageDead(_1); // scope 0 at $DIR/array-index-is-temporary.rs:+5:1: +5:2
return; // scope 0 at $DIR/array-index-is-temporary.rs:+5:2: +5:2
_1[_7] = move _5; // scope 3 at $DIR/array_index_is_temporary.rs:+4:5: +4:29
StorageDead(_5); // scope 3 at $DIR/array_index_is_temporary.rs:+4:28: +4:29
StorageDead(_7); // scope 3 at $DIR/array_index_is_temporary.rs:+4:29: +4:30
_0 = const (); // scope 0 at $DIR/array_index_is_temporary.rs:+0:11: +5:2
StorageDead(_3); // scope 2 at $DIR/array_index_is_temporary.rs:+5:1: +5:2
StorageDead(_2); // scope 1 at $DIR/array_index_is_temporary.rs:+5:1: +5:2
StorageDead(_1); // scope 0 at $DIR/array_index_is_temporary.rs:+5:1: +5:2
return; // scope 0 at $DIR/array_index_is_temporary.rs:+5:2: +5:2
}
}

View file

@ -1,33 +1,33 @@
// MIR for `main` after built
| User Type Annotations
| 0: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(std::option::Option<u8>) }, span: $DIR/issue-101867.rs:3:12: 3:22, inferred_ty: std::option::Option<u8>
| 1: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(std::option::Option<u8>) }, span: $DIR/issue-101867.rs:3:12: 3:22, inferred_ty: std::option::Option<u8>
| 0: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(std::option::Option<u8>) }, span: $DIR/issue_101867.rs:3:12: 3:22, inferred_ty: std::option::Option<u8>
| 1: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(std::option::Option<u8>) }, span: $DIR/issue_101867.rs:3:12: 3:22, inferred_ty: std::option::Option<u8>
|
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/issue-101867.rs:+0:11: +0:11
let _1: std::option::Option<u8> as UserTypeProjection { base: UserType(0), projs: [] }; // in scope 0 at $DIR/issue-101867.rs:+1:9: +1:10
let mut _2: !; // in scope 0 at $DIR/issue-101867.rs:+2:26: +4:6
let mut _0: (); // return place in scope 0 at $DIR/issue_101867.rs:+0:11: +0:11
let _1: std::option::Option<u8> as UserTypeProjection { base: UserType(0), projs: [] }; // in scope 0 at $DIR/issue_101867.rs:+1:9: +1:10
let mut _2: !; // in scope 0 at $DIR/issue_101867.rs:+2:26: +4:6
let _3: (); // in scope 0 at $SRC_DIR/std/src/panic.rs:LL:COL
let mut _4: !; // in scope 0 at $SRC_DIR/std/src/panic.rs:LL:COL
let mut _6: isize; // in scope 0 at $DIR/issue-101867.rs:+2:9: +2:16
let mut _6: isize; // in scope 0 at $DIR/issue_101867.rs:+2:9: +2:16
scope 1 {
debug x => _1; // in scope 1 at $DIR/issue-101867.rs:+1:9: +1:10
let _5: u8; // in scope 1 at $DIR/issue-101867.rs:+2:14: +2:15
debug x => _1; // in scope 1 at $DIR/issue_101867.rs:+1:9: +1:10
let _5: u8; // in scope 1 at $DIR/issue_101867.rs:+2:14: +2:15
scope 2 {
debug y => _5; // in scope 2 at $DIR/issue-101867.rs:+2:14: +2:15
debug y => _5; // in scope 2 at $DIR/issue_101867.rs:+2:14: +2:15
}
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/issue-101867.rs:+1:9: +1:10
_1 = Option::<u8>::Some(const 1_u8); // scope 0 at $DIR/issue-101867.rs:+1:25: +1:32
FakeRead(ForLet(None), _1); // scope 0 at $DIR/issue-101867.rs:+1:9: +1:10
AscribeUserType(_1, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 0 at $DIR/issue-101867.rs:+1:12: +1:22
StorageLive(_5); // scope 1 at $DIR/issue-101867.rs:+2:14: +2:15
FakeRead(ForMatchedPlace(None), _1); // scope 1 at $DIR/issue-101867.rs:+2:19: +2:20
_6 = discriminant(_1); // scope 1 at $DIR/issue-101867.rs:+2:19: +2:20
switchInt(move _6) -> [1_isize: bb4, otherwise: bb3]; // scope 1 at $DIR/issue-101867.rs:+2:9: +2:16
StorageLive(_1); // scope 0 at $DIR/issue_101867.rs:+1:9: +1:10
_1 = Option::<u8>::Some(const 1_u8); // scope 0 at $DIR/issue_101867.rs:+1:25: +1:32
FakeRead(ForLet(None), _1); // scope 0 at $DIR/issue_101867.rs:+1:9: +1:10
AscribeUserType(_1, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 0 at $DIR/issue_101867.rs:+1:12: +1:22
StorageLive(_5); // scope 1 at $DIR/issue_101867.rs:+2:14: +2:15
FakeRead(ForMatchedPlace(None), _1); // scope 1 at $DIR/issue_101867.rs:+2:19: +2:20
_6 = discriminant(_1); // scope 1 at $DIR/issue_101867.rs:+2:19: +2:20
switchInt(move _6) -> [1_isize: bb4, otherwise: bb3]; // scope 1 at $DIR/issue_101867.rs:+2:9: +2:16
}
bb1: {
@ -44,32 +44,32 @@ fn main() -> () {
bb2: {
StorageDead(_4); // scope 1 at $SRC_DIR/std/src/panic.rs:LL:COL
StorageDead(_3); // scope 1 at $DIR/issue-101867.rs:+3:16: +3:17
unreachable; // scope 1 at $DIR/issue-101867.rs:+2:26: +4:6
StorageDead(_3); // scope 1 at $DIR/issue_101867.rs:+3:16: +3:17
unreachable; // scope 1 at $DIR/issue_101867.rs:+2:26: +4:6
}
bb3: {
goto -> bb6; // scope 1 at $DIR/issue-101867.rs:+2:19: +2:20
goto -> bb6; // scope 1 at $DIR/issue_101867.rs:+2:19: +2:20
}
bb4: {
falseEdge -> [real: bb5, imaginary: bb3]; // scope 1 at $DIR/issue-101867.rs:+2:9: +2:16
falseEdge -> [real: bb5, imaginary: bb3]; // scope 1 at $DIR/issue_101867.rs:+2:9: +2:16
}
bb5: {
_5 = ((_1 as Some).0: u8); // scope 1 at $DIR/issue-101867.rs:+2:14: +2:15
_0 = const (); // scope 0 at $DIR/issue-101867.rs:+0:11: +5:2
StorageDead(_5); // scope 1 at $DIR/issue-101867.rs:+5:1: +5:2
StorageDead(_1); // scope 0 at $DIR/issue-101867.rs:+5:1: +5:2
return; // scope 0 at $DIR/issue-101867.rs:+5:2: +5:2
_5 = ((_1 as Some).0: u8); // scope 1 at $DIR/issue_101867.rs:+2:14: +2:15
_0 = const (); // scope 0 at $DIR/issue_101867.rs:+0:11: +5:2
StorageDead(_5); // scope 1 at $DIR/issue_101867.rs:+5:1: +5:2
StorageDead(_1); // scope 0 at $DIR/issue_101867.rs:+5:1: +5:2
return; // scope 0 at $DIR/issue_101867.rs:+5:2: +5:2
}
bb6: {
StorageDead(_5); // scope 1 at $DIR/issue-101867.rs:+5:1: +5:2
goto -> bb1; // scope 0 at $DIR/issue-101867.rs:+0:11: +5:2
StorageDead(_5); // scope 1 at $DIR/issue_101867.rs:+5:1: +5:2
goto -> bb1; // scope 0 at $DIR/issue_101867.rs:+0:11: +5:2
}
bb7 (cleanup): {
resume; // scope 0 at $DIR/issue-101867.rs:+0:1: +5:2
resume; // scope 0 at $DIR/issue_101867.rs:+0:1: +5:2
}
}

View file

@ -1,82 +1,82 @@
// MIR for `main` after built
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/issue-49232.rs:+0:11: +0:11
let mut _1: (); // in scope 0 at $DIR/issue-49232.rs:+0:1: +10:2
let _2: i32; // in scope 0 at $DIR/issue-49232.rs:+2:13: +2:19
let mut _3: bool; // in scope 0 at $DIR/issue-49232.rs:+3:19: +3:23
let mut _4: !; // in scope 0 at $DIR/issue-49232.rs:+5:25: +5:30
let _5: (); // in scope 0 at $DIR/issue-49232.rs:+8:9: +8:22
let mut _6: &i32; // in scope 0 at $DIR/issue-49232.rs:+8:14: +8:21
let mut _0: (); // return place in scope 0 at $DIR/issue_49232.rs:+0:11: +0:11
let mut _1: (); // in scope 0 at $DIR/issue_49232.rs:+0:1: +10:2
let _2: i32; // in scope 0 at $DIR/issue_49232.rs:+2:13: +2:19
let mut _3: bool; // in scope 0 at $DIR/issue_49232.rs:+3:19: +3:23
let mut _4: !; // in scope 0 at $DIR/issue_49232.rs:+5:25: +5:30
let _5: (); // in scope 0 at $DIR/issue_49232.rs:+8:9: +8:22
let mut _6: &i32; // in scope 0 at $DIR/issue_49232.rs:+8:14: +8:21
scope 1 {
debug beacon => _2; // in scope 1 at $DIR/issue-49232.rs:+2:13: +2:19
debug beacon => _2; // in scope 1 at $DIR/issue_49232.rs:+2:13: +2:19
}
bb0: {
goto -> bb1; // scope 0 at $DIR/issue-49232.rs:+1:5: +9:6
goto -> bb1; // scope 0 at $DIR/issue_49232.rs:+1:5: +9:6
}
bb1: {
falseUnwind -> [real: bb2, cleanup: bb11]; // scope 0 at $DIR/issue-49232.rs:+1:5: +9:6
falseUnwind -> [real: bb2, cleanup: bb11]; // scope 0 at $DIR/issue_49232.rs:+1:5: +9:6
}
bb2: {
StorageLive(_2); // scope 0 at $DIR/issue-49232.rs:+2:13: +2:19
StorageLive(_3); // scope 0 at $DIR/issue-49232.rs:+3:19: +3:23
_3 = const true; // scope 0 at $DIR/issue-49232.rs:+3:19: +3:23
FakeRead(ForMatchedPlace(None), _3); // scope 0 at $DIR/issue-49232.rs:+3:19: +3:23
switchInt(_3) -> [false: bb3, otherwise: bb4]; // scope 0 at $DIR/issue-49232.rs:+3:13: +3:23
StorageLive(_2); // scope 0 at $DIR/issue_49232.rs:+2:13: +2:19
StorageLive(_3); // scope 0 at $DIR/issue_49232.rs:+3:19: +3:23
_3 = const true; // scope 0 at $DIR/issue_49232.rs:+3:19: +3:23
FakeRead(ForMatchedPlace(None), _3); // scope 0 at $DIR/issue_49232.rs:+3:19: +3:23
switchInt(_3) -> [false: bb3, otherwise: bb4]; // scope 0 at $DIR/issue_49232.rs:+3:13: +3:23
}
bb3: {
falseEdge -> [real: bb5, imaginary: bb4]; // scope 0 at $DIR/issue-49232.rs:+4:17: +4:22
falseEdge -> [real: bb5, imaginary: bb4]; // scope 0 at $DIR/issue_49232.rs:+4:17: +4:22
}
bb4: {
_0 = const (); // scope 0 at $DIR/issue-49232.rs:+5:25: +5:30
goto -> bb10; // scope 0 at $DIR/issue-49232.rs:+5:25: +5:30
_0 = const (); // scope 0 at $DIR/issue_49232.rs:+5:25: +5:30
goto -> bb10; // scope 0 at $DIR/issue_49232.rs:+5:25: +5:30
}
bb5: {
_2 = const 4_i32; // scope 0 at $DIR/issue-49232.rs:+4:26: +4:27
goto -> bb8; // scope 0 at $DIR/issue-49232.rs:+4:26: +4:27
_2 = const 4_i32; // scope 0 at $DIR/issue_49232.rs:+4:26: +4:27
goto -> bb8; // scope 0 at $DIR/issue_49232.rs:+4:26: +4:27
}
bb6: {
unreachable; // scope 0 at $DIR/issue-49232.rs:+5:25: +5:30
unreachable; // scope 0 at $DIR/issue_49232.rs:+5:25: +5:30
}
bb7: {
goto -> bb8; // scope 0 at $DIR/issue-49232.rs:+6:13: +6:14
goto -> bb8; // scope 0 at $DIR/issue_49232.rs:+6:13: +6:14
}
bb8: {
FakeRead(ForLet(None), _2); // scope 0 at $DIR/issue-49232.rs:+2:13: +2:19
StorageDead(_3); // scope 0 at $DIR/issue-49232.rs:+7:10: +7:11
StorageLive(_5); // scope 1 at $DIR/issue-49232.rs:+8:9: +8:22
StorageLive(_6); // scope 1 at $DIR/issue-49232.rs:+8:14: +8:21
_6 = &_2; // scope 1 at $DIR/issue-49232.rs:+8:14: +8:21
_5 = std::mem::drop::<&i32>(move _6) -> [return: bb9, unwind: bb11]; // scope 1 at $DIR/issue-49232.rs:+8:9: +8:22
FakeRead(ForLet(None), _2); // scope 0 at $DIR/issue_49232.rs:+2:13: +2:19
StorageDead(_3); // scope 0 at $DIR/issue_49232.rs:+7:10: +7:11
StorageLive(_5); // scope 1 at $DIR/issue_49232.rs:+8:9: +8:22
StorageLive(_6); // scope 1 at $DIR/issue_49232.rs:+8:14: +8:21
_6 = &_2; // scope 1 at $DIR/issue_49232.rs:+8:14: +8:21
_5 = std::mem::drop::<&i32>(move _6) -> [return: bb9, unwind: bb11]; // scope 1 at $DIR/issue_49232.rs:+8:9: +8:22
// mir::Constant
// + span: $DIR/issue-49232.rs:13:9: 13:13
// + span: $DIR/issue_49232.rs:13:9: 13:13
// + literal: Const { ty: fn(&i32) {std::mem::drop::<&i32>}, val: Value(<ZST>) }
}
bb9: {
StorageDead(_6); // scope 1 at $DIR/issue-49232.rs:+8:21: +8:22
StorageDead(_5); // scope 1 at $DIR/issue-49232.rs:+8:22: +8:23
_1 = const (); // scope 0 at $DIR/issue-49232.rs:+1:10: +9:6
StorageDead(_2); // scope 0 at $DIR/issue-49232.rs:+9:5: +9:6
goto -> bb1; // scope 0 at $DIR/issue-49232.rs:+1:5: +9:6
StorageDead(_6); // scope 1 at $DIR/issue_49232.rs:+8:21: +8:22
StorageDead(_5); // scope 1 at $DIR/issue_49232.rs:+8:22: +8:23
_1 = const (); // scope 0 at $DIR/issue_49232.rs:+1:10: +9:6
StorageDead(_2); // scope 0 at $DIR/issue_49232.rs:+9:5: +9:6
goto -> bb1; // scope 0 at $DIR/issue_49232.rs:+1:5: +9:6
}
bb10: {
StorageDead(_3); // scope 0 at $DIR/issue-49232.rs:+7:10: +7:11
StorageDead(_2); // scope 0 at $DIR/issue-49232.rs:+9:5: +9:6
return; // scope 0 at $DIR/issue-49232.rs:+10:2: +10:2
StorageDead(_3); // scope 0 at $DIR/issue_49232.rs:+7:10: +7:11
StorageDead(_2); // scope 0 at $DIR/issue_49232.rs:+9:5: +9:6
return; // scope 0 at $DIR/issue_49232.rs:+10:2: +10:2
}
bb11 (cleanup): {
resume; // scope 0 at $DIR/issue-49232.rs:+0:1: +10:2
resume; // scope 0 at $DIR/issue_49232.rs:+0:1: +10:2
}
}

View file

@ -1,96 +1,96 @@
// MIR for `main` after built
| User Type Annotations
| 0: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut Test) }, span: $DIR/receiver-ptr-mutability.rs:14:14: 14:23, inferred_ty: *mut Test
| 1: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut Test) }, span: $DIR/receiver-ptr-mutability.rs:14:14: 14:23, inferred_ty: *mut Test
| 2: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: Ty(&&&&*mut Test) }, span: $DIR/receiver-ptr-mutability.rs:18:18: 18:31, inferred_ty: &&&&*mut Test
| 3: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: Ty(&&&&*mut Test) }, span: $DIR/receiver-ptr-mutability.rs:18:18: 18:31, inferred_ty: &&&&*mut Test
| 0: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut Test) }, span: $DIR/receiver_ptr_mutability.rs:14:14: 14:23, inferred_ty: *mut Test
| 1: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut Test) }, span: $DIR/receiver_ptr_mutability.rs:14:14: 14:23, inferred_ty: *mut Test
| 2: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: Ty(&&&&*mut Test) }, span: $DIR/receiver_ptr_mutability.rs:18:18: 18:31, inferred_ty: &&&&*mut Test
| 3: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: Ty(&&&&*mut Test) }, span: $DIR/receiver_ptr_mutability.rs:18:18: 18:31, inferred_ty: &&&&*mut Test
|
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/receiver-ptr-mutability.rs:+0:11: +0:11
let _1: *mut Test as UserTypeProjection { base: UserType(0), projs: [] }; // in scope 0 at $DIR/receiver-ptr-mutability.rs:+1:9: +1:12
let _2: (); // in scope 0 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
let mut _3: *const Test; // in scope 0 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
let mut _4: *mut Test; // in scope 0 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:8
let _6: &&&&*mut Test; // in scope 0 at $DIR/receiver-ptr-mutability.rs:+5:34: +5:41
let _7: &&&*mut Test; // in scope 0 at $DIR/receiver-ptr-mutability.rs:+5:35: +5:41
let _8: &&*mut Test; // in scope 0 at $DIR/receiver-ptr-mutability.rs:+5:36: +5:41
let _9: &*mut Test; // in scope 0 at $DIR/receiver-ptr-mutability.rs:+5:37: +5:41
let _10: (); // in scope 0 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
let mut _11: *const Test; // in scope 0 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
let mut _12: *mut Test; // in scope 0 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
let mut _0: (); // return place in scope 0 at $DIR/receiver_ptr_mutability.rs:+0:11: +0:11
let _1: *mut Test as UserTypeProjection { base: UserType(0), projs: [] }; // in scope 0 at $DIR/receiver_ptr_mutability.rs:+1:9: +1:12
let _2: (); // in scope 0 at $DIR/receiver_ptr_mutability.rs:+2:5: +2:12
let mut _3: *const Test; // in scope 0 at $DIR/receiver_ptr_mutability.rs:+2:5: +2:12
let mut _4: *mut Test; // in scope 0 at $DIR/receiver_ptr_mutability.rs:+2:5: +2:8
let _6: &&&&*mut Test; // in scope 0 at $DIR/receiver_ptr_mutability.rs:+5:34: +5:41
let _7: &&&*mut Test; // in scope 0 at $DIR/receiver_ptr_mutability.rs:+5:35: +5:41
let _8: &&*mut Test; // in scope 0 at $DIR/receiver_ptr_mutability.rs:+5:36: +5:41
let _9: &*mut Test; // in scope 0 at $DIR/receiver_ptr_mutability.rs:+5:37: +5:41
let _10: (); // in scope 0 at $DIR/receiver_ptr_mutability.rs:+6:5: +6:16
let mut _11: *const Test; // in scope 0 at $DIR/receiver_ptr_mutability.rs:+6:5: +6:16
let mut _12: *mut Test; // in scope 0 at $DIR/receiver_ptr_mutability.rs:+6:5: +6:16
scope 1 {
debug ptr => _1; // in scope 1 at $DIR/receiver-ptr-mutability.rs:+1:9: +1:12
let _5: &&&&*mut Test as UserTypeProjection { base: UserType(2), projs: [] }; // in scope 1 at $DIR/receiver-ptr-mutability.rs:+5:9: +5:16
debug ptr => _1; // in scope 1 at $DIR/receiver_ptr_mutability.rs:+1:9: +1:12
let _5: &&&&*mut Test as UserTypeProjection { base: UserType(2), projs: [] }; // in scope 1 at $DIR/receiver_ptr_mutability.rs:+5:9: +5:16
scope 2 {
debug ptr_ref => _5; // in scope 2 at $DIR/receiver-ptr-mutability.rs:+5:9: +5:16
debug ptr_ref => _5; // in scope 2 at $DIR/receiver_ptr_mutability.rs:+5:9: +5:16
}
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/receiver-ptr-mutability.rs:+1:9: +1:12
_1 = null_mut::<Test>() -> [return: bb1, unwind: bb4]; // scope 0 at $DIR/receiver-ptr-mutability.rs:+1:26: +1:46
StorageLive(_1); // scope 0 at $DIR/receiver_ptr_mutability.rs:+1:9: +1:12
_1 = null_mut::<Test>() -> [return: bb1, unwind: bb4]; // scope 0 at $DIR/receiver_ptr_mutability.rs:+1:26: +1:46
// mir::Constant
// + span: $DIR/receiver-ptr-mutability.rs:14:26: 14:44
// + span: $DIR/receiver_ptr_mutability.rs:14:26: 14:44
// + literal: Const { ty: fn() -> *mut Test {null_mut::<Test>}, val: Value(<ZST>) }
}
bb1: {
FakeRead(ForLet(None), _1); // scope 0 at $DIR/receiver-ptr-mutability.rs:+1:9: +1:12
AscribeUserType(_1, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 0 at $DIR/receiver-ptr-mutability.rs:+1:14: +1:23
StorageLive(_2); // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
StorageLive(_3); // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
StorageLive(_4); // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:8
_4 = _1; // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:8
_3 = move _4 as *const Test (Pointer(MutToConstPointer)); // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
StorageDead(_4); // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:7: +2:8
_2 = Test::x(move _3) -> [return: bb2, unwind: bb4]; // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
FakeRead(ForLet(None), _1); // scope 0 at $DIR/receiver_ptr_mutability.rs:+1:9: +1:12
AscribeUserType(_1, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 0 at $DIR/receiver_ptr_mutability.rs:+1:14: +1:23
StorageLive(_2); // scope 1 at $DIR/receiver_ptr_mutability.rs:+2:5: +2:12
StorageLive(_3); // scope 1 at $DIR/receiver_ptr_mutability.rs:+2:5: +2:12
StorageLive(_4); // scope 1 at $DIR/receiver_ptr_mutability.rs:+2:5: +2:8
_4 = _1; // scope 1 at $DIR/receiver_ptr_mutability.rs:+2:5: +2:8
_3 = move _4 as *const Test (Pointer(MutToConstPointer)); // scope 1 at $DIR/receiver_ptr_mutability.rs:+2:5: +2:12
StorageDead(_4); // scope 1 at $DIR/receiver_ptr_mutability.rs:+2:7: +2:8
_2 = Test::x(move _3) -> [return: bb2, unwind: bb4]; // scope 1 at $DIR/receiver_ptr_mutability.rs:+2:5: +2:12
// mir::Constant
// + span: $DIR/receiver-ptr-mutability.rs:15:9: 15:10
// + span: $DIR/receiver_ptr_mutability.rs:15:9: 15:10
// + literal: Const { ty: fn(*const Test) {Test::x}, val: Value(<ZST>) }
}
bb2: {
StorageDead(_3); // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:11: +2:12
StorageDead(_2); // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:12: +2:13
StorageLive(_5); // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:9: +5:16
StorageLive(_6); // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:34: +5:41
StorageLive(_7); // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:35: +5:41
StorageLive(_8); // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:36: +5:41
StorageLive(_9); // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:37: +5:41
_9 = &_1; // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:37: +5:41
_8 = &_9; // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:36: +5:41
_7 = &_8; // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:35: +5:41
_6 = &_7; // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:34: +5:41
_5 = &(*_6); // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:34: +5:41
FakeRead(ForLet(None), _5); // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:9: +5:16
AscribeUserType(_5, o, UserTypeProjection { base: UserType(3), projs: [] }); // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:18: +5:31
StorageDead(_6); // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:41: +5:42
StorageLive(_10); // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
StorageLive(_11); // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
StorageLive(_12); // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
_12 = (*(*(*(*_5)))); // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
_11 = move _12 as *const Test (Pointer(MutToConstPointer)); // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
StorageDead(_12); // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:11: +6:12
_10 = Test::x(move _11) -> [return: bb3, unwind: bb4]; // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
StorageDead(_3); // scope 1 at $DIR/receiver_ptr_mutability.rs:+2:11: +2:12
StorageDead(_2); // scope 1 at $DIR/receiver_ptr_mutability.rs:+2:12: +2:13
StorageLive(_5); // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:9: +5:16
StorageLive(_6); // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:34: +5:41
StorageLive(_7); // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:35: +5:41
StorageLive(_8); // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:36: +5:41
StorageLive(_9); // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:37: +5:41
_9 = &_1; // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:37: +5:41
_8 = &_9; // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:36: +5:41
_7 = &_8; // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:35: +5:41
_6 = &_7; // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:34: +5:41
_5 = &(*_6); // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:34: +5:41
FakeRead(ForLet(None), _5); // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:9: +5:16
AscribeUserType(_5, o, UserTypeProjection { base: UserType(3), projs: [] }); // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:18: +5:31
StorageDead(_6); // scope 1 at $DIR/receiver_ptr_mutability.rs:+5:41: +5:42
StorageLive(_10); // scope 2 at $DIR/receiver_ptr_mutability.rs:+6:5: +6:16
StorageLive(_11); // scope 2 at $DIR/receiver_ptr_mutability.rs:+6:5: +6:16
StorageLive(_12); // scope 2 at $DIR/receiver_ptr_mutability.rs:+6:5: +6:16
_12 = (*(*(*(*_5)))); // scope 2 at $DIR/receiver_ptr_mutability.rs:+6:5: +6:16
_11 = move _12 as *const Test (Pointer(MutToConstPointer)); // scope 2 at $DIR/receiver_ptr_mutability.rs:+6:5: +6:16
StorageDead(_12); // scope 2 at $DIR/receiver_ptr_mutability.rs:+6:11: +6:12
_10 = Test::x(move _11) -> [return: bb3, unwind: bb4]; // scope 2 at $DIR/receiver_ptr_mutability.rs:+6:5: +6:16
// mir::Constant
// + span: $DIR/receiver-ptr-mutability.rs:19:13: 19:14
// + span: $DIR/receiver_ptr_mutability.rs:19:13: 19:14
// + literal: Const { ty: fn(*const Test) {Test::x}, val: Value(<ZST>) }
}
bb3: {
StorageDead(_11); // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:15: +6:16
StorageDead(_10); // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:16: +6:17
_0 = const (); // scope 0 at $DIR/receiver-ptr-mutability.rs:+0:11: +7:2
StorageDead(_9); // scope 1 at $DIR/receiver-ptr-mutability.rs:+7:1: +7:2
StorageDead(_8); // scope 1 at $DIR/receiver-ptr-mutability.rs:+7:1: +7:2
StorageDead(_7); // scope 1 at $DIR/receiver-ptr-mutability.rs:+7:1: +7:2
StorageDead(_5); // scope 1 at $DIR/receiver-ptr-mutability.rs:+7:1: +7:2
StorageDead(_1); // scope 0 at $DIR/receiver-ptr-mutability.rs:+7:1: +7:2
return; // scope 0 at $DIR/receiver-ptr-mutability.rs:+7:2: +7:2
StorageDead(_11); // scope 2 at $DIR/receiver_ptr_mutability.rs:+6:15: +6:16
StorageDead(_10); // scope 2 at $DIR/receiver_ptr_mutability.rs:+6:16: +6:17
_0 = const (); // scope 0 at $DIR/receiver_ptr_mutability.rs:+0:11: +7:2
StorageDead(_9); // scope 1 at $DIR/receiver_ptr_mutability.rs:+7:1: +7:2
StorageDead(_8); // scope 1 at $DIR/receiver_ptr_mutability.rs:+7:1: +7:2
StorageDead(_7); // scope 1 at $DIR/receiver_ptr_mutability.rs:+7:1: +7:2
StorageDead(_5); // scope 1 at $DIR/receiver_ptr_mutability.rs:+7:1: +7:2
StorageDead(_1); // scope 0 at $DIR/receiver_ptr_mutability.rs:+7:1: +7:2
return; // scope 0 at $DIR/receiver_ptr_mutability.rs:+7:2: +7:2
}
bb4 (cleanup): {
resume; // scope 0 at $DIR/receiver-ptr-mutability.rs:+0:1: +7:2
resume; // scope 0 at $DIR/receiver_ptr_mutability.rs:+0:1: +7:2
}
}

View file

@ -1,29 +1,29 @@
// MIR for `match_bool` after built
fn match_bool(_1: bool) -> usize {
debug x => _1; // in scope 0 at $DIR/simple-match.rs:+0:15: +0:16
let mut _0: usize; // return place in scope 0 at $DIR/simple-match.rs:+0:27: +0:32
debug x => _1; // in scope 0 at $DIR/simple_match.rs:+0:15: +0:16
let mut _0: usize; // return place in scope 0 at $DIR/simple_match.rs:+0:27: +0:32
bb0: {
FakeRead(ForMatchedPlace(None), _1); // scope 0 at $DIR/simple-match.rs:+1:11: +1:12
switchInt(_1) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/simple-match.rs:+1:5: +1:12
FakeRead(ForMatchedPlace(None), _1); // scope 0 at $DIR/simple_match.rs:+1:11: +1:12
switchInt(_1) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/simple_match.rs:+1:5: +1:12
}
bb1: {
falseEdge -> [real: bb3, imaginary: bb2]; // scope 0 at $DIR/simple-match.rs:+2:9: +2:13
falseEdge -> [real: bb3, imaginary: bb2]; // scope 0 at $DIR/simple_match.rs:+2:9: +2:13
}
bb2: {
_0 = const 20_usize; // scope 0 at $DIR/simple-match.rs:+3:14: +3:16
goto -> bb4; // scope 0 at $DIR/simple-match.rs:+3:14: +3:16
_0 = const 20_usize; // scope 0 at $DIR/simple_match.rs:+3:14: +3:16
goto -> bb4; // scope 0 at $DIR/simple_match.rs:+3:14: +3:16
}
bb3: {
_0 = const 10_usize; // scope 0 at $DIR/simple-match.rs:+2:17: +2:19
goto -> bb4; // scope 0 at $DIR/simple-match.rs:+2:17: +2:19
_0 = const 10_usize; // scope 0 at $DIR/simple_match.rs:+2:17: +2:19
goto -> bb4; // scope 0 at $DIR/simple_match.rs:+2:17: +2:19
}
bb4: {
return; // scope 0 at $DIR/simple-match.rs:+5:2: +5:2
return; // scope 0 at $DIR/simple_match.rs:+5:2: +5:2
}
}

View file

@ -1,20 +1,20 @@
// MIR for `BAR::promoted[0]` after SimplifyCfg-elaborate-drops
promoted[0] in BAR: &[&i32; 1] = {
let mut _0: &[&i32; 1]; // return place in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
let mut _1: [&i32; 1]; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:35
let mut _2: &i32; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:32: +0:34
let mut _3: &i32; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:33: +0:34
let mut _0: &[&i32; 1]; // return place in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
let mut _1: [&i32; 1]; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:35
let mut _2: &i32; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:32: +0:34
let mut _3: &i32; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:33: +0:34
bb0: {
_3 = const {alloc1: &i32}; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:33: +0:34
_3 = const {alloc1: &i32}; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:33: +0:34
// mir::Constant
// + span: $DIR/const-promotion-extern-static.rs:9:33: 9:34
// + span: $DIR/const_promotion_extern_static.rs:9:33: 9:34
// + literal: Const { ty: &i32, val: Value(Scalar(alloc1)) }
_2 = &(*_3); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:32: +0:34
_1 = [move _2]; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:35
_0 = &_1; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
return; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
_2 = &(*_3); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:32: +0:34
_1 = [move _2]; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:35
_0 = &_1; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
return; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
}
}

View file

@ -2,49 +2,49 @@
+ // MIR for `BAR` after PromoteTemps
static mut BAR: *const &i32 = {
let mut _0: *const &i32; // return place in scope 0 at $DIR/const-promotion-extern-static.rs:+0:17: +0:28
let mut _1: &[&i32]; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
let mut _2: &[&i32; 1]; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
let _3: [&i32; 1]; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:35
let mut _4: &i32; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:32: +0:34
let _5: &i32; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:33: +0:34
+ let mut _6: &[&i32; 1]; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
let mut _0: *const &i32; // return place in scope 0 at $DIR/const_promotion_extern_static.rs:+0:17: +0:28
let mut _1: &[&i32]; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
let mut _2: &[&i32; 1]; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
let _3: [&i32; 1]; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:35
let mut _4: &i32; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:32: +0:34
let _5: &i32; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:33: +0:34
+ let mut _6: &[&i32; 1]; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
bb0: {
StorageLive(_1); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
StorageLive(_2); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
- StorageLive(_3); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:35
- StorageLive(_4); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:32: +0:34
- StorageLive(_5); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:33: +0:34
- _5 = const {alloc1: &i32}; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:33: +0:34
+ _6 = const _; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
StorageLive(_1); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
StorageLive(_2); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
- StorageLive(_3); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:35
- StorageLive(_4); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:32: +0:34
- StorageLive(_5); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:33: +0:34
- _5 = const {alloc1: &i32}; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:33: +0:34
+ _6 = const _; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
// mir::Constant
- // + span: $DIR/const-promotion-extern-static.rs:9:33: 9:34
- // + span: $DIR/const_promotion_extern_static.rs:9:33: 9:34
- // + literal: Const { ty: &i32, val: Value(Scalar(alloc1)) }
- _4 = &(*_5); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:32: +0:34
- _3 = [move _4]; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:35
- _2 = &_3; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
+ // + span: $DIR/const-promotion-extern-static.rs:9:31: 9:44
- _4 = &(*_5); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:32: +0:34
- _3 = [move _4]; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:35
- _2 = &_3; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
+ // + span: $DIR/const_promotion_extern_static.rs:9:31: 9:44
+ // + literal: Const { ty: &[&i32; 1], val: Unevaluated(BAR, [], Some(promoted[0])) }
+ _2 = &(*_6); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
_1 = move _2 as &[&i32] (Pointer(Unsize)); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
- StorageDead(_4); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:34: +0:35
StorageDead(_2); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:34: +0:35
_0 = core::slice::<impl [&i32]>::as_ptr(move _1) -> [return: bb1, unwind: bb2]; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:44
+ _2 = &(*_6); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
_1 = move _2 as &[&i32] (Pointer(Unsize)); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
- StorageDead(_4); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:34: +0:35
StorageDead(_2); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:34: +0:35
_0 = core::slice::<impl [&i32]>::as_ptr(move _1) -> [return: bb1, unwind: bb2]; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:44
// mir::Constant
// + span: $DIR/const-promotion-extern-static.rs:9:36: 9:42
// + span: $DIR/const_promotion_extern_static.rs:9:36: 9:42
// + literal: Const { ty: for<'a> fn(&'a [&i32]) -> *const &i32 {core::slice::<impl [&i32]>::as_ptr}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_5); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:43: +0:44
- StorageDead(_3); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:43: +0:44
StorageDead(_1); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:43: +0:44
return; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:1: +0:45
- StorageDead(_5); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:43: +0:44
- StorageDead(_3); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:43: +0:44
StorageDead(_1); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:43: +0:44
return; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:1: +0:45
}
bb2 (cleanup): {
resume; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:1: +0:45
resume; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:1: +0:45
}
- }
-

View file

@ -1,17 +1,17 @@
// MIR for `BOP` after built
static BOP: &i32 = {
let mut _0: &i32; // return place in scope 0 at $DIR/const-promotion-extern-static.rs:+0:13: +0:17
let _1: &i32; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:20: +0:23
let _2: i32; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:21: +0:23
let mut _0: &i32; // return place in scope 0 at $DIR/const_promotion_extern_static.rs:+0:13: +0:17
let _1: &i32; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:20: +0:23
let _2: i32; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:21: +0:23
bb0: {
StorageLive(_1); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:20: +0:23
StorageLive(_2); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:21: +0:23
_2 = const 13_i32; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:21: +0:23
_1 = &_2; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:20: +0:23
_0 = &(*_1); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:20: +0:23
StorageDead(_1); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:22: +0:23
return; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:1: +0:24
StorageLive(_1); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:20: +0:23
StorageLive(_2); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:21: +0:23
_2 = const 13_i32; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:21: +0:23
_1 = &_2; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:20: +0:23
_0 = &(*_1); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:20: +0:23
StorageDead(_1); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:22: +0:23
return; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:1: +0:24
}
}

View file

@ -1,20 +1,20 @@
// MIR for `FOO::promoted[0]` after SimplifyCfg-elaborate-drops
promoted[0] in FOO: &[&i32; 1] = {
let mut _0: &[&i32; 1]; // return place in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
let mut _1: [&i32; 1]; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:46
let mut _2: &i32; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:32: +0:45
let mut _3: *const i32; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:42: +0:43
let mut _0: &[&i32; 1]; // return place in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
let mut _1: [&i32; 1]; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:46
let mut _2: &i32; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:32: +0:45
let mut _3: *const i32; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:42: +0:43
bb0: {
_3 = const {alloc3: *const i32}; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:42: +0:43
_3 = const {alloc3: *const i32}; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:42: +0:43
// mir::Constant
// + span: $DIR/const-promotion-extern-static.rs:13:42: 13:43
// + span: $DIR/const_promotion_extern_static.rs:13:42: 13:43
// + literal: Const { ty: *const i32, val: Value(Scalar(alloc3)) }
_2 = &(*_3); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:41: +0:43
_1 = [move _2]; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:46
_0 = &_1; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
return; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
_2 = &(*_3); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:41: +0:43
_1 = [move _2]; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:46
_0 = &_1; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
return; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
}
}

View file

@ -2,51 +2,51 @@
+ // MIR for `FOO` after PromoteTemps
static mut FOO: *const &i32 = {
let mut _0: *const &i32; // return place in scope 0 at $DIR/const-promotion-extern-static.rs:+0:17: +0:28
let mut _1: &[&i32]; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
let mut _2: &[&i32; 1]; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
let _3: [&i32; 1]; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:46
let mut _4: &i32; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:32: +0:45
let _5: *const i32; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:42: +0:43
+ let mut _6: &[&i32; 1]; // in scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
let mut _0: *const &i32; // return place in scope 0 at $DIR/const_promotion_extern_static.rs:+0:17: +0:28
let mut _1: &[&i32]; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
let mut _2: &[&i32; 1]; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
let _3: [&i32; 1]; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:46
let mut _4: &i32; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:32: +0:45
let _5: *const i32; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:42: +0:43
+ let mut _6: &[&i32; 1]; // in scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
scope 1 {
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
StorageLive(_2); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
- StorageLive(_3); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:46
- StorageLive(_4); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:32: +0:45
- StorageLive(_5); // scope 1 at $DIR/const-promotion-extern-static.rs:+0:42: +0:43
- _5 = const {alloc3: *const i32}; // scope 1 at $DIR/const-promotion-extern-static.rs:+0:42: +0:43
+ _6 = const _; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
StorageLive(_1); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
StorageLive(_2); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
- StorageLive(_3); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:46
- StorageLive(_4); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:32: +0:45
- StorageLive(_5); // scope 1 at $DIR/const_promotion_extern_static.rs:+0:42: +0:43
- _5 = const {alloc3: *const i32}; // scope 1 at $DIR/const_promotion_extern_static.rs:+0:42: +0:43
+ _6 = const _; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
// mir::Constant
- // + span: $DIR/const-promotion-extern-static.rs:13:42: 13:43
- // + span: $DIR/const_promotion_extern_static.rs:13:42: 13:43
- // + literal: Const { ty: *const i32, val: Value(Scalar(alloc3)) }
- _4 = &(*_5); // scope 1 at $DIR/const-promotion-extern-static.rs:+0:41: +0:43
- _3 = [move _4]; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:46
- _2 = &_3; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
+ // + span: $DIR/const-promotion-extern-static.rs:13:31: 13:55
- _4 = &(*_5); // scope 1 at $DIR/const_promotion_extern_static.rs:+0:41: +0:43
- _3 = [move _4]; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:46
- _2 = &_3; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
+ // + span: $DIR/const_promotion_extern_static.rs:13:31: 13:55
+ // + literal: Const { ty: &[&i32; 1], val: Unevaluated(FOO, [], Some(promoted[0])) }
+ _2 = &(*_6); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
_1 = move _2 as &[&i32] (Pointer(Unsize)); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
- StorageDead(_4); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:45: +0:46
StorageDead(_2); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:45: +0:46
_0 = core::slice::<impl [&i32]>::as_ptr(move _1) -> [return: bb1, unwind: bb2]; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:31: +0:55
+ _2 = &(*_6); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
_1 = move _2 as &[&i32] (Pointer(Unsize)); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
- StorageDead(_4); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:45: +0:46
StorageDead(_2); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:45: +0:46
_0 = core::slice::<impl [&i32]>::as_ptr(move _1) -> [return: bb1, unwind: bb2]; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:31: +0:55
// mir::Constant
// + span: $DIR/const-promotion-extern-static.rs:13:47: 13:53
// + span: $DIR/const_promotion_extern_static.rs:13:47: 13:53
// + literal: Const { ty: for<'a> fn(&'a [&i32]) -> *const &i32 {core::slice::<impl [&i32]>::as_ptr}, val: Value(<ZST>) }
}
bb1: {
- StorageDead(_5); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:54: +0:55
- StorageDead(_3); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:54: +0:55
StorageDead(_1); // scope 0 at $DIR/const-promotion-extern-static.rs:+0:54: +0:55
return; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:1: +0:56
- StorageDead(_5); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:54: +0:55
- StorageDead(_3); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:54: +0:55
StorageDead(_1); // scope 0 at $DIR/const_promotion_extern_static.rs:+0:54: +0:55
return; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:1: +0:56
}
bb2 (cleanup): {
resume; // scope 0 at $DIR/const-promotion-extern-static.rs:+0:1: +0:56
resume; // scope 0 at $DIR/const_promotion_extern_static.rs:+0:1: +0:56
}
}
-

View file

@ -2,15 +2,15 @@
+ // MIR for `hello` after ConstProp
fn hello() -> () {
let mut _0: (); // return place in scope 0 at $DIR/control-flow-simplification.rs:+0:14: +0:14
let mut _1: bool; // in scope 0 at $DIR/control-flow-simplification.rs:+1:8: +1:21
let mut _0: (); // return place in scope 0 at $DIR/control_flow_simplification.rs:+0:14: +0:14
let mut _1: bool; // in scope 0 at $DIR/control_flow_simplification.rs:+1:8: +1:21
let mut _2: !; // in scope 0 at $SRC_DIR/std/src/panic.rs:LL:COL
bb0: {
StorageLive(_1); // scope 0 at $DIR/control-flow-simplification.rs:+1:8: +1:21
_1 = const _; // scope 0 at $DIR/control-flow-simplification.rs:+1:8: +1:21
- switchInt(move _1) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/control-flow-simplification.rs:+1:8: +1:21
+ switchInt(const false) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/control-flow-simplification.rs:+1:8: +1:21
StorageLive(_1); // scope 0 at $DIR/control_flow_simplification.rs:+1:8: +1:21
_1 = const _; // scope 0 at $DIR/control_flow_simplification.rs:+1:8: +1:21
- switchInt(move _1) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/control_flow_simplification.rs:+1:8: +1:21
+ switchInt(const false) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/control_flow_simplification.rs:+1:8: +1:21
}
bb1: {
@ -25,9 +25,9 @@
}
bb2: {
nop; // scope 0 at $DIR/control-flow-simplification.rs:+3:6: +3:6
StorageDead(_1); // scope 0 at $DIR/control-flow-simplification.rs:+3:5: +3:6
return; // scope 0 at $DIR/control-flow-simplification.rs:+4:2: +4:2
nop; // scope 0 at $DIR/control_flow_simplification.rs:+3:6: +3:6
StorageDead(_1); // scope 0 at $DIR/control_flow_simplification.rs:+3:5: +3:6
return; // scope 0 at $DIR/control_flow_simplification.rs:+4:2: +4:2
}
}

View file

@ -1,9 +1,9 @@
// MIR for `hello` before PreCodegen
fn hello() -> () {
let mut _0: (); // return place in scope 0 at $DIR/control-flow-simplification.rs:+0:14: +0:14
let mut _0: (); // return place in scope 0 at $DIR/control_flow_simplification.rs:+0:14: +0:14
bb0: {
return; // scope 0 at $DIR/control-flow-simplification.rs:+4:2: +4:2
return; // scope 0 at $DIR/control_flow_simplification.rs:+4:2: +4:2
}
}

View file

@ -2,32 +2,32 @@
+ // MIR for `main` after ConstProp
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/issue-66971.rs:+0:11: +0:11
let _1: (); // in scope 0 at $DIR/issue-66971.rs:+1:5: +1:23
let mut _2: ((), u8, u8); // in scope 0 at $DIR/issue-66971.rs:+1:12: +1:22
let mut _3: (); // in scope 0 at $DIR/issue-66971.rs:+1:13: +1:15
let mut _0: (); // return place in scope 0 at $DIR/issue_66971.rs:+0:11: +0:11
let _1: (); // in scope 0 at $DIR/issue_66971.rs:+1:5: +1:23
let mut _2: ((), u8, u8); // in scope 0 at $DIR/issue_66971.rs:+1:12: +1:22
let mut _3: (); // in scope 0 at $DIR/issue_66971.rs:+1:13: +1:15
bb0: {
StorageLive(_1); // scope 0 at $DIR/issue-66971.rs:+1:5: +1:23
StorageLive(_2); // scope 0 at $DIR/issue-66971.rs:+1:12: +1:22
StorageLive(_3); // scope 0 at $DIR/issue-66971.rs:+1:13: +1:15
nop; // scope 0 at $DIR/issue-66971.rs:+1:13: +1:15
Deinit(_2); // scope 0 at $DIR/issue-66971.rs:+1:12: +1:22
nop; // scope 0 at $DIR/issue-66971.rs:+1:12: +1:22
(_2.1: u8) = const 0_u8; // scope 0 at $DIR/issue-66971.rs:+1:12: +1:22
(_2.2: u8) = const 0_u8; // scope 0 at $DIR/issue-66971.rs:+1:12: +1:22
StorageDead(_3); // scope 0 at $DIR/issue-66971.rs:+1:21: +1:22
_1 = encode(move _2) -> bb1; // scope 0 at $DIR/issue-66971.rs:+1:5: +1:23
StorageLive(_1); // scope 0 at $DIR/issue_66971.rs:+1:5: +1:23
StorageLive(_2); // scope 0 at $DIR/issue_66971.rs:+1:12: +1:22
StorageLive(_3); // scope 0 at $DIR/issue_66971.rs:+1:13: +1:15
nop; // scope 0 at $DIR/issue_66971.rs:+1:13: +1:15
Deinit(_2); // scope 0 at $DIR/issue_66971.rs:+1:12: +1:22
nop; // scope 0 at $DIR/issue_66971.rs:+1:12: +1:22
(_2.1: u8) = const 0_u8; // scope 0 at $DIR/issue_66971.rs:+1:12: +1:22
(_2.2: u8) = const 0_u8; // scope 0 at $DIR/issue_66971.rs:+1:12: +1:22
StorageDead(_3); // scope 0 at $DIR/issue_66971.rs:+1:21: +1:22
_1 = encode(move _2) -> bb1; // scope 0 at $DIR/issue_66971.rs:+1:5: +1:23
// mir::Constant
// + span: $DIR/issue-66971.rs:17:5: 17:11
// + span: $DIR/issue_66971.rs:17:5: 17:11
// + literal: Const { ty: fn(((), u8, u8)) {encode}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_2); // scope 0 at $DIR/issue-66971.rs:+1:22: +1:23
StorageDead(_1); // scope 0 at $DIR/issue-66971.rs:+1:23: +1:24
nop; // scope 0 at $DIR/issue-66971.rs:+0:11: +2:2
return; // scope 0 at $DIR/issue-66971.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/issue_66971.rs:+1:22: +1:23
StorageDead(_1); // scope 0 at $DIR/issue_66971.rs:+1:23: +1:24
nop; // scope 0 at $DIR/issue_66971.rs:+0:11: +2:2
return; // scope 0 at $DIR/issue_66971.rs:+2:2: +2:2
}
}

View file

@ -2,33 +2,33 @@
+ // MIR for `main` after ConstProp
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/issue-67019.rs:+0:11: +0:11
let _1: (); // in scope 0 at $DIR/issue-67019.rs:+1:5: +1:20
let mut _2: ((u8, u8),); // in scope 0 at $DIR/issue-67019.rs:+1:10: +1:19
let mut _3: (u8, u8); // in scope 0 at $DIR/issue-67019.rs:+1:11: +1:17
let mut _0: (); // return place in scope 0 at $DIR/issue_67019.rs:+0:11: +0:11
let _1: (); // in scope 0 at $DIR/issue_67019.rs:+1:5: +1:20
let mut _2: ((u8, u8),); // in scope 0 at $DIR/issue_67019.rs:+1:10: +1:19
let mut _3: (u8, u8); // in scope 0 at $DIR/issue_67019.rs:+1:11: +1:17
bb0: {
StorageLive(_1); // scope 0 at $DIR/issue-67019.rs:+1:5: +1:20
StorageLive(_2); // scope 0 at $DIR/issue-67019.rs:+1:10: +1:19
StorageLive(_3); // scope 0 at $DIR/issue-67019.rs:+1:11: +1:17
Deinit(_3); // scope 0 at $DIR/issue-67019.rs:+1:11: +1:17
(_3.0: u8) = const 1_u8; // scope 0 at $DIR/issue-67019.rs:+1:11: +1:17
(_3.1: u8) = const 2_u8; // scope 0 at $DIR/issue-67019.rs:+1:11: +1:17
Deinit(_2); // scope 0 at $DIR/issue-67019.rs:+1:10: +1:19
- (_2.0: (u8, u8)) = move _3; // scope 0 at $DIR/issue-67019.rs:+1:10: +1:19
+ (_2.0: (u8, u8)) = const (1_u8, 2_u8); // scope 0 at $DIR/issue-67019.rs:+1:10: +1:19
StorageDead(_3); // scope 0 at $DIR/issue-67019.rs:+1:18: +1:19
_1 = test(move _2) -> bb1; // scope 0 at $DIR/issue-67019.rs:+1:5: +1:20
StorageLive(_1); // scope 0 at $DIR/issue_67019.rs:+1:5: +1:20
StorageLive(_2); // scope 0 at $DIR/issue_67019.rs:+1:10: +1:19
StorageLive(_3); // scope 0 at $DIR/issue_67019.rs:+1:11: +1:17
Deinit(_3); // scope 0 at $DIR/issue_67019.rs:+1:11: +1:17
(_3.0: u8) = const 1_u8; // scope 0 at $DIR/issue_67019.rs:+1:11: +1:17
(_3.1: u8) = const 2_u8; // scope 0 at $DIR/issue_67019.rs:+1:11: +1:17
Deinit(_2); // scope 0 at $DIR/issue_67019.rs:+1:10: +1:19
- (_2.0: (u8, u8)) = move _3; // scope 0 at $DIR/issue_67019.rs:+1:10: +1:19
+ (_2.0: (u8, u8)) = const (1_u8, 2_u8); // scope 0 at $DIR/issue_67019.rs:+1:10: +1:19
StorageDead(_3); // scope 0 at $DIR/issue_67019.rs:+1:18: +1:19
_1 = test(move _2) -> bb1; // scope 0 at $DIR/issue_67019.rs:+1:5: +1:20
// mir::Constant
// + span: $DIR/issue-67019.rs:12:5: 12:9
// + span: $DIR/issue_67019.rs:12:5: 12:9
// + literal: Const { ty: fn(((u8, u8),)) {test}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_2); // scope 0 at $DIR/issue-67019.rs:+1:19: +1:20
StorageDead(_1); // scope 0 at $DIR/issue-67019.rs:+1:20: +1:21
nop; // scope 0 at $DIR/issue-67019.rs:+0:11: +2:2
return; // scope 0 at $DIR/issue-67019.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/issue_67019.rs:+1:19: +1:20
StorageDead(_1); // scope 0 at $DIR/issue_67019.rs:+1:20: +1:21
nop; // scope 0 at $DIR/issue_67019.rs:+0:11: +2:2
return; // scope 0 at $DIR/issue_67019.rs:+2:2: +2:2
}
}

View file

@ -1,83 +1,83 @@
// MIR for `match_tuple` after SimplifyCfg-initial
fn match_tuple(_1: (u32, bool, Option<i32>, u32)) -> u32 {
debug x => _1; // in scope 0 at $DIR/exponential-or.rs:+0:16: +0:17
let mut _0: u32; // return place in scope 0 at $DIR/exponential-or.rs:+0:53: +0:56
let mut _2: isize; // in scope 0 at $DIR/exponential-or.rs:+2:37: +2:48
let mut _3: bool; // in scope 0 at $DIR/exponential-or.rs:+2:70: +2:77
let mut _4: bool; // in scope 0 at $DIR/exponential-or.rs:+2:70: +2:77
let mut _5: bool; // in scope 0 at $DIR/exponential-or.rs:+2:62: +2:67
let mut _6: bool; // in scope 0 at $DIR/exponential-or.rs:+2:62: +2:67
let _7: u32; // in scope 0 at $DIR/exponential-or.rs:+2:10: +2:11
let _8: u32; // in scope 0 at $DIR/exponential-or.rs:+2:57: +2:58
let mut _9: u32; // in scope 0 at $DIR/exponential-or.rs:+2:83: +2:84
let mut _10: u32; // in scope 0 at $DIR/exponential-or.rs:+2:87: +2:88
debug x => _1; // in scope 0 at $DIR/exponential_or.rs:+0:16: +0:17
let mut _0: u32; // return place in scope 0 at $DIR/exponential_or.rs:+0:53: +0:56
let mut _2: isize; // in scope 0 at $DIR/exponential_or.rs:+2:37: +2:48
let mut _3: bool; // in scope 0 at $DIR/exponential_or.rs:+2:70: +2:77
let mut _4: bool; // in scope 0 at $DIR/exponential_or.rs:+2:70: +2:77
let mut _5: bool; // in scope 0 at $DIR/exponential_or.rs:+2:62: +2:67
let mut _6: bool; // in scope 0 at $DIR/exponential_or.rs:+2:62: +2:67
let _7: u32; // in scope 0 at $DIR/exponential_or.rs:+2:10: +2:11
let _8: u32; // in scope 0 at $DIR/exponential_or.rs:+2:57: +2:58
let mut _9: u32; // in scope 0 at $DIR/exponential_or.rs:+2:83: +2:84
let mut _10: u32; // in scope 0 at $DIR/exponential_or.rs:+2:87: +2:88
scope 1 {
debug y => _7; // in scope 1 at $DIR/exponential-or.rs:+2:10: +2:11
debug z => _8; // in scope 1 at $DIR/exponential-or.rs:+2:57: +2:58
debug y => _7; // in scope 1 at $DIR/exponential_or.rs:+2:10: +2:11
debug z => _8; // in scope 1 at $DIR/exponential_or.rs:+2:57: +2:58
}
bb0: {
FakeRead(ForMatchedPlace(None), _1); // scope 0 at $DIR/exponential-or.rs:+1:11: +1:12
switchInt((_1.0: u32)) -> [1_u32: bb2, 4_u32: bb2, otherwise: bb1]; // scope 0 at $DIR/exponential-or.rs:+2:15: +2:20
FakeRead(ForMatchedPlace(None), _1); // scope 0 at $DIR/exponential_or.rs:+1:11: +1:12
switchInt((_1.0: u32)) -> [1_u32: bb2, 4_u32: bb2, otherwise: bb1]; // scope 0 at $DIR/exponential_or.rs:+2:15: +2:20
}
bb1: {
_0 = const 0_u32; // scope 0 at $DIR/exponential-or.rs:+3:14: +3:15
goto -> bb10; // scope 0 at $DIR/exponential-or.rs:+3:14: +3:15
_0 = const 0_u32; // scope 0 at $DIR/exponential_or.rs:+3:14: +3:15
goto -> bb10; // scope 0 at $DIR/exponential_or.rs:+3:14: +3:15
}
bb2: {
_2 = discriminant((_1.2: std::option::Option<i32>)); // scope 0 at $DIR/exponential-or.rs:+2:37: +2:55
switchInt(move _2) -> [0_isize: bb4, 1_isize: bb3, otherwise: bb1]; // scope 0 at $DIR/exponential-or.rs:+2:37: +2:55
_2 = discriminant((_1.2: std::option::Option<i32>)); // scope 0 at $DIR/exponential_or.rs:+2:37: +2:55
switchInt(move _2) -> [0_isize: bb4, 1_isize: bb3, otherwise: bb1]; // scope 0 at $DIR/exponential_or.rs:+2:37: +2:55
}
bb3: {
switchInt((((_1.2: std::option::Option<i32>) as Some).0: i32)) -> [1_i32: bb4, 8_i32: bb4, otherwise: bb1]; // scope 0 at $DIR/exponential-or.rs:+2:37: +2:55
switchInt((((_1.2: std::option::Option<i32>) as Some).0: i32)) -> [1_i32: bb4, 8_i32: bb4, otherwise: bb1]; // scope 0 at $DIR/exponential_or.rs:+2:37: +2:55
}
bb4: {
_5 = Le(const 6_u32, (_1.3: u32)); // scope 0 at $DIR/exponential-or.rs:+2:62: +2:67
switchInt(move _5) -> [false: bb6, otherwise: bb5]; // scope 0 at $DIR/exponential-or.rs:+2:62: +2:67
_5 = Le(const 6_u32, (_1.3: u32)); // scope 0 at $DIR/exponential_or.rs:+2:62: +2:67
switchInt(move _5) -> [false: bb6, otherwise: bb5]; // scope 0 at $DIR/exponential_or.rs:+2:62: +2:67
}
bb5: {
_6 = Le((_1.3: u32), const 9_u32); // scope 0 at $DIR/exponential-or.rs:+2:62: +2:67
switchInt(move _6) -> [false: bb6, otherwise: bb8]; // scope 0 at $DIR/exponential-or.rs:+2:62: +2:67
_6 = Le((_1.3: u32), const 9_u32); // scope 0 at $DIR/exponential_or.rs:+2:62: +2:67
switchInt(move _6) -> [false: bb6, otherwise: bb8]; // scope 0 at $DIR/exponential_or.rs:+2:62: +2:67
}
bb6: {
_3 = Le(const 13_u32, (_1.3: u32)); // scope 0 at $DIR/exponential-or.rs:+2:70: +2:77
switchInt(move _3) -> [false: bb1, otherwise: bb7]; // scope 0 at $DIR/exponential-or.rs:+2:70: +2:77
_3 = Le(const 13_u32, (_1.3: u32)); // scope 0 at $DIR/exponential_or.rs:+2:70: +2:77
switchInt(move _3) -> [false: bb1, otherwise: bb7]; // scope 0 at $DIR/exponential_or.rs:+2:70: +2:77
}
bb7: {
_4 = Le((_1.3: u32), const 16_u32); // scope 0 at $DIR/exponential-or.rs:+2:70: +2:77
switchInt(move _4) -> [false: bb1, otherwise: bb8]; // scope 0 at $DIR/exponential-or.rs:+2:70: +2:77
_4 = Le((_1.3: u32), const 16_u32); // scope 0 at $DIR/exponential_or.rs:+2:70: +2:77
switchInt(move _4) -> [false: bb1, otherwise: bb8]; // scope 0 at $DIR/exponential_or.rs:+2:70: +2:77
}
bb8: {
falseEdge -> [real: bb9, imaginary: bb1]; // scope 0 at $DIR/exponential-or.rs:+2:9: +2:79
falseEdge -> [real: bb9, imaginary: bb1]; // scope 0 at $DIR/exponential_or.rs:+2:9: +2:79
}
bb9: {
StorageLive(_7); // scope 0 at $DIR/exponential-or.rs:+2:10: +2:11
_7 = (_1.0: u32); // scope 0 at $DIR/exponential-or.rs:+2:10: +2:11
StorageLive(_8); // scope 0 at $DIR/exponential-or.rs:+2:57: +2:58
_8 = (_1.3: u32); // scope 0 at $DIR/exponential-or.rs:+2:57: +2:58
StorageLive(_9); // scope 1 at $DIR/exponential-or.rs:+2:83: +2:84
_9 = _7; // scope 1 at $DIR/exponential-or.rs:+2:83: +2:84
StorageLive(_10); // scope 1 at $DIR/exponential-or.rs:+2:87: +2:88
_10 = _8; // scope 1 at $DIR/exponential-or.rs:+2:87: +2:88
_0 = BitXor(move _9, move _10); // scope 1 at $DIR/exponential-or.rs:+2:83: +2:88
StorageDead(_10); // scope 1 at $DIR/exponential-or.rs:+2:87: +2:88
StorageDead(_9); // scope 1 at $DIR/exponential-or.rs:+2:87: +2:88
StorageDead(_8); // scope 0 at $DIR/exponential-or.rs:+2:87: +2:88
StorageDead(_7); // scope 0 at $DIR/exponential-or.rs:+2:87: +2:88
goto -> bb10; // scope 0 at $DIR/exponential-or.rs:+2:87: +2:88
StorageLive(_7); // scope 0 at $DIR/exponential_or.rs:+2:10: +2:11
_7 = (_1.0: u32); // scope 0 at $DIR/exponential_or.rs:+2:10: +2:11
StorageLive(_8); // scope 0 at $DIR/exponential_or.rs:+2:57: +2:58
_8 = (_1.3: u32); // scope 0 at $DIR/exponential_or.rs:+2:57: +2:58
StorageLive(_9); // scope 1 at $DIR/exponential_or.rs:+2:83: +2:84
_9 = _7; // scope 1 at $DIR/exponential_or.rs:+2:83: +2:84
StorageLive(_10); // scope 1 at $DIR/exponential_or.rs:+2:87: +2:88
_10 = _8; // scope 1 at $DIR/exponential_or.rs:+2:87: +2:88
_0 = BitXor(move _9, move _10); // scope 1 at $DIR/exponential_or.rs:+2:83: +2:88
StorageDead(_10); // scope 1 at $DIR/exponential_or.rs:+2:87: +2:88
StorageDead(_9); // scope 1 at $DIR/exponential_or.rs:+2:87: +2:88
StorageDead(_8); // scope 0 at $DIR/exponential_or.rs:+2:87: +2:88
StorageDead(_7); // scope 0 at $DIR/exponential_or.rs:+2:87: +2:88
goto -> bb10; // scope 0 at $DIR/exponential_or.rs:+2:87: +2:88
}
bb10: {
return; // scope 0 at $DIR/exponential-or.rs:+5:2: +5:2
return; // scope 0 at $DIR/exponential_or.rs:+5:2: +5:2
}
}

View file

@ -14,71 +14,71 @@
},
} */
fn main::{closure#0}(_1: *mut [generator@$DIR/generator-drop-cleanup.rs:10:15: 10:17]) -> () {
let mut _0: (); // return place in scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
let mut _2: (); // in scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
let _3: std::string::String; // in scope 0 at $DIR/generator-drop-cleanup.rs:+1:13: +1:15
let _4: (); // in scope 0 at $DIR/generator-drop-cleanup.rs:+2:9: +2:14
let mut _5: (); // in scope 0 at $DIR/generator-drop-cleanup.rs:+2:9: +2:14
let mut _6: (); // in scope 0 at $DIR/generator-drop-cleanup.rs:+0:18: +0:18
let mut _7: (); // in scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
let mut _8: u32; // in scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
fn main::{closure#0}(_1: *mut [generator@$DIR/generator_drop_cleanup.rs:10:15: 10:17]) -> () {
let mut _0: (); // return place in scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
let mut _2: (); // in scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
let _3: std::string::String; // in scope 0 at $DIR/generator_drop_cleanup.rs:+1:13: +1:15
let _4: (); // in scope 0 at $DIR/generator_drop_cleanup.rs:+2:9: +2:14
let mut _5: (); // in scope 0 at $DIR/generator_drop_cleanup.rs:+2:9: +2:14
let mut _6: (); // in scope 0 at $DIR/generator_drop_cleanup.rs:+0:18: +0:18
let mut _7: (); // in scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
let mut _8: u32; // in scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
scope 1 {
debug _s => (((*_1) as variant#3).0: std::string::String); // in scope 1 at $DIR/generator-drop-cleanup.rs:+1:13: +1:15
debug _s => (((*_1) as variant#3).0: std::string::String); // in scope 1 at $DIR/generator_drop_cleanup.rs:+1:13: +1:15
}
bb0: {
_8 = discriminant((*_1)); // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
switchInt(move _8) -> [0_u32: bb7, 3_u32: bb10, otherwise: bb11]; // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
_8 = discriminant((*_1)); // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
switchInt(move _8) -> [0_u32: bb7, 3_u32: bb10, otherwise: bb11]; // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
}
bb1: {
StorageDead(_5); // scope 1 at $DIR/generator-drop-cleanup.rs:+2:13: +2:14
StorageDead(_4); // scope 1 at $DIR/generator-drop-cleanup.rs:+2:14: +2:15
drop((((*_1) as variant#3).0: std::string::String)) -> [return: bb2, unwind: bb5]; // scope 0 at $DIR/generator-drop-cleanup.rs:+3:5: +3:6
StorageDead(_5); // scope 1 at $DIR/generator_drop_cleanup.rs:+2:13: +2:14
StorageDead(_4); // scope 1 at $DIR/generator_drop_cleanup.rs:+2:14: +2:15
drop((((*_1) as variant#3).0: std::string::String)) -> [return: bb2, unwind: bb5]; // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
}
bb2: {
nop; // scope 0 at $DIR/generator-drop-cleanup.rs:+3:5: +3:6
goto -> bb8; // scope 0 at $DIR/generator-drop-cleanup.rs:+3:5: +3:6
nop; // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
goto -> bb8; // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
}
bb3: {
return; // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
return; // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
}
bb4 (cleanup): {
resume; // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
resume; // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
}
bb5 (cleanup): {
nop; // scope 0 at $DIR/generator-drop-cleanup.rs:+3:5: +3:6
goto -> bb4; // scope 0 at $DIR/generator-drop-cleanup.rs:+3:5: +3:6
nop; // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
goto -> bb4; // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
}
bb6: {
return; // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
return; // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
}
bb7: {
goto -> bb9; // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
goto -> bb9; // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
}
bb8: {
goto -> bb3; // scope 0 at $DIR/generator-drop-cleanup.rs:+3:5: +3:6
goto -> bb3; // scope 0 at $DIR/generator_drop_cleanup.rs:+3:5: +3:6
}
bb9: {
goto -> bb6; // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
goto -> bb6; // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
}
bb10: {
StorageLive(_4); // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
StorageLive(_5); // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
goto -> bb1; // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
StorageLive(_4); // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
StorageLive(_5); // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
goto -> bb1; // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
}
bb11: {
return; // scope 0 at $DIR/generator-drop-cleanup.rs:+0:15: +3:6
return; // scope 0 at $DIR/generator_drop_cleanup.rs:+0:15: +3:6
}
}

View file

@ -1,124 +1,124 @@
// MIR for `main::{closure#0}` before StateTransform
fn main::{closure#0}(_1: [generator@$DIR/generator-storage-dead-unwind.rs:22:16: 22:18], _2: ()) -> ()
fn main::{closure#0}(_1: [generator@$DIR/generator_storage_dead_unwind.rs:22:16: 22:18], _2: ()) -> ()
yields ()
{
let mut _0: (); // return place in scope 0 at $DIR/generator-storage-dead-unwind.rs:+0:19: +0:19
let _3: Foo; // in scope 0 at $DIR/generator-storage-dead-unwind.rs:+1:13: +1:14
let _5: (); // in scope 0 at $DIR/generator-storage-dead-unwind.rs:+3:9: +3:14
let mut _6: (); // in scope 0 at $DIR/generator-storage-dead-unwind.rs:+3:9: +3:14
let _7: (); // in scope 0 at $DIR/generator-storage-dead-unwind.rs:+4:9: +4:16
let mut _8: Foo; // in scope 0 at $DIR/generator-storage-dead-unwind.rs:+4:14: +4:15
let _9: (); // in scope 0 at $DIR/generator-storage-dead-unwind.rs:+5:9: +5:16
let mut _10: Bar; // in scope 0 at $DIR/generator-storage-dead-unwind.rs:+5:14: +5:15
let mut _0: (); // return place in scope 0 at $DIR/generator_storage_dead_unwind.rs:+0:19: +0:19
let _3: Foo; // in scope 0 at $DIR/generator_storage_dead_unwind.rs:+1:13: +1:14
let _5: (); // in scope 0 at $DIR/generator_storage_dead_unwind.rs:+3:9: +3:14
let mut _6: (); // in scope 0 at $DIR/generator_storage_dead_unwind.rs:+3:9: +3:14
let _7: (); // in scope 0 at $DIR/generator_storage_dead_unwind.rs:+4:9: +4:16
let mut _8: Foo; // in scope 0 at $DIR/generator_storage_dead_unwind.rs:+4:14: +4:15
let _9: (); // in scope 0 at $DIR/generator_storage_dead_unwind.rs:+5:9: +5:16
let mut _10: Bar; // in scope 0 at $DIR/generator_storage_dead_unwind.rs:+5:14: +5:15
scope 1 {
debug a => _3; // in scope 1 at $DIR/generator-storage-dead-unwind.rs:+1:13: +1:14
let _4: Bar; // in scope 1 at $DIR/generator-storage-dead-unwind.rs:+2:13: +2:14
debug a => _3; // in scope 1 at $DIR/generator_storage_dead_unwind.rs:+1:13: +1:14
let _4: Bar; // in scope 1 at $DIR/generator_storage_dead_unwind.rs:+2:13: +2:14
scope 2 {
debug b => _4; // in scope 2 at $DIR/generator-storage-dead-unwind.rs:+2:13: +2:14
debug b => _4; // in scope 2 at $DIR/generator_storage_dead_unwind.rs:+2:13: +2:14
}
}
bb0: {
StorageLive(_3); // scope 0 at $DIR/generator-storage-dead-unwind.rs:+1:13: +1:14
_3 = Foo(const 5_i32); // scope 0 at $DIR/generator-storage-dead-unwind.rs:+1:17: +1:23
StorageLive(_4); // scope 1 at $DIR/generator-storage-dead-unwind.rs:+2:13: +2:14
_4 = Bar(const 6_i32); // scope 1 at $DIR/generator-storage-dead-unwind.rs:+2:17: +2:23
StorageLive(_5); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+3:9: +3:14
StorageLive(_6); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+3:9: +3:14
_6 = (); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+3:9: +3:14
_5 = yield(move _6) -> [resume: bb1, drop: bb6]; // scope 2 at $DIR/generator-storage-dead-unwind.rs:+3:9: +3:14
StorageLive(_3); // scope 0 at $DIR/generator_storage_dead_unwind.rs:+1:13: +1:14
_3 = Foo(const 5_i32); // scope 0 at $DIR/generator_storage_dead_unwind.rs:+1:17: +1:23
StorageLive(_4); // scope 1 at $DIR/generator_storage_dead_unwind.rs:+2:13: +2:14
_4 = Bar(const 6_i32); // scope 1 at $DIR/generator_storage_dead_unwind.rs:+2:17: +2:23
StorageLive(_5); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+3:9: +3:14
StorageLive(_6); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+3:9: +3:14
_6 = (); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+3:9: +3:14
_5 = yield(move _6) -> [resume: bb1, drop: bb6]; // scope 2 at $DIR/generator_storage_dead_unwind.rs:+3:9: +3:14
}
bb1: {
StorageDead(_6); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+3:13: +3:14
StorageDead(_5); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+3:14: +3:15
StorageLive(_7); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+4:9: +4:16
StorageLive(_8); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+4:14: +4:15
_8 = move _3; // scope 2 at $DIR/generator-storage-dead-unwind.rs:+4:14: +4:15
_7 = take::<Foo>(move _8) -> [return: bb2, unwind: bb10]; // scope 2 at $DIR/generator-storage-dead-unwind.rs:+4:9: +4:16
StorageDead(_6); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+3:13: +3:14
StorageDead(_5); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+3:14: +3:15
StorageLive(_7); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+4:9: +4:16
StorageLive(_8); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+4:14: +4:15
_8 = move _3; // scope 2 at $DIR/generator_storage_dead_unwind.rs:+4:14: +4:15
_7 = take::<Foo>(move _8) -> [return: bb2, unwind: bb10]; // scope 2 at $DIR/generator_storage_dead_unwind.rs:+4:9: +4:16
// mir::Constant
// + span: $DIR/generator-storage-dead-unwind.rs:26:9: 26:13
// + span: $DIR/generator_storage_dead_unwind.rs:26:9: 26:13
// + literal: Const { ty: fn(Foo) {take::<Foo>}, val: Value(<ZST>) }
}
bb2: {
StorageDead(_8); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+4:15: +4:16
StorageDead(_7); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+4:16: +4:17
StorageLive(_9); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+5:9: +5:16
StorageLive(_10); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+5:14: +5:15
_10 = move _4; // scope 2 at $DIR/generator-storage-dead-unwind.rs:+5:14: +5:15
_9 = take::<Bar>(move _10) -> [return: bb3, unwind: bb9]; // scope 2 at $DIR/generator-storage-dead-unwind.rs:+5:9: +5:16
StorageDead(_8); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+4:15: +4:16
StorageDead(_7); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+4:16: +4:17
StorageLive(_9); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+5:9: +5:16
StorageLive(_10); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+5:14: +5:15
_10 = move _4; // scope 2 at $DIR/generator_storage_dead_unwind.rs:+5:14: +5:15
_9 = take::<Bar>(move _10) -> [return: bb3, unwind: bb9]; // scope 2 at $DIR/generator_storage_dead_unwind.rs:+5:9: +5:16
// mir::Constant
// + span: $DIR/generator-storage-dead-unwind.rs:27:9: 27:13
// + span: $DIR/generator_storage_dead_unwind.rs:27:9: 27:13
// + literal: Const { ty: fn(Bar) {take::<Bar>}, val: Value(<ZST>) }
}
bb3: {
StorageDead(_10); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+5:15: +5:16
StorageDead(_9); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+5:16: +5:17
_0 = const (); // scope 0 at $DIR/generator-storage-dead-unwind.rs:+0:19: +6:6
StorageDead(_4); // scope 1 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
goto -> bb4; // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
StorageDead(_10); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+5:15: +5:16
StorageDead(_9); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+5:16: +5:17
_0 = const (); // scope 0 at $DIR/generator_storage_dead_unwind.rs:+0:19: +6:6
StorageDead(_4); // scope 1 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
goto -> bb4; // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
}
bb4: {
StorageDead(_3); // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
drop(_1) -> [return: bb5, unwind: bb14]; // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
StorageDead(_3); // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
drop(_1) -> [return: bb5, unwind: bb14]; // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
}
bb5: {
return; // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:6: +6:6
return; // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:6: +6:6
}
bb6: {
StorageDead(_6); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+3:13: +3:14
StorageDead(_5); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+3:14: +3:15
StorageDead(_4); // scope 1 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
drop(_3) -> [return: bb7, unwind: bb15]; // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
StorageDead(_6); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+3:13: +3:14
StorageDead(_5); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+3:14: +3:15
StorageDead(_4); // scope 1 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
drop(_3) -> [return: bb7, unwind: bb15]; // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
}
bb7: {
StorageDead(_3); // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
drop(_1) -> [return: bb8, unwind: bb14]; // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
StorageDead(_3); // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
drop(_1) -> [return: bb8, unwind: bb14]; // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
}
bb8: {
generator_drop; // scope 0 at $DIR/generator-storage-dead-unwind.rs:+0:16: +6:6
generator_drop; // scope 0 at $DIR/generator_storage_dead_unwind.rs:+0:16: +6:6
}
bb9 (cleanup): {
StorageDead(_10); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+5:15: +5:16
StorageDead(_9); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+5:16: +5:17
StorageDead(_10); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+5:15: +5:16
StorageDead(_9); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+5:16: +5:17
goto -> bb12; // scope 2 at no-location
}
bb10 (cleanup): {
goto -> bb11; // scope 2 at $DIR/generator-storage-dead-unwind.rs:+4:15: +4:16
goto -> bb11; // scope 2 at $DIR/generator_storage_dead_unwind.rs:+4:15: +4:16
}
bb11 (cleanup): {
StorageDead(_8); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+4:15: +4:16
StorageDead(_7); // scope 2 at $DIR/generator-storage-dead-unwind.rs:+4:16: +4:17
StorageDead(_8); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+4:15: +4:16
StorageDead(_7); // scope 2 at $DIR/generator_storage_dead_unwind.rs:+4:16: +4:17
goto -> bb12; // scope 2 at no-location
}
bb12 (cleanup): {
StorageDead(_4); // scope 1 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
goto -> bb13; // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
StorageDead(_4); // scope 1 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
goto -> bb13; // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
}
bb13 (cleanup): {
StorageDead(_3); // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
drop(_1) -> bb14; // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
StorageDead(_3); // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
drop(_1) -> bb14; // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
}
bb14 (cleanup): {
resume; // scope 0 at $DIR/generator-storage-dead-unwind.rs:+0:16: +6:6
resume; // scope 0 at $DIR/generator_storage_dead_unwind.rs:+0:16: +6:6
}
bb15 (cleanup): {
StorageDead(_3); // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
drop(_1) -> bb14; // scope 0 at $DIR/generator-storage-dead-unwind.rs:+6:5: +6:6
StorageDead(_3); // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
drop(_1) -> bb14; // scope 0 at $DIR/generator_storage_dead_unwind.rs:+6:5: +6:6
}
}

View file

@ -14,71 +14,71 @@
},
} */
fn main::{closure#0}(_1: Pin<&mut [generator@$DIR/generator-tiny.rs:19:16: 19:24]>, _2: u8) -> GeneratorState<(), ()> {
debug _x => _10; // in scope 0 at $DIR/generator-tiny.rs:+0:17: +0:19
let mut _0: std::ops::GeneratorState<(), ()>; // return place in scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
let _3: HasDrop; // in scope 0 at $DIR/generator-tiny.rs:+1:13: +1:15
let mut _4: !; // in scope 0 at $DIR/generator-tiny.rs:+2:9: +5:10
let mut _5: (); // in scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
let _6: u8; // in scope 0 at $DIR/generator-tiny.rs:+3:13: +3:18
let mut _7: (); // in scope 0 at $DIR/generator-tiny.rs:+3:13: +3:18
let _8: (); // in scope 0 at $DIR/generator-tiny.rs:+4:13: +4:21
let mut _9: (); // in scope 0 at $DIR/generator-tiny.rs:+0:25: +0:25
let _10: u8; // in scope 0 at $DIR/generator-tiny.rs:+0:17: +0:19
let mut _11: u32; // in scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
fn main::{closure#0}(_1: Pin<&mut [generator@$DIR/generator_tiny.rs:19:16: 19:24]>, _2: u8) -> GeneratorState<(), ()> {
debug _x => _10; // in scope 0 at $DIR/generator_tiny.rs:+0:17: +0:19
let mut _0: std::ops::GeneratorState<(), ()>; // return place in scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
let _3: HasDrop; // in scope 0 at $DIR/generator_tiny.rs:+1:13: +1:15
let mut _4: !; // in scope 0 at $DIR/generator_tiny.rs:+2:9: +5:10
let mut _5: (); // in scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
let _6: u8; // in scope 0 at $DIR/generator_tiny.rs:+3:13: +3:18
let mut _7: (); // in scope 0 at $DIR/generator_tiny.rs:+3:13: +3:18
let _8: (); // in scope 0 at $DIR/generator_tiny.rs:+4:13: +4:21
let mut _9: (); // in scope 0 at $DIR/generator_tiny.rs:+0:25: +0:25
let _10: u8; // in scope 0 at $DIR/generator_tiny.rs:+0:17: +0:19
let mut _11: u32; // in scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
scope 1 {
debug _d => (((*(_1.0: &mut [generator@$DIR/generator-tiny.rs:19:16: 19:24])) as variant#3).0: HasDrop); // in scope 1 at $DIR/generator-tiny.rs:+1:13: +1:15
debug _d => (((*(_1.0: &mut [generator@$DIR/generator_tiny.rs:19:16: 19:24])) as variant#3).0: HasDrop); // in scope 1 at $DIR/generator_tiny.rs:+1:13: +1:15
}
bb0: {
_11 = discriminant((*(_1.0: &mut [generator@$DIR/generator-tiny.rs:19:16: 19:24]))); // scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
switchInt(move _11) -> [0_u32: bb1, 3_u32: bb5, otherwise: bb6]; // scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
_11 = discriminant((*(_1.0: &mut [generator@$DIR/generator_tiny.rs:19:16: 19:24]))); // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
switchInt(move _11) -> [0_u32: bb1, 3_u32: bb5, otherwise: bb6]; // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
}
bb1: {
_10 = move _2; // scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
nop; // scope 0 at $DIR/generator-tiny.rs:+1:13: +1:15
(((*(_1.0: &mut [generator@$DIR/generator-tiny.rs:19:16: 19:24])) as variant#3).0: HasDrop) = HasDrop; // scope 0 at $DIR/generator-tiny.rs:+1:18: +1:25
StorageLive(_4); // scope 1 at $DIR/generator-tiny.rs:+2:9: +5:10
goto -> bb2; // scope 1 at $DIR/generator-tiny.rs:+2:9: +5:10
_10 = move _2; // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
nop; // scope 0 at $DIR/generator_tiny.rs:+1:13: +1:15
(((*(_1.0: &mut [generator@$DIR/generator_tiny.rs:19:16: 19:24])) as variant#3).0: HasDrop) = HasDrop; // scope 0 at $DIR/generator_tiny.rs:+1:18: +1:25
StorageLive(_4); // scope 1 at $DIR/generator_tiny.rs:+2:9: +5:10
goto -> bb2; // scope 1 at $DIR/generator_tiny.rs:+2:9: +5:10
}
bb2: {
StorageLive(_6); // scope 1 at $DIR/generator-tiny.rs:+3:13: +3:18
StorageLive(_7); // scope 1 at $DIR/generator-tiny.rs:+3:13: +3:18
_7 = (); // scope 1 at $DIR/generator-tiny.rs:+3:13: +3:18
Deinit(_0); // scope 1 at $DIR/generator-tiny.rs:+3:13: +3:18
((_0 as Yielded).0: ()) = move _7; // scope 1 at $DIR/generator-tiny.rs:+3:13: +3:18
discriminant(_0) = 0; // scope 1 at $DIR/generator-tiny.rs:+3:13: +3:18
discriminant((*(_1.0: &mut [generator@$DIR/generator-tiny.rs:19:16: 19:24]))) = 3; // scope 1 at $DIR/generator-tiny.rs:+3:13: +3:18
return; // scope 1 at $DIR/generator-tiny.rs:+3:13: +3:18
StorageLive(_6); // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
StorageLive(_7); // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
_7 = (); // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
Deinit(_0); // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
((_0 as Yielded).0: ()) = move _7; // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
discriminant(_0) = 0; // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
discriminant((*(_1.0: &mut [generator@$DIR/generator_tiny.rs:19:16: 19:24]))) = 3; // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
return; // scope 1 at $DIR/generator_tiny.rs:+3:13: +3:18
}
bb3: {
StorageDead(_7); // scope 1 at $DIR/generator-tiny.rs:+3:17: +3:18
StorageDead(_6); // scope 1 at $DIR/generator-tiny.rs:+3:18: +3:19
StorageLive(_8); // scope 1 at $DIR/generator-tiny.rs:+4:13: +4:21
_8 = callee() -> bb4; // scope 1 at $DIR/generator-tiny.rs:+4:13: +4:21
StorageDead(_7); // scope 1 at $DIR/generator_tiny.rs:+3:17: +3:18
StorageDead(_6); // scope 1 at $DIR/generator_tiny.rs:+3:18: +3:19
StorageLive(_8); // scope 1 at $DIR/generator_tiny.rs:+4:13: +4:21
_8 = callee() -> bb4; // scope 1 at $DIR/generator_tiny.rs:+4:13: +4:21
// mir::Constant
// + span: $DIR/generator-tiny.rs:23:13: 23:19
// + span: $DIR/generator_tiny.rs:23:13: 23:19
// + literal: Const { ty: fn() {callee}, val: Value(<ZST>) }
}
bb4: {
StorageDead(_8); // scope 1 at $DIR/generator-tiny.rs:+4:21: +4:22
_5 = const (); // scope 1 at $DIR/generator-tiny.rs:+2:14: +5:10
goto -> bb2; // scope 1 at $DIR/generator-tiny.rs:+2:9: +5:10
StorageDead(_8); // scope 1 at $DIR/generator_tiny.rs:+4:21: +4:22
_5 = const (); // scope 1 at $DIR/generator_tiny.rs:+2:14: +5:10
goto -> bb2; // scope 1 at $DIR/generator_tiny.rs:+2:9: +5:10
}
bb5: {
StorageLive(_4); // scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
StorageLive(_6); // scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
StorageLive(_7); // scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
_6 = move _2; // scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
goto -> bb3; // scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
StorageLive(_4); // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
StorageLive(_6); // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
StorageLive(_7); // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
_6 = move _2; // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
goto -> bb3; // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
}
bb6: {
unreachable; // scope 0 at $DIR/generator-tiny.rs:+0:16: +6:6
unreachable; // scope 0 at $DIR/generator_tiny.rs:+0:16: +6:6
}
}

View file

@ -2,29 +2,29 @@
+ // MIR for `dont_opt_bool` after SimplifyComparisonIntegral
fn dont_opt_bool(_1: bool) -> u32 {
debug x => _1; // in scope 0 at $DIR/if-condition-int.rs:+0:18: +0:19
let mut _0: u32; // return place in scope 0 at $DIR/if-condition-int.rs:+0:30: +0:33
let mut _2: bool; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
debug x => _1; // in scope 0 at $DIR/if_condition_int.rs:+0:18: +0:19
let mut _0: u32; // return place in scope 0 at $DIR/if_condition_int.rs:+0:30: +0:33
let mut _2: bool; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
bb0: {
StorageLive(_2); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
_2 = _1; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
StorageLive(_2); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
_2 = _1; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
}
bb1: {
_0 = const 0_u32; // scope 0 at $DIR/if-condition-int.rs:+1:12: +1:13
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:26
_0 = const 0_u32; // scope 0 at $DIR/if_condition_int.rs:+1:12: +1:13
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:26
}
bb2: {
_0 = const 1_u32; // scope 0 at $DIR/if-condition-int.rs:+1:23: +1:24
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:26
_0 = const 1_u32; // scope 0 at $DIR/if_condition_int.rs:+1:23: +1:24
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:26
}
bb3: {
StorageDead(_2); // scope 0 at $DIR/if-condition-int.rs:+1:25: +1:26
return; // scope 0 at $DIR/if-condition-int.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/if_condition_int.rs:+1:25: +1:26
return; // scope 0 at $DIR/if_condition_int.rs:+2:2: +2:2
}
}

View file

@ -2,33 +2,33 @@
+ // MIR for `dont_opt_floats` after SimplifyComparisonIntegral
fn dont_opt_floats(_1: f32) -> i32 {
debug a => _1; // in scope 0 at $DIR/if-condition-int.rs:+0:20: +0:21
let mut _0: i32; // return place in scope 0 at $DIR/if-condition-int.rs:+0:31: +0:34
let mut _2: bool; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:18
let mut _3: f32; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
debug a => _1; // in scope 0 at $DIR/if_condition_int.rs:+0:20: +0:21
let mut _0: i32; // return place in scope 0 at $DIR/if_condition_int.rs:+0:31: +0:34
let mut _2: bool; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:18
let mut _3: f32; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
bb0: {
StorageLive(_2); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:18
StorageLive(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
_2 = Eq(move _3, const -42f32); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:18
StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:17: +1:18
switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:18
StorageLive(_2); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:18
StorageLive(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
_2 = Eq(move _3, const -42f32); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:18
StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:17: +1:18
switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:18
}
bb1: {
_0 = const 0_i32; // scope 0 at $DIR/if-condition-int.rs:+1:21: +1:22
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:35
_0 = const 0_i32; // scope 0 at $DIR/if_condition_int.rs:+1:21: +1:22
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:35
}
bb2: {
_0 = const 1_i32; // scope 0 at $DIR/if-condition-int.rs:+1:32: +1:33
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:35
_0 = const 1_i32; // scope 0 at $DIR/if_condition_int.rs:+1:32: +1:33
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:35
}
bb3: {
StorageDead(_2); // scope 0 at $DIR/if-condition-int.rs:+1:34: +1:35
return; // scope 0 at $DIR/if-condition-int.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/if_condition_int.rs:+1:34: +1:35
return; // scope 0 at $DIR/if_condition_int.rs:+2:2: +2:2
}
}

View file

@ -2,57 +2,57 @@
+ // MIR for `dont_remove_comparison` after SimplifyComparisonIntegral
fn dont_remove_comparison(_1: i8) -> i32 {
debug a => _1; // in scope 0 at $DIR/if-condition-int.rs:+0:27: +0:28
let mut _0: i32; // return place in scope 0 at $DIR/if-condition-int.rs:+0:37: +0:40
let _2: bool; // in scope 0 at $DIR/if-condition-int.rs:+1:9: +1:10
let mut _3: i8; // in scope 0 at $DIR/if-condition-int.rs:+1:13: +1:14
let mut _4: i32; // in scope 0 at $DIR/if-condition-int.rs:+3:23: +3:31
let mut _5: bool; // in scope 0 at $DIR/if-condition-int.rs:+3:23: +3:24
let mut _6: i32; // in scope 0 at $DIR/if-condition-int.rs:+4:23: +4:31
let mut _7: bool; // in scope 0 at $DIR/if-condition-int.rs:+4:23: +4:24
debug a => _1; // in scope 0 at $DIR/if_condition_int.rs:+0:27: +0:28
let mut _0: i32; // return place in scope 0 at $DIR/if_condition_int.rs:+0:37: +0:40
let _2: bool; // in scope 0 at $DIR/if_condition_int.rs:+1:9: +1:10
let mut _3: i8; // in scope 0 at $DIR/if_condition_int.rs:+1:13: +1:14
let mut _4: i32; // in scope 0 at $DIR/if_condition_int.rs:+3:23: +3:31
let mut _5: bool; // in scope 0 at $DIR/if_condition_int.rs:+3:23: +3:24
let mut _6: i32; // in scope 0 at $DIR/if_condition_int.rs:+4:23: +4:31
let mut _7: bool; // in scope 0 at $DIR/if_condition_int.rs:+4:23: +4:24
scope 1 {
debug b => _2; // in scope 1 at $DIR/if-condition-int.rs:+1:9: +1:10
debug b => _2; // in scope 1 at $DIR/if_condition_int.rs:+1:9: +1:10
}
bb0: {
StorageLive(_2); // scope 0 at $DIR/if-condition-int.rs:+1:9: +1:10
StorageLive(_3); // scope 0 at $DIR/if-condition-int.rs:+1:13: +1:14
_3 = _1; // scope 0 at $DIR/if-condition-int.rs:+1:13: +1:14
- _2 = Eq(move _3, const 17_i8); // scope 0 at $DIR/if-condition-int.rs:+1:13: +1:20
- StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:19: +1:20
- switchInt(_2) -> [false: bb2, otherwise: bb1]; // scope 1 at $DIR/if-condition-int.rs:+2:5: +2:12
+ _2 = Eq(_3, const 17_i8); // scope 0 at $DIR/if-condition-int.rs:+1:13: +1:20
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:19: +1:20
+ switchInt(move _3) -> [17_i8: bb1, otherwise: bb2]; // scope 1 at $DIR/if-condition-int.rs:+2:5: +2:12
StorageLive(_2); // scope 0 at $DIR/if_condition_int.rs:+1:9: +1:10
StorageLive(_3); // scope 0 at $DIR/if_condition_int.rs:+1:13: +1:14
_3 = _1; // scope 0 at $DIR/if_condition_int.rs:+1:13: +1:14
- _2 = Eq(move _3, const 17_i8); // scope 0 at $DIR/if_condition_int.rs:+1:13: +1:20
- StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:19: +1:20
- switchInt(_2) -> [false: bb2, otherwise: bb1]; // scope 1 at $DIR/if_condition_int.rs:+2:5: +2:12
+ _2 = Eq(_3, const 17_i8); // scope 0 at $DIR/if_condition_int.rs:+1:13: +1:20
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:19: +1:20
+ switchInt(move _3) -> [17_i8: bb1, otherwise: bb2]; // scope 1 at $DIR/if_condition_int.rs:+2:5: +2:12
}
bb1: {
+ StorageDead(_3); // scope 1 at $DIR/if-condition-int.rs:+2:5: +2:12
StorageLive(_6); // scope 1 at $DIR/if-condition-int.rs:+4:23: +4:31
StorageLive(_7); // scope 1 at $DIR/if-condition-int.rs:+4:23: +4:24
_7 = _2; // scope 1 at $DIR/if-condition-int.rs:+4:23: +4:24
_6 = move _7 as i32 (IntToInt); // scope 1 at $DIR/if-condition-int.rs:+4:23: +4:31
StorageDead(_7); // scope 1 at $DIR/if-condition-int.rs:+4:30: +4:31
_0 = Add(const 100_i32, move _6); // scope 1 at $DIR/if-condition-int.rs:+4:17: +4:31
StorageDead(_6); // scope 1 at $DIR/if-condition-int.rs:+4:30: +4:31
goto -> bb3; // scope 1 at $DIR/if-condition-int.rs:+4:30: +4:31
+ StorageDead(_3); // scope 1 at $DIR/if_condition_int.rs:+2:5: +2:12
StorageLive(_6); // scope 1 at $DIR/if_condition_int.rs:+4:23: +4:31
StorageLive(_7); // scope 1 at $DIR/if_condition_int.rs:+4:23: +4:24
_7 = _2; // scope 1 at $DIR/if_condition_int.rs:+4:23: +4:24
_6 = move _7 as i32 (IntToInt); // scope 1 at $DIR/if_condition_int.rs:+4:23: +4:31
StorageDead(_7); // scope 1 at $DIR/if_condition_int.rs:+4:30: +4:31
_0 = Add(const 100_i32, move _6); // scope 1 at $DIR/if_condition_int.rs:+4:17: +4:31
StorageDead(_6); // scope 1 at $DIR/if_condition_int.rs:+4:30: +4:31
goto -> bb3; // scope 1 at $DIR/if_condition_int.rs:+4:30: +4:31
}
bb2: {
+ StorageDead(_3); // scope 1 at $DIR/if-condition-int.rs:+2:5: +2:12
StorageLive(_4); // scope 1 at $DIR/if-condition-int.rs:+3:23: +3:31
StorageLive(_5); // scope 1 at $DIR/if-condition-int.rs:+3:23: +3:24
_5 = _2; // scope 1 at $DIR/if-condition-int.rs:+3:23: +3:24
_4 = move _5 as i32 (IntToInt); // scope 1 at $DIR/if-condition-int.rs:+3:23: +3:31
StorageDead(_5); // scope 1 at $DIR/if-condition-int.rs:+3:30: +3:31
_0 = Add(const 10_i32, move _4); // scope 1 at $DIR/if-condition-int.rs:+3:18: +3:31
StorageDead(_4); // scope 1 at $DIR/if-condition-int.rs:+3:30: +3:31
goto -> bb3; // scope 1 at $DIR/if-condition-int.rs:+3:30: +3:31
+ StorageDead(_3); // scope 1 at $DIR/if_condition_int.rs:+2:5: +2:12
StorageLive(_4); // scope 1 at $DIR/if_condition_int.rs:+3:23: +3:31
StorageLive(_5); // scope 1 at $DIR/if_condition_int.rs:+3:23: +3:24
_5 = _2; // scope 1 at $DIR/if_condition_int.rs:+3:23: +3:24
_4 = move _5 as i32 (IntToInt); // scope 1 at $DIR/if_condition_int.rs:+3:23: +3:31
StorageDead(_5); // scope 1 at $DIR/if_condition_int.rs:+3:30: +3:31
_0 = Add(const 10_i32, move _4); // scope 1 at $DIR/if_condition_int.rs:+3:18: +3:31
StorageDead(_4); // scope 1 at $DIR/if_condition_int.rs:+3:30: +3:31
goto -> bb3; // scope 1 at $DIR/if_condition_int.rs:+3:30: +3:31
}
bb3: {
StorageDead(_2); // scope 0 at $DIR/if-condition-int.rs:+6:1: +6:2
return; // scope 0 at $DIR/if-condition-int.rs:+6:2: +6:2
StorageDead(_2); // scope 0 at $DIR/if_condition_int.rs:+6:1: +6:2
return; // scope 0 at $DIR/if_condition_int.rs:+6:2: +6:2
}
}

View file

@ -2,38 +2,38 @@
+ // MIR for `opt_char` after SimplifyComparisonIntegral
fn opt_char(_1: char) -> u32 {
debug x => _1; // in scope 0 at $DIR/if-condition-int.rs:+0:13: +0:14
let mut _0: u32; // return place in scope 0 at $DIR/if-condition-int.rs:+0:25: +0:28
let mut _2: bool; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
let mut _3: char; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
debug x => _1; // in scope 0 at $DIR/if_condition_int.rs:+0:13: +0:14
let mut _0: u32; // return place in scope 0 at $DIR/if_condition_int.rs:+0:25: +0:28
let mut _2: bool; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
let mut _3: char; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
bb0: {
StorageLive(_2); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
StorageLive(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
- _2 = Eq(move _3, const 'x'); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
- StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:15: +1:16
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:15: +1:16
+ switchInt(move _3) -> ['x': bb1, otherwise: bb2]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
StorageLive(_2); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
StorageLive(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
- _2 = Eq(move _3, const 'x'); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
- StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:15: +1:16
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:15: +1:16
+ switchInt(move _3) -> ['x': bb1, otherwise: bb2]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
}
bb1: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
_0 = const 0_u32; // scope 0 at $DIR/if-condition-int.rs:+1:19: +1:20
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:33
+ StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
_0 = const 0_u32; // scope 0 at $DIR/if_condition_int.rs:+1:19: +1:20
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:33
}
bb2: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
_0 = const 1_u32; // scope 0 at $DIR/if-condition-int.rs:+1:30: +1:31
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:33
+ StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
_0 = const 1_u32; // scope 0 at $DIR/if_condition_int.rs:+1:30: +1:31
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:33
}
bb3: {
StorageDead(_2); // scope 0 at $DIR/if-condition-int.rs:+1:32: +1:33
return; // scope 0 at $DIR/if-condition-int.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/if_condition_int.rs:+1:32: +1:33
return; // scope 0 at $DIR/if_condition_int.rs:+2:2: +2:2
}
}

View file

@ -2,38 +2,38 @@
+ // MIR for `opt_i8` after SimplifyComparisonIntegral
fn opt_i8(_1: i8) -> u32 {
debug x => _1; // in scope 0 at $DIR/if-condition-int.rs:+0:11: +0:12
let mut _0: u32; // return place in scope 0 at $DIR/if-condition-int.rs:+0:21: +0:24
let mut _2: bool; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
let mut _3: i8; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
debug x => _1; // in scope 0 at $DIR/if_condition_int.rs:+0:11: +0:12
let mut _0: u32; // return place in scope 0 at $DIR/if_condition_int.rs:+0:21: +0:24
let mut _2: bool; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
let mut _3: i8; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
bb0: {
StorageLive(_2); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
StorageLive(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
- _2 = Eq(move _3, const 42_i8); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
- StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:14: +1:15
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:14: +1:15
+ switchInt(move _3) -> [42_i8: bb1, otherwise: bb2]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
StorageLive(_2); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
StorageLive(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
- _2 = Eq(move _3, const 42_i8); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
- StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:14: +1:15
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:14: +1:15
+ switchInt(move _3) -> [42_i8: bb1, otherwise: bb2]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
}
bb1: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
_0 = const 0_u32; // scope 0 at $DIR/if-condition-int.rs:+1:18: +1:19
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:32
+ StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
_0 = const 0_u32; // scope 0 at $DIR/if_condition_int.rs:+1:18: +1:19
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:32
}
bb2: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
_0 = const 1_u32; // scope 0 at $DIR/if-condition-int.rs:+1:29: +1:30
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:32
+ StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
_0 = const 1_u32; // scope 0 at $DIR/if_condition_int.rs:+1:29: +1:30
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:32
}
bb3: {
StorageDead(_2); // scope 0 at $DIR/if-condition-int.rs:+1:31: +1:32
return; // scope 0 at $DIR/if-condition-int.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/if_condition_int.rs:+1:31: +1:32
return; // scope 0 at $DIR/if_condition_int.rs:+2:2: +2:2
}
}

View file

@ -2,64 +2,64 @@
+ // MIR for `opt_multiple_ifs` after SimplifyComparisonIntegral
fn opt_multiple_ifs(_1: u32) -> u32 {
debug x => _1; // in scope 0 at $DIR/if-condition-int.rs:+0:21: +0:22
let mut _0: u32; // return place in scope 0 at $DIR/if-condition-int.rs:+0:32: +0:35
let mut _2: bool; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
let mut _3: u32; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
let mut _4: bool; // in scope 0 at $DIR/if-condition-int.rs:+3:15: +3:22
let mut _5: u32; // in scope 0 at $DIR/if-condition-int.rs:+3:15: +3:16
debug x => _1; // in scope 0 at $DIR/if_condition_int.rs:+0:21: +0:22
let mut _0: u32; // return place in scope 0 at $DIR/if_condition_int.rs:+0:32: +0:35
let mut _2: bool; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
let mut _3: u32; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
let mut _4: bool; // in scope 0 at $DIR/if_condition_int.rs:+3:15: +3:22
let mut _5: u32; // in scope 0 at $DIR/if_condition_int.rs:+3:15: +3:16
bb0: {
StorageLive(_2); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
StorageLive(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
- _2 = Eq(move _3, const 42_u32); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
- StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:14: +1:15
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:14: +1:15
+ switchInt(move _3) -> [42_u32: bb1, otherwise: bb2]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
StorageLive(_2); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
StorageLive(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
- _2 = Eq(move _3, const 42_u32); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
- StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:14: +1:15
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:14: +1:15
+ switchInt(move _3) -> [42_u32: bb1, otherwise: bb2]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
}
bb1: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
_0 = const 0_u32; // scope 0 at $DIR/if-condition-int.rs:+2:9: +2:10
goto -> bb6; // scope 0 at $DIR/if-condition-int.rs:+1:5: +7:6
+ StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
_0 = const 0_u32; // scope 0 at $DIR/if_condition_int.rs:+2:9: +2:10
goto -> bb6; // scope 0 at $DIR/if_condition_int.rs:+1:5: +7:6
}
bb2: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
StorageLive(_4); // scope 0 at $DIR/if-condition-int.rs:+3:15: +3:22
StorageLive(_5); // scope 0 at $DIR/if-condition-int.rs:+3:15: +3:16
_5 = _1; // scope 0 at $DIR/if-condition-int.rs:+3:15: +3:16
- _4 = Ne(move _5, const 21_u32); // scope 0 at $DIR/if-condition-int.rs:+3:15: +3:22
- StorageDead(_5); // scope 0 at $DIR/if-condition-int.rs:+3:21: +3:22
- switchInt(move _4) -> [false: bb4, otherwise: bb3]; // scope 0 at $DIR/if-condition-int.rs:+3:15: +3:22
+ nop; // scope 0 at $DIR/if-condition-int.rs:+3:15: +3:22
+ nop; // scope 0 at $DIR/if-condition-int.rs:+3:21: +3:22
+ switchInt(move _5) -> [21_u32: bb4, otherwise: bb3]; // scope 0 at $DIR/if-condition-int.rs:+3:15: +3:22
+ StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
StorageLive(_4); // scope 0 at $DIR/if_condition_int.rs:+3:15: +3:22
StorageLive(_5); // scope 0 at $DIR/if_condition_int.rs:+3:15: +3:16
_5 = _1; // scope 0 at $DIR/if_condition_int.rs:+3:15: +3:16
- _4 = Ne(move _5, const 21_u32); // scope 0 at $DIR/if_condition_int.rs:+3:15: +3:22
- StorageDead(_5); // scope 0 at $DIR/if_condition_int.rs:+3:21: +3:22
- switchInt(move _4) -> [false: bb4, otherwise: bb3]; // scope 0 at $DIR/if_condition_int.rs:+3:15: +3:22
+ nop; // scope 0 at $DIR/if_condition_int.rs:+3:15: +3:22
+ nop; // scope 0 at $DIR/if_condition_int.rs:+3:21: +3:22
+ switchInt(move _5) -> [21_u32: bb4, otherwise: bb3]; // scope 0 at $DIR/if_condition_int.rs:+3:15: +3:22
}
bb3: {
+ StorageDead(_5); // scope 0 at $DIR/if-condition-int.rs:+3:15: +3:22
_0 = const 1_u32; // scope 0 at $DIR/if-condition-int.rs:+4:9: +4:10
goto -> bb5; // scope 0 at $DIR/if-condition-int.rs:+3:12: +7:6
+ StorageDead(_5); // scope 0 at $DIR/if_condition_int.rs:+3:15: +3:22
_0 = const 1_u32; // scope 0 at $DIR/if_condition_int.rs:+4:9: +4:10
goto -> bb5; // scope 0 at $DIR/if_condition_int.rs:+3:12: +7:6
}
bb4: {
+ StorageDead(_5); // scope 0 at $DIR/if-condition-int.rs:+3:15: +3:22
_0 = const 2_u32; // scope 0 at $DIR/if-condition-int.rs:+6:9: +6:10
goto -> bb5; // scope 0 at $DIR/if-condition-int.rs:+3:12: +7:6
+ StorageDead(_5); // scope 0 at $DIR/if_condition_int.rs:+3:15: +3:22
_0 = const 2_u32; // scope 0 at $DIR/if_condition_int.rs:+6:9: +6:10
goto -> bb5; // scope 0 at $DIR/if_condition_int.rs:+3:12: +7:6
}
bb5: {
StorageDead(_4); // scope 0 at $DIR/if-condition-int.rs:+7:5: +7:6
goto -> bb6; // scope 0 at $DIR/if-condition-int.rs:+1:5: +7:6
StorageDead(_4); // scope 0 at $DIR/if_condition_int.rs:+7:5: +7:6
goto -> bb6; // scope 0 at $DIR/if_condition_int.rs:+1:5: +7:6
}
bb6: {
StorageDead(_2); // scope 0 at $DIR/if-condition-int.rs:+7:5: +7:6
return; // scope 0 at $DIR/if-condition-int.rs:+8:2: +8:2
StorageDead(_2); // scope 0 at $DIR/if_condition_int.rs:+7:5: +7:6
return; // scope 0 at $DIR/if_condition_int.rs:+8:2: +8:2
}
}

View file

@ -2,38 +2,38 @@
+ // MIR for `opt_negative` after SimplifyComparisonIntegral
fn opt_negative(_1: i32) -> u32 {
debug x => _1; // in scope 0 at $DIR/if-condition-int.rs:+0:17: +0:18
let mut _0: u32; // return place in scope 0 at $DIR/if-condition-int.rs:+0:28: +0:31
let mut _2: bool; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
let mut _3: i32; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
debug x => _1; // in scope 0 at $DIR/if_condition_int.rs:+0:17: +0:18
let mut _0: u32; // return place in scope 0 at $DIR/if_condition_int.rs:+0:28: +0:31
let mut _2: bool; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
let mut _3: i32; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
bb0: {
StorageLive(_2); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
StorageLive(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
- _2 = Eq(move _3, const -42_i32); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
- StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:15: +1:16
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:15: +1:16
+ switchInt(move _3) -> [-42_i32: bb1, otherwise: bb2]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
StorageLive(_2); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
StorageLive(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
- _2 = Eq(move _3, const -42_i32); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
- StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:15: +1:16
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:15: +1:16
+ switchInt(move _3) -> [-42_i32: bb1, otherwise: bb2]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
}
bb1: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
_0 = const 0_u32; // scope 0 at $DIR/if-condition-int.rs:+1:19: +1:20
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:33
+ StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
_0 = const 0_u32; // scope 0 at $DIR/if_condition_int.rs:+1:19: +1:20
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:33
}
bb2: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:16
_0 = const 1_u32; // scope 0 at $DIR/if-condition-int.rs:+1:30: +1:31
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:33
+ StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:16
_0 = const 1_u32; // scope 0 at $DIR/if_condition_int.rs:+1:30: +1:31
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:33
}
bb3: {
StorageDead(_2); // scope 0 at $DIR/if-condition-int.rs:+1:32: +1:33
return; // scope 0 at $DIR/if-condition-int.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/if_condition_int.rs:+1:32: +1:33
return; // scope 0 at $DIR/if_condition_int.rs:+2:2: +2:2
}
}

View file

@ -2,38 +2,38 @@
+ // MIR for `opt_u32` after SimplifyComparisonIntegral
fn opt_u32(_1: u32) -> u32 {
debug x => _1; // in scope 0 at $DIR/if-condition-int.rs:+0:12: +0:13
let mut _0: u32; // return place in scope 0 at $DIR/if-condition-int.rs:+0:23: +0:26
let mut _2: bool; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
let mut _3: u32; // in scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
debug x => _1; // in scope 0 at $DIR/if_condition_int.rs:+0:12: +0:13
let mut _0: u32; // return place in scope 0 at $DIR/if_condition_int.rs:+0:23: +0:26
let mut _2: bool; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
let mut _3: u32; // in scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
bb0: {
StorageLive(_2); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
StorageLive(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:9
- _2 = Eq(move _3, const 42_u32); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
- StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:14: +1:15
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if-condition-int.rs:+1:14: +1:15
+ switchInt(move _3) -> [42_u32: bb1, otherwise: bb2]; // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
StorageLive(_2); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
StorageLive(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:9
- _2 = Eq(move _3, const 42_u32); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
- StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:14: +1:15
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
+ nop; // scope 0 at $DIR/if_condition_int.rs:+1:14: +1:15
+ switchInt(move _3) -> [42_u32: bb1, otherwise: bb2]; // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
}
bb1: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
_0 = const 0_u32; // scope 0 at $DIR/if-condition-int.rs:+1:18: +1:19
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:32
+ StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
_0 = const 0_u32; // scope 0 at $DIR/if_condition_int.rs:+1:18: +1:19
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:32
}
bb2: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:+1:8: +1:15
_0 = const 1_u32; // scope 0 at $DIR/if-condition-int.rs:+1:29: +1:30
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:+1:5: +1:32
+ StorageDead(_3); // scope 0 at $DIR/if_condition_int.rs:+1:8: +1:15
_0 = const 1_u32; // scope 0 at $DIR/if_condition_int.rs:+1:29: +1:30
goto -> bb3; // scope 0 at $DIR/if_condition_int.rs:+1:5: +1:32
}
bb3: {
StorageDead(_2); // scope 0 at $DIR/if-condition-int.rs:+1:31: +1:32
return; // scope 0 at $DIR/if-condition-int.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/if_condition_int.rs:+1:31: +1:32
return; // scope 0 at $DIR/if_condition_int.rs:+2:2: +2:2
}
}

View file

@ -2,44 +2,44 @@
+ // MIR for `main` after Inline
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/asm-unwind.rs:+0:15: +0:15
let _1: (); // in scope 0 at $DIR/asm-unwind.rs:+1:5: +1:10
+ scope 1 (inlined foo) { // at $DIR/asm-unwind.rs:21:5: 21:10
+ let _2: D; // in scope 1 at $DIR/asm-unwind.rs:15:9: 15:11
let mut _0: (); // return place in scope 0 at $DIR/asm_unwind.rs:+0:15: +0:15
let _1: (); // in scope 0 at $DIR/asm_unwind.rs:+1:5: +1:10
+ scope 1 (inlined foo) { // at $DIR/asm_unwind.rs:21:5: 21:10
+ let _2: D; // in scope 1 at $DIR/asm_unwind.rs:15:9: 15:11
+ scope 2 {
+ debug _d => _2; // in scope 2 at $DIR/asm-unwind.rs:15:9: 15:11
+ debug _d => _2; // in scope 2 at $DIR/asm_unwind.rs:15:9: 15:11
+ scope 3 {
+ }
+ }
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/asm-unwind.rs:+1:5: +1:10
- _1 = foo() -> bb1; // scope 0 at $DIR/asm-unwind.rs:+1:5: +1:10
StorageLive(_1); // scope 0 at $DIR/asm_unwind.rs:+1:5: +1:10
- _1 = foo() -> bb1; // scope 0 at $DIR/asm_unwind.rs:+1:5: +1:10
- // mir::Constant
- // + span: $DIR/asm-unwind.rs:21:5: 21:8
- // + span: $DIR/asm_unwind.rs:21:5: 21:8
- // + literal: Const { ty: fn() {foo}, val: Value(<ZST>) }
+ StorageLive(_2); // scope 1 at $DIR/asm-unwind.rs:15:9: 15:11
+ asm!("", options(MAY_UNWIND)) -> [return: bb1, unwind: bb3]; // scope 3 at $DIR/asm-unwind.rs:16:14: 16:54
+ StorageLive(_2); // scope 1 at $DIR/asm_unwind.rs:15:9: 15:11
+ asm!("", options(MAY_UNWIND)) -> [return: bb1, unwind: bb3]; // scope 3 at $DIR/asm_unwind.rs:16:14: 16:54
}
bb1: {
+ drop(_2) -> bb2; // scope 1 at $DIR/asm-unwind.rs:17:1: 17:2
+ drop(_2) -> bb2; // scope 1 at $DIR/asm_unwind.rs:17:1: 17:2
+ }
+
+ bb2: {
+ StorageDead(_2); // scope 1 at $DIR/asm-unwind.rs:17:1: 17:2
StorageDead(_1); // scope 0 at $DIR/asm-unwind.rs:+1:10: +1:11
_0 = const (); // scope 0 at $DIR/asm-unwind.rs:+0:15: +2:2
return; // scope 0 at $DIR/asm-unwind.rs:+2:2: +2:2
+ StorageDead(_2); // scope 1 at $DIR/asm_unwind.rs:17:1: 17:2
StorageDead(_1); // scope 0 at $DIR/asm_unwind.rs:+1:10: +1:11
_0 = const (); // scope 0 at $DIR/asm_unwind.rs:+0:15: +2:2
return; // scope 0 at $DIR/asm_unwind.rs:+2:2: +2:2
+ }
+
+ bb3 (cleanup): {
+ drop(_2) -> bb4; // scope 1 at $DIR/asm-unwind.rs:17:1: 17:2
+ drop(_2) -> bb4; // scope 1 at $DIR/asm_unwind.rs:17:1: 17:2
+ }
+
+ bb4 (cleanup): {
+ resume; // scope 1 at $DIR/asm-unwind.rs:14:1: 17:2
+ resume; // scope 1 at $DIR/asm_unwind.rs:14:1: 17:2
}
}

View file

@ -2,32 +2,32 @@
+ // MIR for `foo` after Inline
fn foo() -> () {
let mut _0: (); // return place in scope 0 at $DIR/caller-with-trivial-bound.rs:+1:1: +1:1
let mut _1: <IntFactory as Factory<T>>::Item; // in scope 0 at $DIR/caller-with-trivial-bound.rs:+4:9: +4:14
let mut _0: (); // return place in scope 0 at $DIR/caller_with_trivial_bound.rs:+1:1: +1:1
let mut _1: <IntFactory as Factory<T>>::Item; // in scope 0 at $DIR/caller_with_trivial_bound.rs:+4:9: +4:14
scope 1 {
debug x => _1; // in scope 1 at $DIR/caller-with-trivial-bound.rs:+4:9: +4:14
debug x => _1; // in scope 1 at $DIR/caller_with_trivial_bound.rs:+4:9: +4:14
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/caller-with-trivial-bound.rs:+4:9: +4:14
_1 = bar::<T>() -> bb1; // scope 0 at $DIR/caller-with-trivial-bound.rs:+4:51: +4:61
StorageLive(_1); // scope 0 at $DIR/caller_with_trivial_bound.rs:+4:9: +4:14
_1 = bar::<T>() -> bb1; // scope 0 at $DIR/caller_with_trivial_bound.rs:+4:51: +4:61
// mir::Constant
// + span: $DIR/caller-with-trivial-bound.rs:20:51: 20:59
// + span: $DIR/caller_with_trivial_bound.rs:20:51: 20:59
// + literal: Const { ty: fn() -> <IntFactory as Factory<T>>::Item {bar::<T>}, val: Value(<ZST>) }
}
bb1: {
_0 = const (); // scope 0 at $DIR/caller-with-trivial-bound.rs:+3:1: +5:2
drop(_1) -> [return: bb2, unwind: bb3]; // scope 0 at $DIR/caller-with-trivial-bound.rs:+5:1: +5:2
_0 = const (); // scope 0 at $DIR/caller_with_trivial_bound.rs:+3:1: +5:2
drop(_1) -> [return: bb2, unwind: bb3]; // scope 0 at $DIR/caller_with_trivial_bound.rs:+5:1: +5:2
}
bb2: {
StorageDead(_1); // scope 0 at $DIR/caller-with-trivial-bound.rs:+5:1: +5:2
return; // scope 0 at $DIR/caller-with-trivial-bound.rs:+5:2: +5:2
StorageDead(_1); // scope 0 at $DIR/caller_with_trivial_bound.rs:+5:1: +5:2
return; // scope 0 at $DIR/caller_with_trivial_bound.rs:+5:2: +5:2
}
bb3 (cleanup): {
resume; // scope 0 at $DIR/caller-with-trivial-bound.rs:+0:1: +5:2
resume; // scope 0 at $DIR/caller_with_trivial_bound.rs:+0:1: +5:2
}
}

View file

@ -2,61 +2,61 @@
+ // MIR for `get_query` after Inline
fn get_query(_1: &T) -> () {
debug t => _1; // in scope 0 at $DIR/dyn-trait.rs:+0:31: +0:32
let mut _0: (); // return place in scope 0 at $DIR/dyn-trait.rs:+0:38: +0:38
let _2: &<Q as Query>::C; // in scope 0 at $DIR/dyn-trait.rs:+1:9: +1:10
let mut _3: &T; // in scope 0 at $DIR/dyn-trait.rs:+1:22: +1:23
let mut _4: &<Q as Query>::C; // in scope 0 at $DIR/dyn-trait.rs:+2:23: +2:24
debug t => _1; // in scope 0 at $DIR/dyn_trait.rs:+0:31: +0:32
let mut _0: (); // return place in scope 0 at $DIR/dyn_trait.rs:+0:38: +0:38
let _2: &<Q as Query>::C; // in scope 0 at $DIR/dyn_trait.rs:+1:9: +1:10
let mut _3: &T; // in scope 0 at $DIR/dyn_trait.rs:+1:22: +1:23
let mut _4: &<Q as Query>::C; // in scope 0 at $DIR/dyn_trait.rs:+2:23: +2:24
scope 1 {
debug c => _2; // in scope 1 at $DIR/dyn-trait.rs:+1:9: +1:10
+ scope 2 (inlined try_execute_query::<<Q as Query>::C>) { // at $DIR/dyn-trait.rs:34:5: 34:25
+ debug c => _4; // in scope 2 at $DIR/dyn-trait.rs:26:36: 26:37
+ let mut _5: &dyn Cache<V = <Q as Query>::V>; // in scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
+ let mut _6: &<Q as Query>::C; // in scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
+ scope 3 (inlined mk_cycle::<<Q as Query>::V>) { // at $DIR/dyn-trait.rs:27:5: 27:16
+ debug c => _5; // in scope 3 at $DIR/dyn-trait.rs:20:27: 20:28
+ let mut _7: &dyn Cache<V = <Q as Query>::V>; // in scope 3 at $DIR/dyn-trait.rs:21:5: 21:22
debug c => _2; // in scope 1 at $DIR/dyn_trait.rs:+1:9: +1:10
+ scope 2 (inlined try_execute_query::<<Q as Query>::C>) { // at $DIR/dyn_trait.rs:34:5: 34:25
+ debug c => _4; // in scope 2 at $DIR/dyn_trait.rs:26:36: 26:37
+ let mut _5: &dyn Cache<V = <Q as Query>::V>; // in scope 2 at $DIR/dyn_trait.rs:27:14: 27:15
+ let mut _6: &<Q as Query>::C; // in scope 2 at $DIR/dyn_trait.rs:27:14: 27:15
+ scope 3 (inlined mk_cycle::<<Q as Query>::V>) { // at $DIR/dyn_trait.rs:27:5: 27:16
+ debug c => _5; // in scope 3 at $DIR/dyn_trait.rs:20:27: 20:28
+ let mut _7: &dyn Cache<V = <Q as Query>::V>; // in scope 3 at $DIR/dyn_trait.rs:21:5: 21:22
+ }
+ }
}
bb0: {
StorageLive(_2); // scope 0 at $DIR/dyn-trait.rs:+1:9: +1:10
StorageLive(_3); // scope 0 at $DIR/dyn-trait.rs:+1:22: +1:23
_3 = &(*_1); // scope 0 at $DIR/dyn-trait.rs:+1:22: +1:23
_2 = <Q as Query>::cache::<T>(move _3) -> bb1; // scope 0 at $DIR/dyn-trait.rs:+1:13: +1:24
StorageLive(_2); // scope 0 at $DIR/dyn_trait.rs:+1:9: +1:10
StorageLive(_3); // scope 0 at $DIR/dyn_trait.rs:+1:22: +1:23
_3 = &(*_1); // scope 0 at $DIR/dyn_trait.rs:+1:22: +1:23
_2 = <Q as Query>::cache::<T>(move _3) -> bb1; // scope 0 at $DIR/dyn_trait.rs:+1:13: +1:24
// mir::Constant
// + span: $DIR/dyn-trait.rs:33:13: 33:21
// + span: $DIR/dyn_trait.rs:33:13: 33:21
// + user_ty: UserType(0)
// + literal: Const { ty: for<'a> fn(&'a T) -> &'a <Q as Query>::C {<Q as Query>::cache::<T>}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_3); // scope 0 at $DIR/dyn-trait.rs:+1:23: +1:24
StorageLive(_4); // scope 1 at $DIR/dyn-trait.rs:+2:23: +2:24
_4 = &(*_2); // scope 1 at $DIR/dyn-trait.rs:+2:23: +2:24
- _0 = try_execute_query::<<Q as Query>::C>(move _4) -> bb2; // scope 1 at $DIR/dyn-trait.rs:+2:5: +2:25
+ StorageLive(_5); // scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
+ StorageLive(_6); // scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
+ _6 = _4; // scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
+ _5 = move _6 as &dyn Cache<V = <Q as Query>::V> (Pointer(Unsize)); // scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
+ StorageDead(_6); // scope 2 at $DIR/dyn-trait.rs:27:14: 27:15
+ StorageLive(_7); // scope 3 at $DIR/dyn-trait.rs:21:5: 21:22
+ _7 = _5; // scope 3 at $DIR/dyn-trait.rs:21:5: 21:22
+ _0 = <dyn Cache<V = <Q as Query>::V> as Cache>::store_nocache(move _7) -> bb2; // scope 3 at $DIR/dyn-trait.rs:21:5: 21:22
StorageDead(_3); // scope 0 at $DIR/dyn_trait.rs:+1:23: +1:24
StorageLive(_4); // scope 1 at $DIR/dyn_trait.rs:+2:23: +2:24
_4 = &(*_2); // scope 1 at $DIR/dyn_trait.rs:+2:23: +2:24
- _0 = try_execute_query::<<Q as Query>::C>(move _4) -> bb2; // scope 1 at $DIR/dyn_trait.rs:+2:5: +2:25
+ StorageLive(_5); // scope 2 at $DIR/dyn_trait.rs:27:14: 27:15
+ StorageLive(_6); // scope 2 at $DIR/dyn_trait.rs:27:14: 27:15
+ _6 = _4; // scope 2 at $DIR/dyn_trait.rs:27:14: 27:15
+ _5 = move _6 as &dyn Cache<V = <Q as Query>::V> (Pointer(Unsize)); // scope 2 at $DIR/dyn_trait.rs:27:14: 27:15
+ StorageDead(_6); // scope 2 at $DIR/dyn_trait.rs:27:14: 27:15
+ StorageLive(_7); // scope 3 at $DIR/dyn_trait.rs:21:5: 21:22
+ _7 = _5; // scope 3 at $DIR/dyn_trait.rs:21:5: 21:22
+ _0 = <dyn Cache<V = <Q as Query>::V> as Cache>::store_nocache(move _7) -> bb2; // scope 3 at $DIR/dyn_trait.rs:21:5: 21:22
// mir::Constant
- // + span: $DIR/dyn-trait.rs:34:5: 34:22
- // + span: $DIR/dyn_trait.rs:34:5: 34:22
- // + literal: Const { ty: for<'a> fn(&'a <Q as Query>::C) {try_execute_query::<<Q as Query>::C>}, val: Value(<ZST>) }
+ // + span: $DIR/dyn-trait.rs:21:7: 21:20
+ // + span: $DIR/dyn_trait.rs:21:7: 21:20
+ // + literal: Const { ty: for<'a> fn(&'a dyn Cache<V = <Q as Query>::V>) {<dyn Cache<V = <Q as Query>::V> as Cache>::store_nocache}, val: Value(<ZST>) }
}
bb2: {
+ StorageDead(_7); // scope 3 at $DIR/dyn-trait.rs:21:21: 21:22
+ StorageDead(_5); // scope 2 at $DIR/dyn-trait.rs:27:15: 27:16
StorageDead(_4); // scope 1 at $DIR/dyn-trait.rs:+2:24: +2:25
StorageDead(_2); // scope 0 at $DIR/dyn-trait.rs:+3:1: +3:2
return; // scope 0 at $DIR/dyn-trait.rs:+3:2: +3:2
+ StorageDead(_7); // scope 3 at $DIR/dyn_trait.rs:21:21: 21:22
+ StorageDead(_5); // scope 2 at $DIR/dyn_trait.rs:27:15: 27:16
StorageDead(_4); // scope 1 at $DIR/dyn_trait.rs:+2:24: +2:25
StorageDead(_2); // scope 0 at $DIR/dyn_trait.rs:+3:1: +3:2
return; // scope 0 at $DIR/dyn_trait.rs:+3:2: +3:2
}
}

View file

@ -2,22 +2,22 @@
+ // MIR for `mk_cycle` after Inline
fn mk_cycle(_1: &dyn Cache<V = V>) -> () {
debug c => _1; // in scope 0 at $DIR/dyn-trait.rs:+0:27: +0:28
let mut _0: (); // return place in scope 0 at $DIR/dyn-trait.rs:+0:49: +0:49
let mut _2: &dyn Cache<V = V>; // in scope 0 at $DIR/dyn-trait.rs:+1:5: +1:22
debug c => _1; // in scope 0 at $DIR/dyn_trait.rs:+0:27: +0:28
let mut _0: (); // return place in scope 0 at $DIR/dyn_trait.rs:+0:49: +0:49
let mut _2: &dyn Cache<V = V>; // in scope 0 at $DIR/dyn_trait.rs:+1:5: +1:22
bb0: {
StorageLive(_2); // scope 0 at $DIR/dyn-trait.rs:+1:5: +1:22
_2 = &(*_1); // scope 0 at $DIR/dyn-trait.rs:+1:5: +1:22
_0 = <dyn Cache<V = V> as Cache>::store_nocache(move _2) -> bb1; // scope 0 at $DIR/dyn-trait.rs:+1:5: +1:22
StorageLive(_2); // scope 0 at $DIR/dyn_trait.rs:+1:5: +1:22
_2 = &(*_1); // scope 0 at $DIR/dyn_trait.rs:+1:5: +1:22
_0 = <dyn Cache<V = V> as Cache>::store_nocache(move _2) -> bb1; // scope 0 at $DIR/dyn_trait.rs:+1:5: +1:22
// mir::Constant
// + span: $DIR/dyn-trait.rs:21:7: 21:20
// + span: $DIR/dyn_trait.rs:21:7: 21:20
// + literal: Const { ty: for<'a> fn(&'a dyn Cache<V = V>) {<dyn Cache<V = V> as Cache>::store_nocache}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_2); // scope 0 at $DIR/dyn-trait.rs:+1:21: +1:22
return; // scope 0 at $DIR/dyn-trait.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/dyn_trait.rs:+1:21: +1:22
return; // scope 0 at $DIR/dyn_trait.rs:+2:2: +2:2
}
}

View file

@ -2,36 +2,36 @@
+ // MIR for `try_execute_query` after Inline
fn try_execute_query(_1: &C) -> () {
debug c => _1; // in scope 0 at $DIR/dyn-trait.rs:+0:36: +0:37
let mut _0: (); // return place in scope 0 at $DIR/dyn-trait.rs:+0:43: +0:43
let mut _2: &dyn Cache<V = <C as Cache>::V>; // in scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
let mut _3: &C; // in scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
+ scope 1 (inlined mk_cycle::<<C as Cache>::V>) { // at $DIR/dyn-trait.rs:27:5: 27:16
+ debug c => _2; // in scope 1 at $DIR/dyn-trait.rs:20:27: 20:28
+ let mut _4: &dyn Cache<V = <C as Cache>::V>; // in scope 1 at $DIR/dyn-trait.rs:21:5: 21:22
debug c => _1; // in scope 0 at $DIR/dyn_trait.rs:+0:36: +0:37
let mut _0: (); // return place in scope 0 at $DIR/dyn_trait.rs:+0:43: +0:43
let mut _2: &dyn Cache<V = <C as Cache>::V>; // in scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
let mut _3: &C; // in scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
+ scope 1 (inlined mk_cycle::<<C as Cache>::V>) { // at $DIR/dyn_trait.rs:27:5: 27:16
+ debug c => _2; // in scope 1 at $DIR/dyn_trait.rs:20:27: 20:28
+ let mut _4: &dyn Cache<V = <C as Cache>::V>; // in scope 1 at $DIR/dyn_trait.rs:21:5: 21:22
+ }
bb0: {
StorageLive(_2); // scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
StorageLive(_3); // scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
_3 = &(*_1); // scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
_2 = move _3 as &dyn Cache<V = <C as Cache>::V> (Pointer(Unsize)); // scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
StorageDead(_3); // scope 0 at $DIR/dyn-trait.rs:+1:14: +1:15
- _0 = mk_cycle::<<C as Cache>::V>(move _2) -> bb1; // scope 0 at $DIR/dyn-trait.rs:+1:5: +1:16
+ StorageLive(_4); // scope 1 at $DIR/dyn-trait.rs:21:5: 21:22
+ _4 = _2; // scope 1 at $DIR/dyn-trait.rs:21:5: 21:22
+ _0 = <dyn Cache<V = <C as Cache>::V> as Cache>::store_nocache(move _4) -> bb1; // scope 1 at $DIR/dyn-trait.rs:21:5: 21:22
StorageLive(_2); // scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
StorageLive(_3); // scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
_3 = &(*_1); // scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
_2 = move _3 as &dyn Cache<V = <C as Cache>::V> (Pointer(Unsize)); // scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
StorageDead(_3); // scope 0 at $DIR/dyn_trait.rs:+1:14: +1:15
- _0 = mk_cycle::<<C as Cache>::V>(move _2) -> bb1; // scope 0 at $DIR/dyn_trait.rs:+1:5: +1:16
+ StorageLive(_4); // scope 1 at $DIR/dyn_trait.rs:21:5: 21:22
+ _4 = _2; // scope 1 at $DIR/dyn_trait.rs:21:5: 21:22
+ _0 = <dyn Cache<V = <C as Cache>::V> as Cache>::store_nocache(move _4) -> bb1; // scope 1 at $DIR/dyn_trait.rs:21:5: 21:22
// mir::Constant
- // + span: $DIR/dyn-trait.rs:27:5: 27:13
- // + span: $DIR/dyn_trait.rs:27:5: 27:13
- // + literal: Const { ty: for<'a> fn(&'a (dyn Cache<V = <C as Cache>::V> + 'a)) {mk_cycle::<<C as Cache>::V>}, val: Value(<ZST>) }
+ // + span: $DIR/dyn-trait.rs:21:7: 21:20
+ // + span: $DIR/dyn_trait.rs:21:7: 21:20
+ // + literal: Const { ty: for<'a> fn(&'a dyn Cache<V = <C as Cache>::V>) {<dyn Cache<V = <C as Cache>::V> as Cache>::store_nocache}, val: Value(<ZST>) }
}
bb1: {
+ StorageDead(_4); // scope 1 at $DIR/dyn-trait.rs:21:21: 21:22
StorageDead(_2); // scope 0 at $DIR/dyn-trait.rs:+1:15: +1:16
return; // scope 0 at $DIR/dyn-trait.rs:+2:2: +2:2
+ StorageDead(_4); // scope 1 at $DIR/dyn_trait.rs:21:21: 21:22
StorageDead(_2); // scope 0 at $DIR/dyn_trait.rs:+1:15: +1:16
return; // scope 0 at $DIR/dyn_trait.rs:+2:2: +2:2
}
}

View file

@ -1,44 +1,44 @@
// MIR for `bar` after Inline
fn bar() -> bool {
let mut _0: bool; // return place in scope 0 at $DIR/inline-any-operand.rs:+0:13: +0:17
let _1: fn(i32, i32) -> bool {foo}; // in scope 0 at $DIR/inline-any-operand.rs:+1:9: +1:10
let mut _2: fn(i32, i32) -> bool {foo}; // in scope 0 at $DIR/inline-any-operand.rs:+2:5: +2:6
let mut _3: i32; // in scope 0 at $DIR/inline-any-operand.rs:+2:5: +2:13
let mut _4: i32; // in scope 0 at $DIR/inline-any-operand.rs:+2:5: +2:13
let mut _0: bool; // return place in scope 0 at $DIR/inline_any_operand.rs:+0:13: +0:17
let _1: fn(i32, i32) -> bool {foo}; // in scope 0 at $DIR/inline_any_operand.rs:+1:9: +1:10
let mut _2: fn(i32, i32) -> bool {foo}; // in scope 0 at $DIR/inline_any_operand.rs:+2:5: +2:6
let mut _3: i32; // in scope 0 at $DIR/inline_any_operand.rs:+2:5: +2:13
let mut _4: i32; // in scope 0 at $DIR/inline_any_operand.rs:+2:5: +2:13
scope 1 {
debug f => _1; // in scope 1 at $DIR/inline-any-operand.rs:+1:9: +1:10
scope 2 (inlined foo) { // at $DIR/inline-any-operand.rs:12:5: 12:13
debug x => _3; // in scope 2 at $DIR/inline-any-operand.rs:16:8: 16:9
debug y => _4; // in scope 2 at $DIR/inline-any-operand.rs:16:16: 16:17
let mut _5: i32; // in scope 2 at $DIR/inline-any-operand.rs:17:5: 17:6
let mut _6: i32; // in scope 2 at $DIR/inline-any-operand.rs:17:10: 17:11
debug f => _1; // in scope 1 at $DIR/inline_any_operand.rs:+1:9: +1:10
scope 2 (inlined foo) { // at $DIR/inline_any_operand.rs:12:5: 12:13
debug x => _3; // in scope 2 at $DIR/inline_any_operand.rs:16:8: 16:9
debug y => _4; // in scope 2 at $DIR/inline_any_operand.rs:16:16: 16:17
let mut _5: i32; // in scope 2 at $DIR/inline_any_operand.rs:17:5: 17:6
let mut _6: i32; // in scope 2 at $DIR/inline_any_operand.rs:17:10: 17:11
}
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-any-operand.rs:+1:9: +1:10
_1 = foo; // scope 0 at $DIR/inline-any-operand.rs:+1:13: +1:16
StorageLive(_1); // scope 0 at $DIR/inline_any_operand.rs:+1:9: +1:10
_1 = foo; // scope 0 at $DIR/inline_any_operand.rs:+1:13: +1:16
// mir::Constant
// + span: $DIR/inline-any-operand.rs:11:13: 11:16
// + span: $DIR/inline_any_operand.rs:11:13: 11:16
// + literal: Const { ty: fn(i32, i32) -> bool {foo}, val: Value(<ZST>) }
StorageLive(_2); // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:6
_2 = _1; // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:6
StorageLive(_3); // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
_3 = const 1_i32; // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
StorageLive(_4); // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
_4 = const -1_i32; // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
StorageLive(_5); // scope 2 at $DIR/inline-any-operand.rs:17:5: 17:6
_5 = _3; // scope 2 at $DIR/inline-any-operand.rs:17:5: 17:6
StorageLive(_6); // scope 2 at $DIR/inline-any-operand.rs:17:10: 17:11
_6 = _4; // scope 2 at $DIR/inline-any-operand.rs:17:10: 17:11
_0 = Eq(move _5, move _6); // scope 2 at $DIR/inline-any-operand.rs:17:5: 17:11
StorageDead(_6); // scope 2 at $DIR/inline-any-operand.rs:17:10: 17:11
StorageDead(_5); // scope 2 at $DIR/inline-any-operand.rs:17:10: 17:11
StorageDead(_4); // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
StorageDead(_3); // scope 1 at $DIR/inline-any-operand.rs:+2:5: +2:13
StorageDead(_2); // scope 1 at $DIR/inline-any-operand.rs:+2:12: +2:13
StorageDead(_1); // scope 0 at $DIR/inline-any-operand.rs:+3:1: +3:2
return; // scope 0 at $DIR/inline-any-operand.rs:+3:2: +3:2
StorageLive(_2); // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:6
_2 = _1; // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:6
StorageLive(_3); // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
_3 = const 1_i32; // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
StorageLive(_4); // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
_4 = const -1_i32; // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
StorageLive(_5); // scope 2 at $DIR/inline_any_operand.rs:17:5: 17:6
_5 = _3; // scope 2 at $DIR/inline_any_operand.rs:17:5: 17:6
StorageLive(_6); // scope 2 at $DIR/inline_any_operand.rs:17:10: 17:11
_6 = _4; // scope 2 at $DIR/inline_any_operand.rs:17:10: 17:11
_0 = Eq(move _5, move _6); // scope 2 at $DIR/inline_any_operand.rs:17:5: 17:11
StorageDead(_6); // scope 2 at $DIR/inline_any_operand.rs:17:10: 17:11
StorageDead(_5); // scope 2 at $DIR/inline_any_operand.rs:17:10: 17:11
StorageDead(_4); // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
StorageDead(_3); // scope 1 at $DIR/inline_any_operand.rs:+2:5: +2:13
StorageDead(_2); // scope 1 at $DIR/inline_any_operand.rs:+2:12: +2:13
StorageDead(_1); // scope 0 at $DIR/inline_any_operand.rs:+3:1: +3:2
return; // scope 0 at $DIR/inline_any_operand.rs:+3:2: +3:2
}
}

View file

@ -1,49 +1,49 @@
// MIR for `foo` after Inline
fn foo(_1: T, _2: i32) -> i32 {
debug _t => _1; // in scope 0 at $DIR/inline-closure.rs:+0:17: +0:19
debug q => _2; // in scope 0 at $DIR/inline-closure.rs:+0:24: +0:25
let mut _0: i32; // return place in scope 0 at $DIR/inline-closure.rs:+0:35: +0:38
let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure.rs:+1:9: +1:10
let mut _4: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure.rs:+2:5: +2:6
let mut _5: (i32, i32); // in scope 0 at $DIR/inline-closure.rs:+2:5: +2:12
let mut _6: i32; // in scope 0 at $DIR/inline-closure.rs:+2:7: +2:8
let mut _7: i32; // in scope 0 at $DIR/inline-closure.rs:+2:10: +2:11
let mut _8: i32; // in scope 0 at $DIR/inline-closure.rs:+2:5: +2:12
let mut _9: i32; // in scope 0 at $DIR/inline-closure.rs:+2:5: +2:12
debug _t => _1; // in scope 0 at $DIR/inline_closure.rs:+0:17: +0:19
debug q => _2; // in scope 0 at $DIR/inline_closure.rs:+0:24: +0:25
let mut _0: i32; // return place in scope 0 at $DIR/inline_closure.rs:+0:35: +0:38
let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure.rs:+1:9: +1:10
let mut _4: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure.rs:+2:5: +2:6
let mut _5: (i32, i32); // in scope 0 at $DIR/inline_closure.rs:+2:5: +2:12
let mut _6: i32; // in scope 0 at $DIR/inline_closure.rs:+2:7: +2:8
let mut _7: i32; // in scope 0 at $DIR/inline_closure.rs:+2:10: +2:11
let mut _8: i32; // in scope 0 at $DIR/inline_closure.rs:+2:5: +2:12
let mut _9: i32; // in scope 0 at $DIR/inline_closure.rs:+2:5: +2:12
scope 1 {
debug x => _3; // in scope 1 at $DIR/inline-closure.rs:+1:9: +1:10
scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline-closure.rs:12:5: 12:12
debug _t => _8; // in scope 2 at $DIR/inline-closure.rs:+1:14: +1:16
debug _q => _9; // in scope 2 at $DIR/inline-closure.rs:+1:18: +1:20
debug x => _3; // in scope 1 at $DIR/inline_closure.rs:+1:9: +1:10
scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline_closure.rs:12:5: 12:12
debug _t => _8; // in scope 2 at $DIR/inline_closure.rs:+1:14: +1:16
debug _q => _9; // in scope 2 at $DIR/inline_closure.rs:+1:18: +1:20
}
}
bb0: {
StorageLive(_3); // scope 0 at $DIR/inline-closure.rs:+1:9: +1:10
Deinit(_3); // scope 0 at $DIR/inline-closure.rs:+1:13: +1:24
StorageLive(_4); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:6
_4 = &_3; // scope 1 at $DIR/inline-closure.rs:+2:5: +2:6
StorageLive(_5); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
StorageLive(_6); // scope 1 at $DIR/inline-closure.rs:+2:7: +2:8
_6 = _2; // scope 1 at $DIR/inline-closure.rs:+2:7: +2:8
StorageLive(_7); // scope 1 at $DIR/inline-closure.rs:+2:10: +2:11
_7 = _2; // scope 1 at $DIR/inline-closure.rs:+2:10: +2:11
Deinit(_5); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
(_5.0: i32) = move _6; // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
(_5.1: i32) = move _7; // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
StorageLive(_8); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
_8 = move (_5.0: i32); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
StorageLive(_9); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
_9 = move (_5.1: i32); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
_0 = _8; // scope 2 at $DIR/inline-closure.rs:+1:22: +1:24
StorageDead(_9); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
StorageDead(_8); // scope 1 at $DIR/inline-closure.rs:+2:5: +2:12
StorageDead(_7); // scope 1 at $DIR/inline-closure.rs:+2:11: +2:12
StorageDead(_6); // scope 1 at $DIR/inline-closure.rs:+2:11: +2:12
StorageDead(_5); // scope 1 at $DIR/inline-closure.rs:+2:11: +2:12
StorageDead(_4); // scope 1 at $DIR/inline-closure.rs:+2:11: +2:12
StorageDead(_3); // scope 0 at $DIR/inline-closure.rs:+3:1: +3:2
return; // scope 0 at $DIR/inline-closure.rs:+3:2: +3:2
StorageLive(_3); // scope 0 at $DIR/inline_closure.rs:+1:9: +1:10
Deinit(_3); // scope 0 at $DIR/inline_closure.rs:+1:13: +1:24
StorageLive(_4); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:6
_4 = &_3; // scope 1 at $DIR/inline_closure.rs:+2:5: +2:6
StorageLive(_5); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
StorageLive(_6); // scope 1 at $DIR/inline_closure.rs:+2:7: +2:8
_6 = _2; // scope 1 at $DIR/inline_closure.rs:+2:7: +2:8
StorageLive(_7); // scope 1 at $DIR/inline_closure.rs:+2:10: +2:11
_7 = _2; // scope 1 at $DIR/inline_closure.rs:+2:10: +2:11
Deinit(_5); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
(_5.0: i32) = move _6; // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
(_5.1: i32) = move _7; // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
StorageLive(_8); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
_8 = move (_5.0: i32); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
StorageLive(_9); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
_9 = move (_5.1: i32); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
_0 = _8; // scope 2 at $DIR/inline_closure.rs:+1:22: +1:24
StorageDead(_9); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
StorageDead(_8); // scope 1 at $DIR/inline_closure.rs:+2:5: +2:12
StorageDead(_7); // scope 1 at $DIR/inline_closure.rs:+2:11: +2:12
StorageDead(_6); // scope 1 at $DIR/inline_closure.rs:+2:11: +2:12
StorageDead(_5); // scope 1 at $DIR/inline_closure.rs:+2:11: +2:12
StorageDead(_4); // scope 1 at $DIR/inline_closure.rs:+2:11: +2:12
StorageDead(_3); // scope 0 at $DIR/inline_closure.rs:+3:1: +3:2
return; // scope 0 at $DIR/inline_closure.rs:+3:2: +3:2
}
}

View file

@ -1,56 +1,56 @@
// MIR for `foo` after Inline
fn foo(_1: T, _2: &i32) -> i32 {
debug _t => _1; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+0:17: +0:19
debug q => _2; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+0:24: +0:25
let mut _0: i32; // return place in scope 0 at $DIR/inline-closure-borrows-arg.rs:+0:36: +0:39
let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+1:9: +1:10
let mut _4: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:6
let mut _5: (&i32, &i32); // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
let mut _6: &i32; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:7: +5:8
let mut _7: &i32; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:10: +5:11
let mut _8: &i32; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
let mut _9: &i32; // in scope 0 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
debug _t => _1; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+0:17: +0:19
debug q => _2; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+0:24: +0:25
let mut _0: i32; // return place in scope 0 at $DIR/inline_closure_borrows_arg.rs:+0:36: +0:39
let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+1:9: +1:10
let mut _4: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:6
let mut _5: (&i32, &i32); // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
let mut _6: &i32; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:7: +5:8
let mut _7: &i32; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:10: +5:11
let mut _8: &i32; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
let mut _9: &i32; // in scope 0 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
scope 1 {
debug x => _3; // in scope 1 at $DIR/inline-closure-borrows-arg.rs:+1:9: +1:10
scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline-closure-borrows-arg.rs:16:5: 16:12
debug r => _8; // in scope 2 at $DIR/inline-closure-borrows-arg.rs:+1:14: +1:15
debug _s => _9; // in scope 2 at $DIR/inline-closure-borrows-arg.rs:+1:23: +1:25
let _10: &i32; // in scope 2 at $DIR/inline-closure-borrows-arg.rs:+2:13: +2:21
debug x => _3; // in scope 1 at $DIR/inline_closure_borrows_arg.rs:+1:9: +1:10
scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline_closure_borrows_arg.rs:16:5: 16:12
debug r => _8; // in scope 2 at $DIR/inline_closure_borrows_arg.rs:+1:14: +1:15
debug _s => _9; // in scope 2 at $DIR/inline_closure_borrows_arg.rs:+1:23: +1:25
let _10: &i32; // in scope 2 at $DIR/inline_closure_borrows_arg.rs:+2:13: +2:21
scope 3 {
debug variable => _10; // in scope 3 at $DIR/inline-closure-borrows-arg.rs:+2:13: +2:21
debug variable => _10; // in scope 3 at $DIR/inline_closure_borrows_arg.rs:+2:13: +2:21
}
}
}
bb0: {
StorageLive(_3); // scope 0 at $DIR/inline-closure-borrows-arg.rs:+1:9: +1:10
Deinit(_3); // scope 0 at $DIR/inline-closure-borrows-arg.rs:+1:13: +4:6
StorageLive(_4); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:6
_4 = &_3; // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:6
StorageLive(_5); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
StorageLive(_6); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:7: +5:8
_6 = &(*_2); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:7: +5:8
StorageLive(_7); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:10: +5:11
_7 = &(*_2); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:10: +5:11
Deinit(_5); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
(_5.0: &i32) = move _6; // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
(_5.1: &i32) = move _7; // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
StorageLive(_8); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
_8 = move (_5.0: &i32); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
StorageLive(_9); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
_9 = move (_5.1: &i32); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
StorageLive(_10); // scope 2 at $DIR/inline-closure-borrows-arg.rs:+2:13: +2:21
_10 = _8; // scope 2 at $DIR/inline-closure-borrows-arg.rs:+2:24: +2:27
_0 = (*_10); // scope 3 at $DIR/inline-closure-borrows-arg.rs:+3:9: +3:18
StorageDead(_10); // scope 2 at $DIR/inline-closure-borrows-arg.rs:+4:5: +4:6
StorageDead(_9); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
StorageDead(_8); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:5: +5:12
StorageDead(_7); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:11: +5:12
StorageDead(_6); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:11: +5:12
StorageDead(_5); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:11: +5:12
StorageDead(_4); // scope 1 at $DIR/inline-closure-borrows-arg.rs:+5:11: +5:12
StorageDead(_3); // scope 0 at $DIR/inline-closure-borrows-arg.rs:+6:1: +6:2
return; // scope 0 at $DIR/inline-closure-borrows-arg.rs:+6:2: +6:2
StorageLive(_3); // scope 0 at $DIR/inline_closure_borrows_arg.rs:+1:9: +1:10
Deinit(_3); // scope 0 at $DIR/inline_closure_borrows_arg.rs:+1:13: +4:6
StorageLive(_4); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:6
_4 = &_3; // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:6
StorageLive(_5); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
StorageLive(_6); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:7: +5:8
_6 = &(*_2); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:7: +5:8
StorageLive(_7); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:10: +5:11
_7 = &(*_2); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:10: +5:11
Deinit(_5); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
(_5.0: &i32) = move _6; // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
(_5.1: &i32) = move _7; // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
StorageLive(_8); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
_8 = move (_5.0: &i32); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
StorageLive(_9); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
_9 = move (_5.1: &i32); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
StorageLive(_10); // scope 2 at $DIR/inline_closure_borrows_arg.rs:+2:13: +2:21
_10 = _8; // scope 2 at $DIR/inline_closure_borrows_arg.rs:+2:24: +2:27
_0 = (*_10); // scope 3 at $DIR/inline_closure_borrows_arg.rs:+3:9: +3:18
StorageDead(_10); // scope 2 at $DIR/inline_closure_borrows_arg.rs:+4:5: +4:6
StorageDead(_9); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
StorageDead(_8); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:5: +5:12
StorageDead(_7); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:11: +5:12
StorageDead(_6); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:11: +5:12
StorageDead(_5); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:11: +5:12
StorageDead(_4); // scope 1 at $DIR/inline_closure_borrows_arg.rs:+5:11: +5:12
StorageDead(_3); // scope 0 at $DIR/inline_closure_borrows_arg.rs:+6:1: +6:2
return; // scope 0 at $DIR/inline_closure_borrows_arg.rs:+6:2: +6:2
}
}

View file

@ -1,65 +1,65 @@
// MIR for `foo` after Inline
fn foo(_1: T, _2: i32) -> (i32, T) {
debug t => _1; // in scope 0 at $DIR/inline-closure-captures.rs:+0:17: +0:18
debug q => _2; // in scope 0 at $DIR/inline-closure-captures.rs:+0:23: +0:24
let mut _0: (i32, T); // return place in scope 0 at $DIR/inline-closure-captures.rs:+0:34: +0:42
let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure-captures.rs:+1:9: +1:10
let mut _4: &i32; // in scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
let mut _5: &T; // in scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
let mut _6: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline-closure-captures.rs:+2:5: +2:6
let mut _7: (i32,); // in scope 0 at $DIR/inline-closure-captures.rs:+2:5: +2:9
let mut _8: i32; // in scope 0 at $DIR/inline-closure-captures.rs:+2:7: +2:8
let mut _9: i32; // in scope 0 at $DIR/inline-closure-captures.rs:+2:5: +2:9
debug t => _1; // in scope 0 at $DIR/inline_closure_captures.rs:+0:17: +0:18
debug q => _2; // in scope 0 at $DIR/inline_closure_captures.rs:+0:23: +0:24
let mut _0: (i32, T); // return place in scope 0 at $DIR/inline_closure_captures.rs:+0:34: +0:42
let _3: [closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure_captures.rs:+1:9: +1:10
let mut _4: &i32; // in scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
let mut _5: &T; // in scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
let mut _6: &[closure@foo<T>::{closure#0}]; // in scope 0 at $DIR/inline_closure_captures.rs:+2:5: +2:6
let mut _7: (i32,); // in scope 0 at $DIR/inline_closure_captures.rs:+2:5: +2:9
let mut _8: i32; // in scope 0 at $DIR/inline_closure_captures.rs:+2:7: +2:8
let mut _9: i32; // in scope 0 at $DIR/inline_closure_captures.rs:+2:5: +2:9
scope 1 {
debug x => _3; // in scope 1 at $DIR/inline-closure-captures.rs:+1:9: +1:10
scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline-closure-captures.rs:12:5: 12:9
debug _q => _9; // in scope 2 at $DIR/inline-closure-captures.rs:+1:14: +1:16
debug q => (*((*_6).0: &i32)); // in scope 2 at $DIR/inline-closure-captures.rs:+0:23: +0:24
debug t => (*((*_6).1: &T)); // in scope 2 at $DIR/inline-closure-captures.rs:+0:17: +0:18
let mut _10: i32; // in scope 2 at $DIR/inline-closure-captures.rs:+1:19: +1:20
let mut _11: T; // in scope 2 at $DIR/inline-closure-captures.rs:+1:22: +1:23
let mut _12: &i32; // in scope 2 at $DIR/inline-closure-captures.rs:+1:13: +1:24
let mut _13: &T; // in scope 2 at $DIR/inline-closure-captures.rs:+1:13: +1:24
debug x => _3; // in scope 1 at $DIR/inline_closure_captures.rs:+1:9: +1:10
scope 2 (inlined foo::<T>::{closure#0}) { // at $DIR/inline_closure_captures.rs:12:5: 12:9
debug _q => _9; // in scope 2 at $DIR/inline_closure_captures.rs:+1:14: +1:16
debug q => (*((*_6).0: &i32)); // in scope 2 at $DIR/inline_closure_captures.rs:+0:23: +0:24
debug t => (*((*_6).1: &T)); // in scope 2 at $DIR/inline_closure_captures.rs:+0:17: +0:18
let mut _10: i32; // in scope 2 at $DIR/inline_closure_captures.rs:+1:19: +1:20
let mut _11: T; // in scope 2 at $DIR/inline_closure_captures.rs:+1:22: +1:23
let mut _12: &i32; // in scope 2 at $DIR/inline_closure_captures.rs:+1:13: +1:24
let mut _13: &T; // in scope 2 at $DIR/inline_closure_captures.rs:+1:13: +1:24
}
}
bb0: {
StorageLive(_3); // scope 0 at $DIR/inline-closure-captures.rs:+1:9: +1:10
StorageLive(_4); // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
_4 = &_2; // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
StorageLive(_5); // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
_5 = &_1; // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
Deinit(_3); // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
(_3.0: &i32) = move _4; // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
(_3.1: &T) = move _5; // scope 0 at $DIR/inline-closure-captures.rs:+1:13: +1:24
StorageDead(_5); // scope 0 at $DIR/inline-closure-captures.rs:+1:16: +1:17
StorageDead(_4); // scope 0 at $DIR/inline-closure-captures.rs:+1:16: +1:17
StorageLive(_6); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:6
_6 = &_3; // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:6
StorageLive(_7); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
StorageLive(_8); // scope 1 at $DIR/inline-closure-captures.rs:+2:7: +2:8
_8 = _2; // scope 1 at $DIR/inline-closure-captures.rs:+2:7: +2:8
Deinit(_7); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
(_7.0: i32) = move _8; // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
StorageLive(_9); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
_9 = move (_7.0: i32); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
StorageLive(_10); // scope 2 at $DIR/inline-closure-captures.rs:+1:19: +1:20
_12 = deref_copy ((*_6).0: &i32); // scope 2 at $DIR/inline-closure-captures.rs:+1:19: +1:20
_10 = (*_12); // scope 2 at $DIR/inline-closure-captures.rs:+1:19: +1:20
StorageLive(_11); // scope 2 at $DIR/inline-closure-captures.rs:+1:22: +1:23
_13 = deref_copy ((*_6).1: &T); // scope 2 at $DIR/inline-closure-captures.rs:+1:22: +1:23
_11 = (*_13); // scope 2 at $DIR/inline-closure-captures.rs:+1:22: +1:23
Deinit(_0); // scope 2 at $DIR/inline-closure-captures.rs:+1:18: +1:24
(_0.0: i32) = move _10; // scope 2 at $DIR/inline-closure-captures.rs:+1:18: +1:24
(_0.1: T) = move _11; // scope 2 at $DIR/inline-closure-captures.rs:+1:18: +1:24
StorageDead(_11); // scope 2 at $DIR/inline-closure-captures.rs:+1:23: +1:24
StorageDead(_10); // scope 2 at $DIR/inline-closure-captures.rs:+1:23: +1:24
StorageDead(_9); // scope 1 at $DIR/inline-closure-captures.rs:+2:5: +2:9
StorageDead(_8); // scope 1 at $DIR/inline-closure-captures.rs:+2:8: +2:9
StorageDead(_7); // scope 1 at $DIR/inline-closure-captures.rs:+2:8: +2:9
StorageDead(_6); // scope 1 at $DIR/inline-closure-captures.rs:+2:8: +2:9
StorageDead(_3); // scope 0 at $DIR/inline-closure-captures.rs:+3:1: +3:2
return; // scope 0 at $DIR/inline-closure-captures.rs:+3:2: +3:2
StorageLive(_3); // scope 0 at $DIR/inline_closure_captures.rs:+1:9: +1:10
StorageLive(_4); // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
_4 = &_2; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
StorageLive(_5); // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
_5 = &_1; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
Deinit(_3); // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
(_3.0: &i32) = move _4; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
(_3.1: &T) = move _5; // scope 0 at $DIR/inline_closure_captures.rs:+1:13: +1:24
StorageDead(_5); // scope 0 at $DIR/inline_closure_captures.rs:+1:16: +1:17
StorageDead(_4); // scope 0 at $DIR/inline_closure_captures.rs:+1:16: +1:17
StorageLive(_6); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:6
_6 = &_3; // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:6
StorageLive(_7); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
StorageLive(_8); // scope 1 at $DIR/inline_closure_captures.rs:+2:7: +2:8
_8 = _2; // scope 1 at $DIR/inline_closure_captures.rs:+2:7: +2:8
Deinit(_7); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
(_7.0: i32) = move _8; // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
StorageLive(_9); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
_9 = move (_7.0: i32); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
StorageLive(_10); // scope 2 at $DIR/inline_closure_captures.rs:+1:19: +1:20
_12 = deref_copy ((*_6).0: &i32); // scope 2 at $DIR/inline_closure_captures.rs:+1:19: +1:20
_10 = (*_12); // scope 2 at $DIR/inline_closure_captures.rs:+1:19: +1:20
StorageLive(_11); // scope 2 at $DIR/inline_closure_captures.rs:+1:22: +1:23
_13 = deref_copy ((*_6).1: &T); // scope 2 at $DIR/inline_closure_captures.rs:+1:22: +1:23
_11 = (*_13); // scope 2 at $DIR/inline_closure_captures.rs:+1:22: +1:23
Deinit(_0); // scope 2 at $DIR/inline_closure_captures.rs:+1:18: +1:24
(_0.0: i32) = move _10; // scope 2 at $DIR/inline_closure_captures.rs:+1:18: +1:24
(_0.1: T) = move _11; // scope 2 at $DIR/inline_closure_captures.rs:+1:18: +1:24
StorageDead(_11); // scope 2 at $DIR/inline_closure_captures.rs:+1:23: +1:24
StorageDead(_10); // scope 2 at $DIR/inline_closure_captures.rs:+1:23: +1:24
StorageDead(_9); // scope 1 at $DIR/inline_closure_captures.rs:+2:5: +2:9
StorageDead(_8); // scope 1 at $DIR/inline_closure_captures.rs:+2:8: +2:9
StorageDead(_7); // scope 1 at $DIR/inline_closure_captures.rs:+2:8: +2:9
StorageDead(_6); // scope 1 at $DIR/inline_closure_captures.rs:+2:8: +2:9
StorageDead(_3); // scope 0 at $DIR/inline_closure_captures.rs:+3:1: +3:2
return; // scope 0 at $DIR/inline_closure_captures.rs:+3:2: +3:2
}
}

View file

@ -2,23 +2,23 @@
+ // MIR for `inlined_no_sanitize` after Inline
fn inlined_no_sanitize() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:+0:37: +0:37
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
+ scope 1 (inlined no_sanitize) { // at $DIR/inline-compatibility.rs:24:5: 24:18
let mut _0: (); // return place in scope 0 at $DIR/inline_compatibility.rs:+0:37: +0:37
let _1: (); // in scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
+ scope 1 (inlined no_sanitize) { // at $DIR/inline_compatibility.rs:24:5: 24:18
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
- _1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
StorageLive(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
- _1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
- // mir::Constant
- // + span: $DIR/inline-compatibility.rs:24:5: 24:16
- // + span: $DIR/inline_compatibility.rs:24:5: 24:16
- // + literal: Const { ty: unsafe fn() {no_sanitize}, val: Value(<ZST>) }
- }
-
- bb1: {
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:18: +1:19
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:+0:37: +2:2
return; // scope 0 at $DIR/inline-compatibility.rs:+2:2: +2:2
StorageDead(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:18: +1:19
_0 = const (); // scope 0 at $DIR/inline_compatibility.rs:+0:37: +2:2
return; // scope 0 at $DIR/inline_compatibility.rs:+2:2: +2:2
}
}

View file

@ -2,23 +2,23 @@
+ // MIR for `inlined_target_feature` after Inline
fn inlined_target_feature() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:+0:40: +0:40
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
+ scope 1 (inlined target_feature) { // at $DIR/inline-compatibility.rs:13:5: 13:21
let mut _0: (); // return place in scope 0 at $DIR/inline_compatibility.rs:+0:40: +0:40
let _1: (); // in scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
+ scope 1 (inlined target_feature) { // at $DIR/inline_compatibility.rs:13:5: 13:21
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
- _1 = target_feature() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
StorageLive(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
- _1 = target_feature() -> bb1; // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
- // mir::Constant
- // + span: $DIR/inline-compatibility.rs:13:5: 13:19
- // + span: $DIR/inline_compatibility.rs:13:5: 13:19
- // + literal: Const { ty: unsafe fn() {target_feature}, val: Value(<ZST>) }
- }
-
- bb1: {
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:21: +1:22
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:+0:40: +2:2
return; // scope 0 at $DIR/inline-compatibility.rs:+2:2: +2:2
StorageDead(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:21: +1:22
_0 = const (); // scope 0 at $DIR/inline_compatibility.rs:+0:40: +2:2
return; // scope 0 at $DIR/inline_compatibility.rs:+2:2: +2:2
}
}

View file

@ -2,24 +2,24 @@
+ // MIR for `not_inlined_c_variadic` after Inline
fn not_inlined_c_variadic() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:+0:40: +0:40
let _1: u32; // in scope 0 at $DIR/inline-compatibility.rs:+1:9: +1:10
let mut _0: (); // return place in scope 0 at $DIR/inline_compatibility.rs:+0:40: +0:40
let _1: u32; // in scope 0 at $DIR/inline_compatibility.rs:+1:9: +1:10
scope 1 {
debug s => _1; // in scope 1 at $DIR/inline-compatibility.rs:+1:9: +1:10
debug s => _1; // in scope 1 at $DIR/inline_compatibility.rs:+1:9: +1:10
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:9: +1:10
_1 = sum(const 4_u32, const 4_u32, const 30_u32, const 200_u32, const 1000_u32) -> bb1; // scope 0 at $DIR/inline-compatibility.rs:+1:13: +1:52
StorageLive(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:9: +1:10
_1 = sum(const 4_u32, const 4_u32, const 30_u32, const 200_u32, const 1000_u32) -> bb1; // scope 0 at $DIR/inline_compatibility.rs:+1:13: +1:52
// mir::Constant
// + span: $DIR/inline-compatibility.rs:42:13: 42:16
// + span: $DIR/inline_compatibility.rs:42:13: 42:16
// + literal: Const { ty: unsafe extern "C" fn(u32, ...) -> u32 {sum}, val: Value(<ZST>) }
}
bb1: {
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:+0:40: +2:2
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:+2:1: +2:2
return; // scope 0 at $DIR/inline-compatibility.rs:+2:2: +2:2
_0 = const (); // scope 0 at $DIR/inline_compatibility.rs:+0:40: +2:2
StorageDead(_1); // scope 0 at $DIR/inline_compatibility.rs:+2:1: +2:2
return; // scope 0 at $DIR/inline_compatibility.rs:+2:2: +2:2
}
}

View file

@ -2,21 +2,21 @@
+ // MIR for `not_inlined_no_sanitize` after Inline
fn not_inlined_no_sanitize() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:+0:41: +0:41
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
let mut _0: (); // return place in scope 0 at $DIR/inline_compatibility.rs:+0:41: +0:41
let _1: (); // in scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
_1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:18
StorageLive(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
_1 = no_sanitize() -> bb1; // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:18
// mir::Constant
// + span: $DIR/inline-compatibility.rs:29:5: 29:16
// + span: $DIR/inline_compatibility.rs:29:5: 29:16
// + literal: Const { ty: unsafe fn() {no_sanitize}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:18: +1:19
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:+0:41: +2:2
return; // scope 0 at $DIR/inline-compatibility.rs:+2:2: +2:2
StorageDead(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:18: +1:19
_0 = const (); // scope 0 at $DIR/inline_compatibility.rs:+0:41: +2:2
return; // scope 0 at $DIR/inline_compatibility.rs:+2:2: +2:2
}
}

View file

@ -2,21 +2,21 @@
+ // MIR for `not_inlined_target_feature` after Inline
fn not_inlined_target_feature() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-compatibility.rs:+0:44: +0:44
let _1: (); // in scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
let mut _0: (); // return place in scope 0 at $DIR/inline_compatibility.rs:+0:44: +0:44
let _1: (); // in scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
_1 = target_feature() -> bb1; // scope 0 at $DIR/inline-compatibility.rs:+1:5: +1:21
StorageLive(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
_1 = target_feature() -> bb1; // scope 0 at $DIR/inline_compatibility.rs:+1:5: +1:21
// mir::Constant
// + span: $DIR/inline-compatibility.rs:18:5: 18:19
// + span: $DIR/inline_compatibility.rs:18:5: 18:19
// + literal: Const { ty: unsafe fn() {target_feature}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_1); // scope 0 at $DIR/inline-compatibility.rs:+1:21: +1:22
_0 = const (); // scope 0 at $DIR/inline-compatibility.rs:+0:44: +2:2
return; // scope 0 at $DIR/inline-compatibility.rs:+2:2: +2:2
StorageDead(_1); // scope 0 at $DIR/inline_compatibility.rs:+1:21: +1:22
_0 = const (); // scope 0 at $DIR/inline_compatibility.rs:+0:44: +2:2
return; // scope 0 at $DIR/inline_compatibility.rs:+2:2: +2:2
}
}

View file

@ -2,29 +2,29 @@
+ // MIR for `one` after Inline
fn one() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-cycle.rs:+0:10: +0:10
let _1: (); // in scope 0 at $DIR/inline-cycle.rs:+1:5: +1:24
+ scope 1 (inlined <C as Call>::call) { // at $DIR/inline-cycle.rs:14:5: 14:24
+ scope 2 (inlined <A<C> as Call>::call) { // at $DIR/inline-cycle.rs:43:9: 43:23
+ scope 3 (inlined <B<C> as Call>::call) { // at $DIR/inline-cycle.rs:28:9: 28:31
let mut _0: (); // return place in scope 0 at $DIR/inline_cycle.rs:+0:10: +0:10
let _1: (); // in scope 0 at $DIR/inline_cycle.rs:+1:5: +1:24
+ scope 1 (inlined <C as Call>::call) { // at $DIR/inline_cycle.rs:14:5: 14:24
+ scope 2 (inlined <A<C> as Call>::call) { // at $DIR/inline_cycle.rs:43:9: 43:23
+ scope 3 (inlined <B<C> as Call>::call) { // at $DIR/inline_cycle.rs:28:9: 28:31
+ }
+ }
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:24
- _1 = <C as Call>::call() -> bb1; // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:24
+ _1 = <C as Call>::call() -> bb1; // scope 3 at $DIR/inline-cycle.rs:36:9: 36:28
StorageLive(_1); // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:24
- _1 = <C as Call>::call() -> bb1; // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:24
+ _1 = <C as Call>::call() -> bb1; // scope 3 at $DIR/inline_cycle.rs:36:9: 36:28
// mir::Constant
- // + span: $DIR/inline-cycle.rs:14:5: 14:22
+ // + span: $DIR/inline-cycle.rs:36:9: 36:26
- // + span: $DIR/inline_cycle.rs:14:5: 14:22
+ // + span: $DIR/inline_cycle.rs:36:9: 36:26
// + literal: Const { ty: fn() {<C as Call>::call}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_1); // scope 0 at $DIR/inline-cycle.rs:+1:24: +1:25
_0 = const (); // scope 0 at $DIR/inline-cycle.rs:+0:10: +2:2
return; // scope 0 at $DIR/inline-cycle.rs:+2:2: +2:2
StorageDead(_1); // scope 0 at $DIR/inline_cycle.rs:+1:24: +1:25
_0 = const (); // scope 0 at $DIR/inline_cycle.rs:+0:10: +2:2
return; // scope 0 at $DIR/inline_cycle.rs:+2:2: +2:2
}
}

View file

@ -2,54 +2,54 @@
+ // MIR for `two` after Inline
fn two() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-cycle.rs:+0:10: +0:10
let _1: (); // in scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
+ let mut _2: fn() {f}; // in scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
+ scope 1 (inlined call::<fn() {f}>) { // at $DIR/inline-cycle.rs:49:5: 49:12
+ debug f => _2; // in scope 1 at $DIR/inline-cycle.rs:53:22: 53:23
+ let _3: (); // in scope 1 at $DIR/inline-cycle.rs:54:5: 54:8
+ let mut _4: fn() {f}; // in scope 1 at $DIR/inline-cycle.rs:54:5: 54:6
+ let mut _5: (); // in scope 1 at $DIR/inline-cycle.rs:54:5: 54:8
+ scope 2 (inlined <fn() {f} as FnOnce<()>>::call_once - shim(fn() {f})) { // at $DIR/inline-cycle.rs:54:5: 54:8
let mut _0: (); // return place in scope 0 at $DIR/inline_cycle.rs:+0:10: +0:10
let _1: (); // in scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
+ let mut _2: fn() {f}; // in scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
+ scope 1 (inlined call::<fn() {f}>) { // at $DIR/inline_cycle.rs:49:5: 49:12
+ debug f => _2; // in scope 1 at $DIR/inline_cycle.rs:53:22: 53:23
+ let _3: (); // in scope 1 at $DIR/inline_cycle.rs:54:5: 54:8
+ let mut _4: fn() {f}; // in scope 1 at $DIR/inline_cycle.rs:54:5: 54:6
+ let mut _5: (); // in scope 1 at $DIR/inline_cycle.rs:54:5: 54:8
+ scope 2 (inlined <fn() {f} as FnOnce<()>>::call_once - shim(fn() {f})) { // at $DIR/inline_cycle.rs:54:5: 54:8
+ scope 3 (inlined f) { // at $SRC_DIR/core/src/ops/function.rs:LL:COL
+ let _6: (); // in scope 3 at $DIR/inline-cycle.rs:59:5: 59:12
+ let _6: (); // in scope 3 at $DIR/inline_cycle.rs:59:5: 59:12
+ }
+ }
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
- _1 = call::<fn() {f}>(f) -> bb1; // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
+ StorageLive(_2); // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
+ _2 = f; // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
StorageLive(_1); // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
- _1 = call::<fn() {f}>(f) -> bb1; // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
+ StorageLive(_2); // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
+ _2 = f; // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
// mir::Constant
- // + span: $DIR/inline-cycle.rs:49:5: 49:9
+ // + span: $DIR/inline-cycle.rs:49:10: 49:11
- // + span: $DIR/inline_cycle.rs:49:5: 49:9
+ // + span: $DIR/inline_cycle.rs:49:10: 49:11
+ // + literal: Const { ty: fn() {f}, val: Value(<ZST>) }
+ StorageLive(_3); // scope 1 at $DIR/inline-cycle.rs:54:5: 54:8
+ StorageLive(_4); // scope 1 at $DIR/inline-cycle.rs:54:5: 54:6
+ _4 = move _2; // scope 1 at $DIR/inline-cycle.rs:54:5: 54:6
+ StorageLive(_5); // scope 1 at $DIR/inline-cycle.rs:54:5: 54:8
+ StorageLive(_6); // scope 3 at $DIR/inline-cycle.rs:59:5: 59:12
+ _6 = call::<fn() {f}>(f) -> bb1; // scope 3 at $DIR/inline-cycle.rs:59:5: 59:12
+ StorageLive(_3); // scope 1 at $DIR/inline_cycle.rs:54:5: 54:8
+ StorageLive(_4); // scope 1 at $DIR/inline_cycle.rs:54:5: 54:6
+ _4 = move _2; // scope 1 at $DIR/inline_cycle.rs:54:5: 54:6
+ StorageLive(_5); // scope 1 at $DIR/inline_cycle.rs:54:5: 54:8
+ StorageLive(_6); // scope 3 at $DIR/inline_cycle.rs:59:5: 59:12
+ _6 = call::<fn() {f}>(f) -> bb1; // scope 3 at $DIR/inline_cycle.rs:59:5: 59:12
+ // mir::Constant
+ // + span: $DIR/inline-cycle.rs:59:5: 59:9
+ // + span: $DIR/inline_cycle.rs:59:5: 59:9
// + literal: Const { ty: fn(fn() {f}) {call::<fn() {f}>}, val: Value(<ZST>) }
// mir::Constant
- // + span: $DIR/inline-cycle.rs:49:10: 49:11
+ // + span: $DIR/inline-cycle.rs:59:10: 59:11
- // + span: $DIR/inline_cycle.rs:49:10: 49:11
+ // + span: $DIR/inline_cycle.rs:59:10: 59:11
// + literal: Const { ty: fn() {f}, val: Value(<ZST>) }
}
bb1: {
+ StorageDead(_6); // scope 3 at $DIR/inline-cycle.rs:59:12: 59:13
+ StorageDead(_5); // scope 1 at $DIR/inline-cycle.rs:54:7: 54:8
+ StorageDead(_4); // scope 1 at $DIR/inline-cycle.rs:54:7: 54:8
+ StorageDead(_3); // scope 1 at $DIR/inline-cycle.rs:54:8: 54:9
+ StorageDead(_2); // scope 0 at $DIR/inline-cycle.rs:+1:5: +1:12
StorageDead(_1); // scope 0 at $DIR/inline-cycle.rs:+1:12: +1:13
_0 = const (); // scope 0 at $DIR/inline-cycle.rs:+0:10: +2:2
return; // scope 0 at $DIR/inline-cycle.rs:+2:2: +2:2
+ StorageDead(_6); // scope 3 at $DIR/inline_cycle.rs:59:12: 59:13
+ StorageDead(_5); // scope 1 at $DIR/inline_cycle.rs:54:7: 54:8
+ StorageDead(_4); // scope 1 at $DIR/inline_cycle.rs:54:7: 54:8
+ StorageDead(_3); // scope 1 at $DIR/inline_cycle.rs:54:8: 54:9
+ StorageDead(_2); // scope 0 at $DIR/inline_cycle.rs:+1:5: +1:12
StorageDead(_1); // scope 0 at $DIR/inline_cycle.rs:+1:12: +1:13
_0 = const (); // scope 0 at $DIR/inline_cycle.rs:+0:10: +2:2
return; // scope 0 at $DIR/inline_cycle.rs:+2:2: +2:2
}
}

View file

@ -2,31 +2,31 @@
+ // MIR for `main` after Inline
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-cycle-generic.rs:+0:11: +0:11
let _1: (); // in scope 0 at $DIR/inline-cycle-generic.rs:+1:5: +1:24
+ scope 1 (inlined <C as Call>::call) { // at $DIR/inline-cycle-generic.rs:9:5: 9:24
+ scope 2 (inlined <B<A> as Call>::call) { // at $DIR/inline-cycle-generic.rs:38:9: 38:31
+ scope 3 (inlined <A as Call>::call) { // at $DIR/inline-cycle-generic.rs:31:9: 31:28
+ scope 4 (inlined <B<C> as Call>::call) { // at $DIR/inline-cycle-generic.rs:23:9: 23:31
let mut _0: (); // return place in scope 0 at $DIR/inline_cycle_generic.rs:+0:11: +0:11
let _1: (); // in scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
+ scope 1 (inlined <C as Call>::call) { // at $DIR/inline_cycle_generic.rs:9:5: 9:24
+ scope 2 (inlined <B<A> as Call>::call) { // at $DIR/inline_cycle_generic.rs:38:9: 38:31
+ scope 3 (inlined <A as Call>::call) { // at $DIR/inline_cycle_generic.rs:31:9: 31:28
+ scope 4 (inlined <B<C> as Call>::call) { // at $DIR/inline_cycle_generic.rs:23:9: 23:31
+ }
+ }
+ }
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-cycle-generic.rs:+1:5: +1:24
- _1 = <C as Call>::call() -> bb1; // scope 0 at $DIR/inline-cycle-generic.rs:+1:5: +1:24
+ _1 = <C as Call>::call() -> bb1; // scope 4 at $DIR/inline-cycle-generic.rs:31:9: 31:28
StorageLive(_1); // scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
- _1 = <C as Call>::call() -> bb1; // scope 0 at $DIR/inline_cycle_generic.rs:+1:5: +1:24
+ _1 = <C as Call>::call() -> bb1; // scope 4 at $DIR/inline_cycle_generic.rs:31:9: 31:28
// mir::Constant
- // + span: $DIR/inline-cycle-generic.rs:9:5: 9:22
+ // + span: $DIR/inline-cycle-generic.rs:31:9: 31:26
- // + span: $DIR/inline_cycle_generic.rs:9:5: 9:22
+ // + span: $DIR/inline_cycle_generic.rs:31:9: 31:26
// + literal: Const { ty: fn() {<C as Call>::call}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_1); // scope 0 at $DIR/inline-cycle-generic.rs:+1:24: +1:25
_0 = const (); // scope 0 at $DIR/inline-cycle-generic.rs:+0:11: +2:2
return; // scope 0 at $DIR/inline-cycle-generic.rs:+2:2: +2:2
StorageDead(_1); // scope 0 at $DIR/inline_cycle_generic.rs:+1:24: +1:25
_0 = const (); // scope 0 at $DIR/inline_cycle_generic.rs:+0:11: +2:2
return; // scope 0 at $DIR/inline_cycle_generic.rs:+2:2: +2:2
}
}

View file

@ -2,23 +2,23 @@
+ // MIR for `f` after Inline
fn f() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-diverging.rs:+0:12: +0:12
let mut _1: !; // in scope 0 at $DIR/inline-diverging.rs:+0:12: +2:2
let _2: !; // in scope 0 at $DIR/inline-diverging.rs:+1:5: +1:12
+ scope 1 (inlined sleep) { // at $DIR/inline-diverging.rs:8:5: 8:12
let mut _0: (); // return place in scope 0 at $DIR/inline_diverging.rs:+0:12: +0:12
let mut _1: !; // in scope 0 at $DIR/inline_diverging.rs:+0:12: +2:2
let _2: !; // in scope 0 at $DIR/inline_diverging.rs:+1:5: +1:12
+ scope 1 (inlined sleep) { // at $DIR/inline_diverging.rs:8:5: 8:12
+ }
bb0: {
StorageLive(_2); // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:12
- _2 = sleep(); // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:12
StorageLive(_2); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:12
- _2 = sleep(); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:12
- // mir::Constant
- // + span: $DIR/inline-diverging.rs:8:5: 8:10
- // + span: $DIR/inline_diverging.rs:8:5: 8:10
- // + literal: Const { ty: fn() -> ! {sleep}, val: Value(<ZST>) }
+ goto -> bb1; // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:12
+ goto -> bb1; // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:12
+ }
+
+ bb1: {
+ goto -> bb1; // scope 1 at $DIR/inline-diverging.rs:39:5: 39:12
+ goto -> bb1; // scope 1 at $DIR/inline_diverging.rs:39:5: 39:12
}
}

View file

@ -2,42 +2,42 @@
+ // MIR for `g` after Inline
fn g(_1: i32) -> u32 {
debug i => _1; // in scope 0 at $DIR/inline-diverging.rs:+0:10: +0:11
let mut _0: u32; // return place in scope 0 at $DIR/inline-diverging.rs:+0:21: +0:24
let mut _2: bool; // in scope 0 at $DIR/inline-diverging.rs:+1:8: +1:13
let mut _3: i32; // in scope 0 at $DIR/inline-diverging.rs:+1:8: +1:9
let mut _4: i32; // in scope 0 at $DIR/inline-diverging.rs:+2:9: +2:10
let mut _5: !; // in scope 0 at $DIR/inline-diverging.rs:+3:12: +5:6
let _6: !; // in scope 0 at $DIR/inline-diverging.rs:+4:9: +4:16
+ scope 1 (inlined panic) { // at $DIR/inline-diverging.rs:16:9: 16:16
debug i => _1; // in scope 0 at $DIR/inline_diverging.rs:+0:10: +0:11
let mut _0: u32; // return place in scope 0 at $DIR/inline_diverging.rs:+0:21: +0:24
let mut _2: bool; // in scope 0 at $DIR/inline_diverging.rs:+1:8: +1:13
let mut _3: i32; // in scope 0 at $DIR/inline_diverging.rs:+1:8: +1:9
let mut _4: i32; // in scope 0 at $DIR/inline_diverging.rs:+2:9: +2:10
let mut _5: !; // in scope 0 at $DIR/inline_diverging.rs:+3:12: +5:6
let _6: !; // in scope 0 at $DIR/inline_diverging.rs:+4:9: +4:16
+ scope 1 (inlined panic) { // at $DIR/inline_diverging.rs:16:9: 16:16
+ let mut _7: !; // in scope 1 at $SRC_DIR/std/src/panic.rs:LL:COL
+ }
bb0: {
StorageLive(_2); // scope 0 at $DIR/inline-diverging.rs:+1:8: +1:13
StorageLive(_3); // scope 0 at $DIR/inline-diverging.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/inline-diverging.rs:+1:8: +1:9
_2 = Gt(move _3, const 0_i32); // scope 0 at $DIR/inline-diverging.rs:+1:8: +1:13
StorageDead(_3); // scope 0 at $DIR/inline-diverging.rs:+1:12: +1:13
switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/inline-diverging.rs:+1:8: +1:13
StorageLive(_2); // scope 0 at $DIR/inline_diverging.rs:+1:8: +1:13
StorageLive(_3); // scope 0 at $DIR/inline_diverging.rs:+1:8: +1:9
_3 = _1; // scope 0 at $DIR/inline_diverging.rs:+1:8: +1:9
_2 = Gt(move _3, const 0_i32); // scope 0 at $DIR/inline_diverging.rs:+1:8: +1:13
StorageDead(_3); // scope 0 at $DIR/inline_diverging.rs:+1:12: +1:13
switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/inline_diverging.rs:+1:8: +1:13
}
bb1: {
StorageLive(_4); // scope 0 at $DIR/inline-diverging.rs:+2:9: +2:10
_4 = _1; // scope 0 at $DIR/inline-diverging.rs:+2:9: +2:10
_0 = move _4 as u32 (IntToInt); // scope 0 at $DIR/inline-diverging.rs:+2:9: +2:17
StorageDead(_4); // scope 0 at $DIR/inline-diverging.rs:+2:16: +2:17
StorageDead(_2); // scope 0 at $DIR/inline-diverging.rs:+5:5: +5:6
return; // scope 0 at $DIR/inline-diverging.rs:+6:2: +6:2
StorageLive(_4); // scope 0 at $DIR/inline_diverging.rs:+2:9: +2:10
_4 = _1; // scope 0 at $DIR/inline_diverging.rs:+2:9: +2:10
_0 = move _4 as u32 (IntToInt); // scope 0 at $DIR/inline_diverging.rs:+2:9: +2:17
StorageDead(_4); // scope 0 at $DIR/inline_diverging.rs:+2:16: +2:17
StorageDead(_2); // scope 0 at $DIR/inline_diverging.rs:+5:5: +5:6
return; // scope 0 at $DIR/inline_diverging.rs:+6:2: +6:2
}
bb2: {
StorageLive(_6); // scope 0 at $DIR/inline-diverging.rs:+4:9: +4:16
- _6 = panic(); // scope 0 at $DIR/inline-diverging.rs:+4:9: +4:16
StorageLive(_6); // scope 0 at $DIR/inline_diverging.rs:+4:9: +4:16
- _6 = panic(); // scope 0 at $DIR/inline_diverging.rs:+4:9: +4:16
+ StorageLive(_7); // scope 1 at $SRC_DIR/std/src/panic.rs:LL:COL
+ _7 = begin_panic::<&str>(const "explicit panic"); // scope 1 at $SRC_DIR/std/src/panic.rs:LL:COL
// mir::Constant
- // + span: $DIR/inline-diverging.rs:16:9: 16:14
- // + span: $DIR/inline_diverging.rs:16:9: 16:14
- // + literal: Const { ty: fn() -> ! {panic}, val: Value(<ZST>) }
+ // + span: $SRC_DIR/std/src/panic.rs:LL:COL
+ // + literal: Const { ty: fn(&str) -> ! {begin_panic::<&str>}, val: Value(<ZST>) }

View file

@ -2,55 +2,55 @@
+ // MIR for `h` after Inline
fn h() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-diverging.rs:+0:12: +0:12
let _1: (!, !); // in scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
+ let mut _2: fn() -> ! {sleep}; // in scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
+ scope 1 (inlined call_twice::<!, fn() -> ! {sleep}>) { // at $DIR/inline-diverging.rs:22:5: 22:22
+ debug f => _2; // in scope 1 at $DIR/inline-diverging.rs:26:36: 26:37
+ let _3: !; // in scope 1 at $DIR/inline-diverging.rs:27:9: 27:10
+ let mut _4: &fn() -> ! {sleep}; // in scope 1 at $DIR/inline-diverging.rs:27:13: 27:14
+ let mut _5: (); // in scope 1 at $DIR/inline-diverging.rs:27:13: 27:16
+ let mut _7: &fn() -> ! {sleep}; // in scope 1 at $DIR/inline-diverging.rs:28:13: 28:14
+ let mut _8: (); // in scope 1 at $DIR/inline-diverging.rs:28:13: 28:16
+ let mut _9: !; // in scope 1 at $DIR/inline-diverging.rs:29:6: 29:7
+ let mut _10: !; // in scope 1 at $DIR/inline-diverging.rs:29:9: 29:10
let mut _0: (); // return place in scope 0 at $DIR/inline_diverging.rs:+0:12: +0:12
let _1: (!, !); // in scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
+ let mut _2: fn() -> ! {sleep}; // in scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
+ scope 1 (inlined call_twice::<!, fn() -> ! {sleep}>) { // at $DIR/inline_diverging.rs:22:5: 22:22
+ debug f => _2; // in scope 1 at $DIR/inline_diverging.rs:26:36: 26:37
+ let _3: !; // in scope 1 at $DIR/inline_diverging.rs:27:9: 27:10
+ let mut _4: &fn() -> ! {sleep}; // in scope 1 at $DIR/inline_diverging.rs:27:13: 27:14
+ let mut _5: (); // in scope 1 at $DIR/inline_diverging.rs:27:13: 27:16
+ let mut _7: &fn() -> ! {sleep}; // in scope 1 at $DIR/inline_diverging.rs:28:13: 28:14
+ let mut _8: (); // in scope 1 at $DIR/inline_diverging.rs:28:13: 28:16
+ let mut _9: !; // in scope 1 at $DIR/inline_diverging.rs:29:6: 29:7
+ let mut _10: !; // in scope 1 at $DIR/inline_diverging.rs:29:9: 29:10
+ scope 2 {
+ debug a => _3; // in scope 2 at $DIR/inline-diverging.rs:27:9: 27:10
+ let _6: !; // in scope 2 at $DIR/inline-diverging.rs:28:9: 28:10
+ debug a => _3; // in scope 2 at $DIR/inline_diverging.rs:27:9: 27:10
+ let _6: !; // in scope 2 at $DIR/inline_diverging.rs:28:9: 28:10
+ scope 3 {
+ debug b => _6; // in scope 3 at $DIR/inline-diverging.rs:28:9: 28:10
+ debug b => _6; // in scope 3 at $DIR/inline_diverging.rs:28:9: 28:10
+ }
+ scope 6 (inlined <fn() -> ! {sleep} as Fn<()>>::call - shim(fn() -> ! {sleep})) { // at $DIR/inline-diverging.rs:28:13: 28:16
+ scope 6 (inlined <fn() -> ! {sleep} as Fn<()>>::call - shim(fn() -> ! {sleep})) { // at $DIR/inline_diverging.rs:28:13: 28:16
+ scope 7 (inlined sleep) { // at $SRC_DIR/core/src/ops/function.rs:LL:COL
+ }
+ }
+ }
+ scope 4 (inlined <fn() -> ! {sleep} as Fn<()>>::call - shim(fn() -> ! {sleep})) { // at $DIR/inline-diverging.rs:27:13: 27:16
+ scope 4 (inlined <fn() -> ! {sleep} as Fn<()>>::call - shim(fn() -> ! {sleep})) { // at $DIR/inline_diverging.rs:27:13: 27:16
+ scope 5 (inlined sleep) { // at $SRC_DIR/core/src/ops/function.rs:LL:COL
+ }
+ }
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
- _1 = call_twice::<!, fn() -> ! {sleep}>(sleep); // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
+ StorageLive(_2); // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
+ _2 = sleep; // scope 0 at $DIR/inline-diverging.rs:+1:5: +1:22
StorageLive(_1); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
- _1 = call_twice::<!, fn() -> ! {sleep}>(sleep); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
+ StorageLive(_2); // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
+ _2 = sleep; // scope 0 at $DIR/inline_diverging.rs:+1:5: +1:22
// mir::Constant
- // + span: $DIR/inline-diverging.rs:22:5: 22:15
- // + span: $DIR/inline_diverging.rs:22:5: 22:15
- // + literal: Const { ty: fn(fn() -> ! {sleep}) -> (!, !) {call_twice::<!, fn() -> ! {sleep}>}, val: Value(<ZST>) }
- // mir::Constant
// + span: $DIR/inline-diverging.rs:22:16: 22:21
// + span: $DIR/inline_diverging.rs:22:16: 22:21
// + literal: Const { ty: fn() -> ! {sleep}, val: Value(<ZST>) }
+ StorageLive(_3); // scope 1 at $DIR/inline-diverging.rs:27:9: 27:10
+ StorageLive(_4); // scope 1 at $DIR/inline-diverging.rs:27:13: 27:14
+ _4 = &_2; // scope 1 at $DIR/inline-diverging.rs:27:13: 27:14
+ StorageLive(_5); // scope 1 at $DIR/inline-diverging.rs:27:13: 27:16
+ goto -> bb1; // scope 5 at $DIR/inline-diverging.rs:39:5: 39:12
+ StorageLive(_3); // scope 1 at $DIR/inline_diverging.rs:27:9: 27:10
+ StorageLive(_4); // scope 1 at $DIR/inline_diverging.rs:27:13: 27:14
+ _4 = &_2; // scope 1 at $DIR/inline_diverging.rs:27:13: 27:14
+ StorageLive(_5); // scope 1 at $DIR/inline_diverging.rs:27:13: 27:16
+ goto -> bb1; // scope 5 at $DIR/inline_diverging.rs:39:5: 39:12
+ }
+
+ bb1: {
+ goto -> bb1; // scope 5 at $DIR/inline-diverging.rs:39:5: 39:12
+ goto -> bb1; // scope 5 at $DIR/inline_diverging.rs:39:5: 39:12
}
}

View file

@ -2,59 +2,59 @@
+ // MIR for `main` after Inline
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-generator.rs:+0:11: +0:11
let _1: std::ops::GeneratorState<i32, bool>; // in scope 0 at $DIR/inline-generator.rs:+1:9: +1:11
let mut _2: std::pin::Pin<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>; // in scope 0 at $DIR/inline-generator.rs:+1:14: +1:32
let mut _3: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline-generator.rs:+1:23: +1:31
let mut _4: [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline-generator.rs:+1:28: +1:31
+ let mut _7: bool; // in scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
let mut _0: (); // return place in scope 0 at $DIR/inline_generator.rs:+0:11: +0:11
let _1: std::ops::GeneratorState<i32, bool>; // in scope 0 at $DIR/inline_generator.rs:+1:9: +1:11
let mut _2: std::pin::Pin<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>; // in scope 0 at $DIR/inline_generator.rs:+1:14: +1:32
let mut _3: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline_generator.rs:+1:23: +1:31
let mut _4: [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 0 at $DIR/inline_generator.rs:+1:28: +1:31
+ let mut _7: bool; // in scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
scope 1 {
debug _r => _1; // in scope 1 at $DIR/inline-generator.rs:+1:9: +1:11
debug _r => _1; // in scope 1 at $DIR/inline_generator.rs:+1:9: +1:11
}
+ scope 2 (inlined g) { // at $DIR/inline-generator.rs:9:28: 9:31
+ scope 2 (inlined g) { // at $DIR/inline_generator.rs:9:28: 9:31
+ }
+ scope 3 (inlined Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>::new) { // at $DIR/inline-generator.rs:9:14: 9:32
+ scope 3 (inlined Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new) { // at $DIR/inline_generator.rs:9:14: 9:32
+ debug pointer => _3; // in scope 3 at $SRC_DIR/core/src/pin.rs:LL:COL
+ let mut _5: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 3 at $SRC_DIR/core/src/pin.rs:LL:COL
+ let mut _5: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 3 at $SRC_DIR/core/src/pin.rs:LL:COL
+ scope 4 {
+ scope 5 (inlined Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>::new_unchecked) { // at $SRC_DIR/core/src/pin.rs:LL:COL
+ scope 5 (inlined Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new_unchecked) { // at $SRC_DIR/core/src/pin.rs:LL:COL
+ debug pointer => _5; // in scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ let mut _6: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ let mut _6: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ }
+ }
+ }
+ scope 6 (inlined g::{closure#0}) { // at $DIR/inline-generator.rs:9:14: 9:46
+ debug a => _11; // in scope 6 at $DIR/inline-generator.rs:15:6: 15:7
+ let mut _8: i32; // in scope 6 at $DIR/inline-generator.rs:15:17: 15:39
+ let mut _9: bool; // in scope 6 at $DIR/inline-generator.rs:15:20: 15:21
+ let mut _10: bool; // in scope 6 at $DIR/inline-generator.rs:15:9: 15:9
+ let _11: bool; // in scope 6 at $DIR/inline-generator.rs:15:6: 15:7
+ let mut _12: u32; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ let mut _13: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ let mut _14: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ let mut _15: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ scope 6 (inlined g::{closure#0}) { // at $DIR/inline_generator.rs:9:14: 9:46
+ debug a => _11; // in scope 6 at $DIR/inline_generator.rs:15:6: 15:7
+ let mut _8: i32; // in scope 6 at $DIR/inline_generator.rs:15:17: 15:39
+ let mut _9: bool; // in scope 6 at $DIR/inline_generator.rs:15:20: 15:21
+ let mut _10: bool; // in scope 6 at $DIR/inline_generator.rs:15:9: 15:9
+ let _11: bool; // in scope 6 at $DIR/inline_generator.rs:15:6: 15:7
+ let mut _12: u32; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ let mut _13: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ let mut _14: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ let mut _15: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]; // in scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-generator.rs:+1:9: +1:11
StorageLive(_2); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:32
StorageLive(_3); // scope 0 at $DIR/inline-generator.rs:+1:23: +1:31
StorageLive(_4); // scope 0 at $DIR/inline-generator.rs:+1:28: +1:31
- _4 = g() -> bb1; // scope 0 at $DIR/inline-generator.rs:+1:28: +1:31
StorageLive(_1); // scope 0 at $DIR/inline_generator.rs:+1:9: +1:11
StorageLive(_2); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:32
StorageLive(_3); // scope 0 at $DIR/inline_generator.rs:+1:23: +1:31
StorageLive(_4); // scope 0 at $DIR/inline_generator.rs:+1:28: +1:31
- _4 = g() -> bb1; // scope 0 at $DIR/inline_generator.rs:+1:28: +1:31
- // mir::Constant
- // + span: $DIR/inline-generator.rs:9:28: 9:29
- // + span: $DIR/inline_generator.rs:9:28: 9:29
- // + literal: Const { ty: fn() -> impl Generator<bool> {g}, val: Value(<ZST>) }
- }
-
- bb1: {
+ Deinit(_4); // scope 2 at $DIR/inline-generator.rs:15:5: 15:41
+ discriminant(_4) = 0; // scope 2 at $DIR/inline-generator.rs:15:5: 15:41
_3 = &mut _4; // scope 0 at $DIR/inline-generator.rs:+1:23: +1:31
- _2 = Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>::new(move _3) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/inline-generator.rs:+1:14: +1:32
+ Deinit(_4); // scope 2 at $DIR/inline_generator.rs:15:5: 15:41
+ discriminant(_4) = 0; // scope 2 at $DIR/inline_generator.rs:15:5: 15:41
_3 = &mut _4; // scope 0 at $DIR/inline_generator.rs:+1:23: +1:31
- _2 = Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new(move _3) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/inline_generator.rs:+1:14: +1:32
- // mir::Constant
- // + span: $DIR/inline-generator.rs:9:14: 9:22
- // + span: $DIR/inline_generator.rs:9:14: 9:22
- // + user_ty: UserType(0)
- // + literal: Const { ty: fn(&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]) -> Pin<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]> {Pin::<&mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>::new}, val: Value(<ZST>) }
- // + literal: Const { ty: fn(&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]) -> Pin<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]> {Pin::<&mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>::new}, val: Value(<ZST>) }
- }
-
- bb2: {
@ -63,86 +63,86 @@
+ StorageLive(_6); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ _6 = move _5; // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ Deinit(_2); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ (_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]) = move _6; // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]) = move _6; // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ StorageDead(_6); // scope 5 at $SRC_DIR/core/src/pin.rs:LL:COL
+ StorageDead(_5); // scope 4 at $SRC_DIR/core/src/pin.rs:LL:COL
StorageDead(_3); // scope 0 at $DIR/inline-generator.rs:+1:31: +1:32
- _1 = <[generator@$DIR/inline-generator.rs:15:5: 15:8] as Generator<bool>>::resume(move _2, const false) -> [return: bb3, unwind: bb4]; // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
StorageDead(_3); // scope 0 at $DIR/inline_generator.rs:+1:31: +1:32
- _1 = <[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::resume(move _2, const false) -> [return: bb3, unwind: bb4]; // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
- // mir::Constant
- // + span: $DIR/inline-generator.rs:9:33: 9:39
- // + literal: Const { ty: for<'a> fn(Pin<&'a mut [generator@$DIR/inline-generator.rs:15:5: 15:8]>, bool) -> GeneratorState<<[generator@$DIR/inline-generator.rs:15:5: 15:8] as Generator<bool>>::Yield, <[generator@$DIR/inline-generator.rs:15:5: 15:8] as Generator<bool>>::Return> {<[generator@$DIR/inline-generator.rs:15:5: 15:8] as Generator<bool>>::resume}, val: Value(<ZST>) }
+ StorageLive(_7); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
+ _7 = const false; // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
+ StorageLive(_10); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
+ StorageLive(_11); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
+ _13 = deref_copy (_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ _12 = discriminant((*_13)); // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ switchInt(move _12) -> [0_u32: bb3, 1_u32: bb8, 3_u32: bb7, otherwise: bb9]; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
- // + span: $DIR/inline_generator.rs:9:33: 9:39
- // + literal: Const { ty: for<'a> fn(Pin<&'a mut [generator@$DIR/inline_generator.rs:15:5: 15:8]>, bool) -> GeneratorState<<[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::Yield, <[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::Return> {<[generator@$DIR/inline_generator.rs:15:5: 15:8] as Generator<bool>>::resume}, val: Value(<ZST>) }
+ StorageLive(_7); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
+ _7 = const false; // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
+ StorageLive(_10); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
+ StorageLive(_11); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
+ _13 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ _12 = discriminant((*_13)); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ switchInt(move _12) -> [0_u32: bb3, 1_u32: bb8, 3_u32: bb7, otherwise: bb9]; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
}
- bb3: {
+ bb1: {
+ StorageDead(_11); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
+ StorageDead(_10); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
+ StorageDead(_7); // scope 0 at $DIR/inline-generator.rs:+1:14: +1:46
StorageDead(_2); // scope 0 at $DIR/inline-generator.rs:+1:45: +1:46
StorageDead(_4); // scope 0 at $DIR/inline-generator.rs:+1:46: +1:47
_0 = const (); // scope 0 at $DIR/inline-generator.rs:+0:11: +2:2
StorageDead(_1); // scope 0 at $DIR/inline-generator.rs:+2:1: +2:2
return; // scope 0 at $DIR/inline-generator.rs:+2:2: +2:2
+ StorageDead(_11); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
+ StorageDead(_10); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
+ StorageDead(_7); // scope 0 at $DIR/inline_generator.rs:+1:14: +1:46
StorageDead(_2); // scope 0 at $DIR/inline_generator.rs:+1:45: +1:46
StorageDead(_4); // scope 0 at $DIR/inline_generator.rs:+1:46: +1:47
_0 = const (); // scope 0 at $DIR/inline_generator.rs:+0:11: +2:2
StorageDead(_1); // scope 0 at $DIR/inline_generator.rs:+2:1: +2:2
return; // scope 0 at $DIR/inline_generator.rs:+2:2: +2:2
}
- bb4 (cleanup): {
+ bb2 (cleanup): {
resume; // scope 0 at $DIR/inline-generator.rs:+0:1: +2:2
resume; // scope 0 at $DIR/inline_generator.rs:+0:1: +2:2
+ }
+
+ bb3: {
+ _11 = move _7; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ StorageLive(_8); // scope 6 at $DIR/inline-generator.rs:15:17: 15:39
+ StorageLive(_9); // scope 6 at $DIR/inline-generator.rs:15:20: 15:21
+ _9 = _11; // scope 6 at $DIR/inline-generator.rs:15:20: 15:21
+ switchInt(move _9) -> [false: bb5, otherwise: bb4]; // scope 6 at $DIR/inline-generator.rs:15:20: 15:21
+ _11 = move _7; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ StorageLive(_8); // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
+ StorageLive(_9); // scope 6 at $DIR/inline_generator.rs:15:20: 15:21
+ _9 = _11; // scope 6 at $DIR/inline_generator.rs:15:20: 15:21
+ switchInt(move _9) -> [false: bb5, otherwise: bb4]; // scope 6 at $DIR/inline_generator.rs:15:20: 15:21
+ }
+
+ bb4: {
+ _8 = const 7_i32; // scope 6 at $DIR/inline-generator.rs:15:24: 15:25
+ goto -> bb6; // scope 6 at $DIR/inline-generator.rs:15:17: 15:39
+ _8 = const 7_i32; // scope 6 at $DIR/inline_generator.rs:15:24: 15:25
+ goto -> bb6; // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
+ }
+
+ bb5: {
+ _8 = const 13_i32; // scope 6 at $DIR/inline-generator.rs:15:35: 15:37
+ goto -> bb6; // scope 6 at $DIR/inline-generator.rs:15:17: 15:39
+ _8 = const 13_i32; // scope 6 at $DIR/inline_generator.rs:15:35: 15:37
+ goto -> bb6; // scope 6 at $DIR/inline_generator.rs:15:17: 15:39
+ }
+
+ bb6: {
+ StorageDead(_9); // scope 6 at $DIR/inline-generator.rs:15:38: 15:39
+ Deinit(_1); // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
+ ((_1 as Yielded).0: i32) = move _8; // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
+ discriminant(_1) = 0; // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
+ _14 = deref_copy (_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
+ discriminant((*_14)) = 3; // scope 6 at $DIR/inline-generator.rs:15:11: 15:39
+ goto -> bb1; // scope 0 at $DIR/inline-generator.rs:15:11: 15:39
+ StorageDead(_9); // scope 6 at $DIR/inline_generator.rs:15:38: 15:39
+ Deinit(_1); // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
+ ((_1 as Yielded).0: i32) = move _8; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
+ discriminant(_1) = 0; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
+ _14 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
+ discriminant((*_14)) = 3; // scope 6 at $DIR/inline_generator.rs:15:11: 15:39
+ goto -> bb1; // scope 0 at $DIR/inline_generator.rs:15:11: 15:39
+ }
+
+ bb7: {
+ StorageLive(_8); // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ _10 = move _7; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ StorageDead(_8); // scope 6 at $DIR/inline-generator.rs:15:38: 15:39
+ Deinit(_1); // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
+ ((_1 as Complete).0: bool) = move _10; // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
+ discriminant(_1) = 1; // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
+ _15 = deref_copy (_2.0: &mut [generator@$DIR/inline-generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
+ discriminant((*_15)) = 1; // scope 6 at $DIR/inline-generator.rs:15:41: 15:41
+ goto -> bb1; // scope 0 at $DIR/inline-generator.rs:15:41: 15:41
+ StorageLive(_8); // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ _10 = move _7; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ StorageDead(_8); // scope 6 at $DIR/inline_generator.rs:15:38: 15:39
+ Deinit(_1); // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
+ ((_1 as Complete).0: bool) = move _10; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
+ discriminant(_1) = 1; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
+ _15 = deref_copy (_2.0: &mut [generator@$DIR/inline_generator.rs:15:5: 15:8]); // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
+ discriminant((*_15)) = 1; // scope 6 at $DIR/inline_generator.rs:15:41: 15:41
+ goto -> bb1; // scope 0 at $DIR/inline_generator.rs:15:41: 15:41
+ }
+
+ bb8: {
+ assert(const false, "generator resumed after completion") -> [success: bb8, unwind: bb2]; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ assert(const false, "generator resumed after completion") -> [success: bb8, unwind: bb2]; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
+ }
+
+ bb9: {
+ unreachable; // scope 6 at $DIR/inline-generator.rs:15:5: 15:41
+ unreachable; // scope 6 at $DIR/inline_generator.rs:15:5: 15:41
}
}

View file

@ -2,43 +2,43 @@
+ // MIR for `default` after Inline
fn default() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-instruction-set.rs:+0:18: +0:18
let _1: (); // in scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
let _2: (); // in scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
let _3: (); // in scope 0 at $DIR/inline-instruction-set.rs:+3:5: +3:30
+ scope 1 (inlined instruction_set_default) { // at $DIR/inline-instruction-set.rs:53:5: 53:30
let mut _0: (); // return place in scope 0 at $DIR/inline_instruction_set.rs:+0:18: +0:18
let _1: (); // in scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
let _2: (); // in scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
let _3: (); // in scope 0 at $DIR/inline_instruction_set.rs:+3:5: +3:30
+ scope 1 (inlined instruction_set_default) { // at $DIR/inline_instruction_set.rs:53:5: 53:30
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
_1 = instruction_set_a32() -> bb1; // scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
StorageLive(_1); // scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
_1 = instruction_set_a32() -> bb1; // scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
// mir::Constant
// + span: $DIR/inline-instruction-set.rs:51:5: 51:24
// + span: $DIR/inline_instruction_set.rs:51:5: 51:24
// + literal: Const { ty: fn() {instruction_set_a32}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_1); // scope 0 at $DIR/inline-instruction-set.rs:+1:26: +1:27
StorageLive(_2); // scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
_2 = instruction_set_t32() -> bb2; // scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
StorageDead(_1); // scope 0 at $DIR/inline_instruction_set.rs:+1:26: +1:27
StorageLive(_2); // scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
_2 = instruction_set_t32() -> bb2; // scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
// mir::Constant
// + span: $DIR/inline-instruction-set.rs:52:5: 52:24
// + span: $DIR/inline_instruction_set.rs:52:5: 52:24
// + literal: Const { ty: fn() {instruction_set_t32}, val: Value(<ZST>) }
}
bb2: {
StorageDead(_2); // scope 0 at $DIR/inline-instruction-set.rs:+2:26: +2:27
StorageLive(_3); // scope 0 at $DIR/inline-instruction-set.rs:+3:5: +3:30
- _3 = instruction_set_default() -> bb3; // scope 0 at $DIR/inline-instruction-set.rs:+3:5: +3:30
StorageDead(_2); // scope 0 at $DIR/inline_instruction_set.rs:+2:26: +2:27
StorageLive(_3); // scope 0 at $DIR/inline_instruction_set.rs:+3:5: +3:30
- _3 = instruction_set_default() -> bb3; // scope 0 at $DIR/inline_instruction_set.rs:+3:5: +3:30
- // mir::Constant
- // + span: $DIR/inline-instruction-set.rs:53:5: 53:28
- // + span: $DIR/inline_instruction_set.rs:53:5: 53:28
- // + literal: Const { ty: fn() {instruction_set_default}, val: Value(<ZST>) }
- }
-
- bb3: {
StorageDead(_3); // scope 0 at $DIR/inline-instruction-set.rs:+3:30: +3:31
_0 = const (); // scope 0 at $DIR/inline-instruction-set.rs:+0:18: +4:2
return; // scope 0 at $DIR/inline-instruction-set.rs:+4:2: +4:2
StorageDead(_3); // scope 0 at $DIR/inline_instruction_set.rs:+3:30: +3:31
_0 = const (); // scope 0 at $DIR/inline_instruction_set.rs:+0:18: +4:2
return; // scope 0 at $DIR/inline_instruction_set.rs:+4:2: +4:2
}
}

View file

@ -2,45 +2,45 @@
+ // MIR for `t32` after Inline
fn t32() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-instruction-set.rs:+0:14: +0:14
let _1: (); // in scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
let _2: (); // in scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
let _3: (); // in scope 0 at $DIR/inline-instruction-set.rs:+5:5: +5:30
+ scope 1 (inlined instruction_set_t32) { // at $DIR/inline-instruction-set.rs:43:5: 43:26
let mut _0: (); // return place in scope 0 at $DIR/inline_instruction_set.rs:+0:14: +0:14
let _1: (); // in scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
let _2: (); // in scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
let _3: (); // in scope 0 at $DIR/inline_instruction_set.rs:+5:5: +5:30
+ scope 1 (inlined instruction_set_t32) { // at $DIR/inline_instruction_set.rs:43:5: 43:26
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
_1 = instruction_set_a32() -> bb1; // scope 0 at $DIR/inline-instruction-set.rs:+1:5: +1:26
StorageLive(_1); // scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
_1 = instruction_set_a32() -> bb1; // scope 0 at $DIR/inline_instruction_set.rs:+1:5: +1:26
// mir::Constant
// + span: $DIR/inline-instruction-set.rs:42:5: 42:24
// + span: $DIR/inline_instruction_set.rs:42:5: 42:24
// + literal: Const { ty: fn() {instruction_set_a32}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_1); // scope 0 at $DIR/inline-instruction-set.rs:+1:26: +1:27
StorageLive(_2); // scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
- _2 = instruction_set_t32() -> bb2; // scope 0 at $DIR/inline-instruction-set.rs:+2:5: +2:26
StorageDead(_1); // scope 0 at $DIR/inline_instruction_set.rs:+1:26: +1:27
StorageLive(_2); // scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
- _2 = instruction_set_t32() -> bb2; // scope 0 at $DIR/inline_instruction_set.rs:+2:5: +2:26
- // mir::Constant
- // + span: $DIR/inline-instruction-set.rs:43:5: 43:24
- // + span: $DIR/inline_instruction_set.rs:43:5: 43:24
- // + literal: Const { ty: fn() {instruction_set_t32}, val: Value(<ZST>) }
- }
-
- bb2: {
StorageDead(_2); // scope 0 at $DIR/inline-instruction-set.rs:+2:26: +2:27
StorageLive(_3); // scope 0 at $DIR/inline-instruction-set.rs:+5:5: +5:30
- _3 = instruction_set_default() -> bb3; // scope 0 at $DIR/inline-instruction-set.rs:+5:5: +5:30
+ _3 = instruction_set_default() -> bb2; // scope 0 at $DIR/inline-instruction-set.rs:+5:5: +5:30
StorageDead(_2); // scope 0 at $DIR/inline_instruction_set.rs:+2:26: +2:27
StorageLive(_3); // scope 0 at $DIR/inline_instruction_set.rs:+5:5: +5:30
- _3 = instruction_set_default() -> bb3; // scope 0 at $DIR/inline_instruction_set.rs:+5:5: +5:30
+ _3 = instruction_set_default() -> bb2; // scope 0 at $DIR/inline_instruction_set.rs:+5:5: +5:30
// mir::Constant
// + span: $DIR/inline-instruction-set.rs:46:5: 46:28
// + span: $DIR/inline_instruction_set.rs:46:5: 46:28
// + literal: Const { ty: fn() {instruction_set_default}, val: Value(<ZST>) }
}
- bb3: {
+ bb2: {
StorageDead(_3); // scope 0 at $DIR/inline-instruction-set.rs:+5:30: +5:31
_0 = const (); // scope 0 at $DIR/inline-instruction-set.rs:+0:14: +6:2
return; // scope 0 at $DIR/inline-instruction-set.rs:+6:2: +6:2
StorageDead(_3); // scope 0 at $DIR/inline_instruction_set.rs:+5:30: +5:31
_0 = const (); // scope 0 at $DIR/inline_instruction_set.rs:+0:14: +6:2
return; // scope 0 at $DIR/inline_instruction_set.rs:+6:2: +6:2
}
}

View file

@ -2,45 +2,45 @@
+ // MIR for `main` after Inline
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-into-box-place.rs:+0:11: +0:11
let _1: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:9: +1:11
let mut _2: usize; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
let mut _3: usize; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
let mut _4: *mut u8; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
let mut _5: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
let mut _6: (); // in scope 0 at $DIR/inline-into-box-place.rs:+1:42: +1:43
let mut _7: *const std::vec::Vec<u32>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
+ let mut _8: &mut std::vec::Vec<u32>; // in scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
let mut _0: (); // return place in scope 0 at $DIR/inline_into_box_place.rs:+0:11: +0:11
let _1: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline_into_box_place.rs:+1:9: +1:11
let mut _2: usize; // in scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
let mut _3: usize; // in scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
let mut _4: *mut u8; // in scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
let mut _5: std::boxed::Box<std::vec::Vec<u32>>; // in scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
let mut _6: (); // in scope 0 at $DIR/inline_into_box_place.rs:+1:42: +1:43
let mut _7: *const std::vec::Vec<u32>; // in scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
+ let mut _8: &mut std::vec::Vec<u32>; // in scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
scope 1 {
debug _x => _1; // in scope 1 at $DIR/inline-into-box-place.rs:+1:9: +1:11
debug _x => _1; // in scope 1 at $DIR/inline_into_box_place.rs:+1:9: +1:11
}
scope 2 {
}
+ scope 3 (inlined Vec::<u32>::new) { // at $DIR/inline-into-box-place.rs:8:33: 8:43
+ scope 3 (inlined Vec::<u32>::new) { // at $DIR/inline_into_box_place.rs:8:33: 8:43
+ let mut _9: alloc::raw_vec::RawVec<u32>; // in scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-into-box-place.rs:+1:9: +1:11
_2 = SizeOf(std::vec::Vec<u32>); // scope 2 at $DIR/inline-into-box-place.rs:+1:29: +1:43
_3 = AlignOf(std::vec::Vec<u32>); // scope 2 at $DIR/inline-into-box-place.rs:+1:29: +1:43
_4 = alloc::alloc::exchange_malloc(move _2, move _3) -> bb1; // scope 2 at $DIR/inline-into-box-place.rs:+1:29: +1:43
StorageLive(_1); // scope 0 at $DIR/inline_into_box_place.rs:+1:9: +1:11
_2 = SizeOf(std::vec::Vec<u32>); // scope 2 at $DIR/inline_into_box_place.rs:+1:29: +1:43
_3 = AlignOf(std::vec::Vec<u32>); // scope 2 at $DIR/inline_into_box_place.rs:+1:29: +1:43
_4 = alloc::alloc::exchange_malloc(move _2, move _3) -> bb1; // scope 2 at $DIR/inline_into_box_place.rs:+1:29: +1:43
// mir::Constant
// + span: $DIR/inline-into-box-place.rs:8:29: 8:43
// + span: $DIR/inline_into_box_place.rs:8:29: 8:43
// + literal: Const { ty: unsafe fn(usize, usize) -> *mut u8 {alloc::alloc::exchange_malloc}, val: Value(<ZST>) }
}
bb1: {
StorageLive(_5); // scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
_5 = ShallowInitBox(move _4, std::vec::Vec<u32>); // scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
_7 = (((_5.0: std::ptr::Unique<std::vec::Vec<u32>>).0: std::ptr::NonNull<std::vec::Vec<u32>>).0: *const std::vec::Vec<u32>); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
- (*_7) = Vec::<u32>::new() -> [return: bb2, unwind: bb5]; // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
+ StorageLive(_8); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
+ _8 = &mut (*_7); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
StorageLive(_5); // scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
_5 = ShallowInitBox(move _4, std::vec::Vec<u32>); // scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
_7 = (((_5.0: std::ptr::Unique<std::vec::Vec<u32>>).0: std::ptr::NonNull<std::vec::Vec<u32>>).0: *const std::vec::Vec<u32>); // scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
- (*_7) = Vec::<u32>::new() -> [return: bb2, unwind: bb5]; // scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
+ StorageLive(_8); // scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
+ _8 = &mut (*_7); // scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
+ StorageLive(_9); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
+ _9 = const _; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
// mir::Constant
- // + span: $DIR/inline-into-box-place.rs:8:33: 8:41
- // + span: $DIR/inline_into_box_place.rs:8:33: 8:41
- // + user_ty: UserType(1)
- // + literal: Const { ty: fn() -> Vec<u32> {Vec::<u32>::new}, val: Value(<ZST>) }
- }
@ -53,29 +53,29 @@
+ ((*_8).0: alloc::raw_vec::RawVec<u32>) = move _9; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
+ ((*_8).1: usize) = const 0_usize; // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
+ StorageDead(_9); // scope 3 at $SRC_DIR/alloc/src/vec/mod.rs:LL:COL
+ StorageDead(_8); // scope 0 at $DIR/inline-into-box-place.rs:+1:33: +1:43
_1 = move _5; // scope 0 at $DIR/inline-into-box-place.rs:+1:29: +1:43
StorageDead(_5); // scope 0 at $DIR/inline-into-box-place.rs:+1:42: +1:43
_0 = const (); // scope 0 at $DIR/inline-into-box-place.rs:+0:11: +2:2
- drop(_1) -> [return: bb3, unwind: bb4]; // scope 0 at $DIR/inline-into-box-place.rs:+2:1: +2:2
+ drop(_1) -> [return: bb2, unwind: bb3]; // scope 0 at $DIR/inline-into-box-place.rs:+2:1: +2:2
+ StorageDead(_8); // scope 0 at $DIR/inline_into_box_place.rs:+1:33: +1:43
_1 = move _5; // scope 0 at $DIR/inline_into_box_place.rs:+1:29: +1:43
StorageDead(_5); // scope 0 at $DIR/inline_into_box_place.rs:+1:42: +1:43
_0 = const (); // scope 0 at $DIR/inline_into_box_place.rs:+0:11: +2:2
- drop(_1) -> [return: bb3, unwind: bb4]; // scope 0 at $DIR/inline_into_box_place.rs:+2:1: +2:2
+ drop(_1) -> [return: bb2, unwind: bb3]; // scope 0 at $DIR/inline_into_box_place.rs:+2:1: +2:2
}
- bb3: {
+ bb2: {
StorageDead(_1); // scope 0 at $DIR/inline-into-box-place.rs:+2:1: +2:2
return; // scope 0 at $DIR/inline-into-box-place.rs:+2:2: +2:2
StorageDead(_1); // scope 0 at $DIR/inline_into_box_place.rs:+2:1: +2:2
return; // scope 0 at $DIR/inline_into_box_place.rs:+2:2: +2:2
}
- bb4 (cleanup): {
+ bb3 (cleanup): {
resume; // scope 0 at $DIR/inline-into-box-place.rs:+0:1: +2:2
resume; // scope 0 at $DIR/inline_into_box_place.rs:+0:1: +2:2
- }
-
- bb5 (cleanup): {
- _6 = alloc::alloc::box_free::<Vec<u32>, std::alloc::Global>(move (_5.0: std::ptr::Unique<std::vec::Vec<u32>>), move (_5.1: std::alloc::Global)) -> bb4; // scope 0 at $DIR/inline-into-box-place.rs:+1:42: +1:43
- _6 = alloc::alloc::box_free::<Vec<u32>, std::alloc::Global>(move (_5.0: std::ptr::Unique<std::vec::Vec<u32>>), move (_5.1: std::alloc::Global)) -> bb4; // scope 0 at $DIR/inline_into_box_place.rs:+1:42: +1:43
- // mir::Constant
- // + span: $DIR/inline-into-box-place.rs:8:42: 8:43
- // + span: $DIR/inline_into_box_place.rs:8:42: 8:43
- // + literal: Const { ty: unsafe fn(Unique<Vec<u32>>, std::alloc::Global) {alloc::alloc::box_free::<Vec<u32>, std::alloc::Global>}, val: Value(<ZST>) }
}
}

View file

@ -1,55 +1,55 @@
// MIR for `main` after Inline
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-options.rs:+0:11: +0:11
let _1: (); // in scope 0 at $DIR/inline-options.rs:+1:5: +1:18
let _2: (); // in scope 0 at $DIR/inline-options.rs:+2:5: +2:21
scope 1 (inlined inlined::<u32>) { // at $DIR/inline-options.rs:10:5: 10:21
let _3: (); // in scope 1 at $DIR/inline-options.rs:16:23: 16:26
let _4: (); // in scope 1 at $DIR/inline-options.rs:16:28: 16:31
let _5: (); // in scope 1 at $DIR/inline-options.rs:16:33: 16:36
let mut _0: (); // return place in scope 0 at $DIR/inline_options.rs:+0:11: +0:11
let _1: (); // in scope 0 at $DIR/inline_options.rs:+1:5: +1:18
let _2: (); // in scope 0 at $DIR/inline_options.rs:+2:5: +2:21
scope 1 (inlined inlined::<u32>) { // at $DIR/inline_options.rs:10:5: 10:21
let _3: (); // in scope 1 at $DIR/inline_options.rs:16:23: 16:26
let _4: (); // in scope 1 at $DIR/inline_options.rs:16:28: 16:31
let _5: (); // in scope 1 at $DIR/inline_options.rs:16:33: 16:36
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-options.rs:+1:5: +1:18
_1 = not_inlined() -> bb1; // scope 0 at $DIR/inline-options.rs:+1:5: +1:18
StorageLive(_1); // scope 0 at $DIR/inline_options.rs:+1:5: +1:18
_1 = not_inlined() -> bb1; // scope 0 at $DIR/inline_options.rs:+1:5: +1:18
// mir::Constant
// + span: $DIR/inline-options.rs:9:5: 9:16
// + span: $DIR/inline_options.rs:9:5: 9:16
// + literal: Const { ty: fn() {not_inlined}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_1); // scope 0 at $DIR/inline-options.rs:+1:18: +1:19
StorageLive(_2); // scope 0 at $DIR/inline-options.rs:+2:5: +2:21
StorageLive(_3); // scope 1 at $DIR/inline-options.rs:16:23: 16:26
_3 = g() -> bb2; // scope 1 at $DIR/inline-options.rs:16:23: 16:26
StorageDead(_1); // scope 0 at $DIR/inline_options.rs:+1:18: +1:19
StorageLive(_2); // scope 0 at $DIR/inline_options.rs:+2:5: +2:21
StorageLive(_3); // scope 1 at $DIR/inline_options.rs:16:23: 16:26
_3 = g() -> bb2; // scope 1 at $DIR/inline_options.rs:16:23: 16:26
// mir::Constant
// + span: $DIR/inline-options.rs:16:23: 16:24
// + span: $DIR/inline_options.rs:16:23: 16:24
// + literal: Const { ty: fn() {g}, val: Value(<ZST>) }
}
bb2: {
StorageDead(_3); // scope 1 at $DIR/inline-options.rs:16:26: 16:27
StorageLive(_4); // scope 1 at $DIR/inline-options.rs:16:28: 16:31
_4 = g() -> bb3; // scope 1 at $DIR/inline-options.rs:16:28: 16:31
StorageDead(_3); // scope 1 at $DIR/inline_options.rs:16:26: 16:27
StorageLive(_4); // scope 1 at $DIR/inline_options.rs:16:28: 16:31
_4 = g() -> bb3; // scope 1 at $DIR/inline_options.rs:16:28: 16:31
// mir::Constant
// + span: $DIR/inline-options.rs:16:28: 16:29
// + span: $DIR/inline_options.rs:16:28: 16:29
// + literal: Const { ty: fn() {g}, val: Value(<ZST>) }
}
bb3: {
StorageDead(_4); // scope 1 at $DIR/inline-options.rs:16:31: 16:32
StorageLive(_5); // scope 1 at $DIR/inline-options.rs:16:33: 16:36
_5 = g() -> bb4; // scope 1 at $DIR/inline-options.rs:16:33: 16:36
StorageDead(_4); // scope 1 at $DIR/inline_options.rs:16:31: 16:32
StorageLive(_5); // scope 1 at $DIR/inline_options.rs:16:33: 16:36
_5 = g() -> bb4; // scope 1 at $DIR/inline_options.rs:16:33: 16:36
// mir::Constant
// + span: $DIR/inline-options.rs:16:33: 16:34
// + span: $DIR/inline_options.rs:16:33: 16:34
// + literal: Const { ty: fn() {g}, val: Value(<ZST>) }
}
bb4: {
StorageDead(_5); // scope 1 at $DIR/inline-options.rs:16:36: 16:37
StorageDead(_2); // scope 0 at $DIR/inline-options.rs:+2:21: +2:22
_0 = const (); // scope 0 at $DIR/inline-options.rs:+0:11: +3:2
return; // scope 0 at $DIR/inline-options.rs:+3:2: +3:2
StorageDead(_5); // scope 1 at $DIR/inline_options.rs:16:36: 16:37
StorageDead(_2); // scope 0 at $DIR/inline_options.rs:+2:21: +2:22
_0 = const (); // scope 0 at $DIR/inline_options.rs:+0:11: +3:2
return; // scope 0 at $DIR/inline_options.rs:+3:2: +3:2
}
}

View file

@ -1,72 +1,72 @@
// MIR for `bar` after Inline
fn bar() -> bool {
let mut _0: bool; // return place in scope 0 at $DIR/inline-retag.rs:+0:13: +0:17
let _1: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; // in scope 0 at $DIR/inline-retag.rs:+1:9: +1:10
let mut _2: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; // in scope 0 at $DIR/inline-retag.rs:+2:5: +2:6
let mut _3: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:7: +2:9
let _4: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:7: +2:9
let _5: i32; // in scope 0 at $DIR/inline-retag.rs:+2:8: +2:9
let mut _6: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:11: +2:14
let _7: &i32; // in scope 0 at $DIR/inline-retag.rs:+2:11: +2:14
let _8: i32; // in scope 0 at $DIR/inline-retag.rs:+2:12: +2:14
let mut _0: bool; // return place in scope 0 at $DIR/inline_retag.rs:+0:13: +0:17
let _1: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; // in scope 0 at $DIR/inline_retag.rs:+1:9: +1:10
let mut _2: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; // in scope 0 at $DIR/inline_retag.rs:+2:5: +2:6
let mut _3: &i32; // in scope 0 at $DIR/inline_retag.rs:+2:7: +2:9
let _4: &i32; // in scope 0 at $DIR/inline_retag.rs:+2:7: +2:9
let _5: i32; // in scope 0 at $DIR/inline_retag.rs:+2:8: +2:9
let mut _6: &i32; // in scope 0 at $DIR/inline_retag.rs:+2:11: +2:14
let _7: &i32; // in scope 0 at $DIR/inline_retag.rs:+2:11: +2:14
let _8: i32; // in scope 0 at $DIR/inline_retag.rs:+2:12: +2:14
scope 1 {
debug f => _1; // in scope 1 at $DIR/inline-retag.rs:+1:9: +1:10
let mut _9: &i32; // in scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
let mut _10: &i32; // in scope 1 at $DIR/inline-retag.rs:+2:7: +2: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:16:8: 16:9
debug y => _6; // in scope 2 at $DIR/inline-retag.rs:16:17: 16:18
let mut _11: i32; // in scope 2 at $DIR/inline-retag.rs:17:5: 17:7
let mut _12: i32; // in scope 2 at $DIR/inline-retag.rs:17:11: 17:13
debug f => _1; // in scope 1 at $DIR/inline_retag.rs:+1:9: +1:10
let mut _9: &i32; // in scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
let mut _10: &i32; // in scope 1 at $DIR/inline_retag.rs:+2:7: +2: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:16:8: 16:9
debug y => _6; // in scope 2 at $DIR/inline_retag.rs:16:17: 16:18
let mut _11: i32; // in scope 2 at $DIR/inline_retag.rs:17:5: 17:7
let mut _12: i32; // in scope 2 at $DIR/inline_retag.rs:17:11: 17:13
}
}
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-retag.rs:+1:9: +1:10
_1 = foo; // scope 0 at $DIR/inline-retag.rs:+1:13: +1:16
StorageLive(_1); // scope 0 at $DIR/inline_retag.rs:+1:9: +1:10
_1 = foo; // scope 0 at $DIR/inline_retag.rs:+1:13: +1:16
// mir::Constant
// + span: $DIR/inline-retag.rs:11:13: 11:16
// + span: $DIR/inline_retag.rs:11:13: 11:16
// + literal: Const { ty: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}, val: Value(<ZST>) }
StorageLive(_2); // scope 1 at $DIR/inline-retag.rs:+2:5: +2:6
_2 = _1; // scope 1 at $DIR/inline-retag.rs:+2:5: +2:6
StorageLive(_3); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
StorageLive(_4); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
_10 = const _; // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
StorageLive(_2); // scope 1 at $DIR/inline_retag.rs:+2:5: +2:6
_2 = _1; // scope 1 at $DIR/inline_retag.rs:+2:5: +2:6
StorageLive(_3); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
StorageLive(_4); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
_10 = const _; // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
// mir::Constant
// + span: $DIR/inline-retag.rs:12:7: 12:9
// + span: $DIR/inline_retag.rs:12:7: 12:9
// + literal: Const { ty: &i32, val: Unevaluated(bar, [], Some(promoted[1])) }
Retag(_10); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
_4 = &(*_10); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
Retag(_4); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
_3 = &(*_4); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
Retag(_3); // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
StorageLive(_6); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
StorageLive(_7); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
_9 = const _; // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
Retag(_10); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
_4 = &(*_10); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
Retag(_4); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
_3 = &(*_4); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
Retag(_3); // scope 1 at $DIR/inline_retag.rs:+2:7: +2:9
StorageLive(_6); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
StorageLive(_7); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
_9 = const _; // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
// mir::Constant
// + span: $DIR/inline-retag.rs:12:11: 12:14
// + span: $DIR/inline_retag.rs:12:11: 12:14
// + literal: Const { ty: &i32, val: Unevaluated(bar, [], Some(promoted[0])) }
Retag(_9); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
_7 = &(*_9); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
Retag(_7); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
_6 = &(*_7); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
Retag(_6); // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
Retag(_3); // scope 2 at $DIR/inline-retag.rs:16:8: 16:9
Retag(_6); // scope 2 at $DIR/inline-retag.rs:16:17: 16:18
StorageLive(_11); // scope 2 at $DIR/inline-retag.rs:17:5: 17:7
_11 = (*_3); // scope 2 at $DIR/inline-retag.rs:17:5: 17:7
StorageLive(_12); // scope 2 at $DIR/inline-retag.rs:17:11: 17:13
_12 = (*_6); // scope 2 at $DIR/inline-retag.rs:17:11: 17:13
_0 = Eq(move _11, move _12); // scope 2 at $DIR/inline-retag.rs:17:5: 17:13
StorageDead(_12); // scope 2 at $DIR/inline-retag.rs:17:12: 17:13
StorageDead(_11); // scope 2 at $DIR/inline-retag.rs:17:12: 17:13
StorageDead(_6); // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
StorageDead(_3); // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
StorageDead(_2); // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
StorageDead(_1); // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
StorageDead(_7); // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
StorageDead(_4); // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
return; // scope 0 at $DIR/inline-retag.rs:+3:2: +3:2
Retag(_9); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
_7 = &(*_9); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
Retag(_7); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
_6 = &(*_7); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
Retag(_6); // scope 1 at $DIR/inline_retag.rs:+2:11: +2:14
Retag(_3); // scope 2 at $DIR/inline_retag.rs:16:8: 16:9
Retag(_6); // scope 2 at $DIR/inline_retag.rs:16:17: 16:18
StorageLive(_11); // scope 2 at $DIR/inline_retag.rs:17:5: 17:7
_11 = (*_3); // scope 2 at $DIR/inline_retag.rs:17:5: 17:7
StorageLive(_12); // scope 2 at $DIR/inline_retag.rs:17:11: 17:13
_12 = (*_6); // scope 2 at $DIR/inline_retag.rs:17:11: 17:13
_0 = Eq(move _11, move _12); // scope 2 at $DIR/inline_retag.rs:17:5: 17:13
StorageDead(_12); // scope 2 at $DIR/inline_retag.rs:17:12: 17:13
StorageDead(_11); // scope 2 at $DIR/inline_retag.rs:17:12: 17:13
StorageDead(_6); // scope 1 at $DIR/inline_retag.rs:+2:14: +2:15
StorageDead(_3); // scope 1 at $DIR/inline_retag.rs:+2:14: +2:15
StorageDead(_2); // scope 1 at $DIR/inline_retag.rs:+2:14: +2:15
StorageDead(_1); // scope 0 at $DIR/inline_retag.rs:+3:1: +3:2
StorageDead(_7); // scope 0 at $DIR/inline_retag.rs:+3:1: +3:2
StorageDead(_4); // scope 0 at $DIR/inline_retag.rs:+3:1: +3:2
return; // scope 0 at $DIR/inline_retag.rs:+3:2: +3:2
}
}

View file

@ -2,25 +2,25 @@
+ // MIR for `clone` after Inline
fn clone(_1: fn(A, B)) -> fn(A, B) {
debug f => _1; // in scope 0 at $DIR/inline-shims.rs:+0:20: +0:21
let mut _0: fn(A, B); // return place in scope 0 at $DIR/inline-shims.rs:+0:36: +0:44
let mut _2: &fn(A, B); // in scope 0 at $DIR/inline-shims.rs:+1:5: +1:14
+ scope 1 (inlined <fn(A, B) as Clone>::clone - shim(fn(A, B))) { // at $DIR/inline-shims.rs:6:5: 6:14
debug f => _1; // in scope 0 at $DIR/inline_shims.rs:+0:20: +0:21
let mut _0: fn(A, B); // return place in scope 0 at $DIR/inline_shims.rs:+0:36: +0:44
let mut _2: &fn(A, B); // in scope 0 at $DIR/inline_shims.rs:+1:5: +1:14
+ scope 1 (inlined <fn(A, B) as Clone>::clone - shim(fn(A, B))) { // at $DIR/inline_shims.rs:6:5: 6:14
+ }
bb0: {
StorageLive(_2); // scope 0 at $DIR/inline-shims.rs:+1:5: +1:14
_2 = &_1; // scope 0 at $DIR/inline-shims.rs:+1:5: +1:14
- _0 = <fn(A, B) as Clone>::clone(move _2) -> bb1; // scope 0 at $DIR/inline-shims.rs:+1:5: +1:14
StorageLive(_2); // scope 0 at $DIR/inline_shims.rs:+1:5: +1:14
_2 = &_1; // scope 0 at $DIR/inline_shims.rs:+1:5: +1:14
- _0 = <fn(A, B) as Clone>::clone(move _2) -> bb1; // scope 0 at $DIR/inline_shims.rs:+1:5: +1:14
- // mir::Constant
- // + span: $DIR/inline-shims.rs:6:7: 6:12
- // + span: $DIR/inline_shims.rs:6:7: 6:12
- // + literal: Const { ty: for<'a> fn(&'a fn(A, B)) -> fn(A, B) {<fn(A, B) as Clone>::clone}, val: Value(<ZST>) }
- }
-
- bb1: {
+ _0 = (*_2); // scope 1 at $SRC_DIR/core/src/clone.rs:LL:COL
StorageDead(_2); // scope 0 at $DIR/inline-shims.rs:+1:13: +1:14
return; // scope 0 at $DIR/inline-shims.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/inline_shims.rs:+1:13: +1:14
return; // scope 0 at $DIR/inline_shims.rs:+2:2: +2:2
}
}

View file

@ -2,51 +2,51 @@
+ // MIR for `drop` after Inline
fn drop(_1: *mut Vec<A>, _2: *mut Option<B>) -> () {
debug a => _1; // in scope 0 at $DIR/inline-shims.rs:+0:19: +0:20
debug b => _2; // in scope 0 at $DIR/inline-shims.rs:+0:35: +0:36
let mut _0: (); // return place in scope 0 at $DIR/inline-shims.rs:+0:54: +0:54
let _3: (); // in scope 0 at $DIR/inline-shims.rs:+1:14: +1:40
let mut _4: *mut std::vec::Vec<A>; // in scope 0 at $DIR/inline-shims.rs:+1:38: +1:39
let mut _5: *mut std::option::Option<B>; // in scope 0 at $DIR/inline-shims.rs:+2:38: +2:39
debug a => _1; // in scope 0 at $DIR/inline_shims.rs:+0:19: +0:20
debug b => _2; // in scope 0 at $DIR/inline_shims.rs:+0:35: +0:36
let mut _0: (); // return place in scope 0 at $DIR/inline_shims.rs:+0:54: +0:54
let _3: (); // in scope 0 at $DIR/inline_shims.rs:+1:14: +1:40
let mut _4: *mut std::vec::Vec<A>; // in scope 0 at $DIR/inline_shims.rs:+1:38: +1:39
let mut _5: *mut std::option::Option<B>; // in scope 0 at $DIR/inline_shims.rs:+2:38: +2:39
scope 1 {
}
scope 2 {
+ scope 3 (inlined std::ptr::drop_in_place::<Option<B>> - shim(Some(Option<B>))) { // at $DIR/inline-shims.rs:12:14: 12:40
+ scope 3 (inlined std::ptr::drop_in_place::<Option<B>> - shim(Some(Option<B>))) { // at $DIR/inline_shims.rs:12:14: 12:40
+ let mut _6: isize; // in scope 3 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ let mut _7: isize; // in scope 3 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ }
}
bb0: {
StorageLive(_3); // scope 0 at $DIR/inline-shims.rs:+1:5: +1:42
StorageLive(_4); // scope 1 at $DIR/inline-shims.rs:+1:38: +1:39
_4 = _1; // scope 1 at $DIR/inline-shims.rs:+1:38: +1:39
_3 = std::ptr::drop_in_place::<Vec<A>>(move _4) -> bb1; // scope 1 at $DIR/inline-shims.rs:+1:14: +1:40
StorageLive(_3); // scope 0 at $DIR/inline_shims.rs:+1:5: +1:42
StorageLive(_4); // scope 1 at $DIR/inline_shims.rs:+1:38: +1:39
_4 = _1; // scope 1 at $DIR/inline_shims.rs:+1:38: +1:39
_3 = std::ptr::drop_in_place::<Vec<A>>(move _4) -> bb1; // scope 1 at $DIR/inline_shims.rs:+1:14: +1:40
// mir::Constant
// + span: $DIR/inline-shims.rs:11:14: 11:37
// + span: $DIR/inline_shims.rs:11:14: 11:37
// + literal: Const { ty: unsafe fn(*mut Vec<A>) {std::ptr::drop_in_place::<Vec<A>>}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_4); // scope 1 at $DIR/inline-shims.rs:+1:39: +1:40
StorageDead(_3); // scope 0 at $DIR/inline-shims.rs:+1:41: +1:42
StorageLive(_5); // scope 2 at $DIR/inline-shims.rs:+2:38: +2:39
_5 = _2; // scope 2 at $DIR/inline-shims.rs:+2:38: +2:39
- _0 = std::ptr::drop_in_place::<Option<B>>(move _5) -> bb2; // scope 2 at $DIR/inline-shims.rs:+2:14: +2:40
StorageDead(_4); // scope 1 at $DIR/inline_shims.rs:+1:39: +1:40
StorageDead(_3); // scope 0 at $DIR/inline_shims.rs:+1:41: +1:42
StorageLive(_5); // scope 2 at $DIR/inline_shims.rs:+2:38: +2:39
_5 = _2; // scope 2 at $DIR/inline_shims.rs:+2:38: +2:39
- _0 = std::ptr::drop_in_place::<Option<B>>(move _5) -> bb2; // scope 2 at $DIR/inline_shims.rs:+2:14: +2:40
- // mir::Constant
- // + span: $DIR/inline-shims.rs:12:14: 12:37
- // + span: $DIR/inline_shims.rs:12:14: 12:37
- // + literal: Const { ty: unsafe fn(*mut Option<B>) {std::ptr::drop_in_place::<Option<B>>}, val: Value(<ZST>) }
+ StorageLive(_6); // scope 2 at $DIR/inline-shims.rs:+2:14: +2:40
+ StorageLive(_7); // scope 2 at $DIR/inline-shims.rs:+2:14: +2:40
+ StorageLive(_6); // scope 2 at $DIR/inline_shims.rs:+2:14: +2:40
+ StorageLive(_7); // scope 2 at $DIR/inline_shims.rs:+2:14: +2:40
+ _6 = discriminant((*_5)); // scope 3 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
+ switchInt(move _6) -> [0_isize: bb2, otherwise: bb3]; // scope 3 at $SRC_DIR/core/src/ptr/mod.rs:LL:COL
}
bb2: {
+ StorageDead(_7); // scope 2 at $DIR/inline-shims.rs:+2:14: +2:40
+ StorageDead(_6); // scope 2 at $DIR/inline-shims.rs:+2:14: +2:40
StorageDead(_5); // scope 2 at $DIR/inline-shims.rs:+2:39: +2:40
return; // scope 0 at $DIR/inline-shims.rs:+3:2: +3:2
+ StorageDead(_7); // scope 2 at $DIR/inline_shims.rs:+2:14: +2:40
+ StorageDead(_6); // scope 2 at $DIR/inline_shims.rs:+2:14: +2:40
StorageDead(_5); // scope 2 at $DIR/inline_shims.rs:+2:39: +2:40
return; // scope 0 at $DIR/inline_shims.rs:+3:2: +3:2
+ }
+
+ bb3: {

View file

@ -2,27 +2,27 @@
+ // MIR for `main` after Inline
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/inline-specialization.rs:+0:11: +0:11
let _1: u32; // in scope 0 at $DIR/inline-specialization.rs:+1:9: +1:10
let mut _0: (); // return place in scope 0 at $DIR/inline_specialization.rs:+0:11: +0:11
let _1: u32; // in scope 0 at $DIR/inline_specialization.rs:+1:9: +1:10
scope 1 {
debug x => _1; // in scope 1 at $DIR/inline-specialization.rs:+1:9: +1:10
debug x => _1; // in scope 1 at $DIR/inline_specialization.rs:+1:9: +1:10
}
+ scope 2 (inlined <Vec<()> as Foo>::bar) { // at $DIR/inline-specialization.rs:5:13: 5:38
+ scope 2 (inlined <Vec<()> as Foo>::bar) { // at $DIR/inline_specialization.rs:5:13: 5:38
+ }
bb0: {
StorageLive(_1); // scope 0 at $DIR/inline-specialization.rs:+1:9: +1:10
- _1 = <Vec<()> as Foo>::bar() -> bb1; // scope 0 at $DIR/inline-specialization.rs:+1:13: +1:38
StorageLive(_1); // scope 0 at $DIR/inline_specialization.rs:+1:9: +1:10
- _1 = <Vec<()> as Foo>::bar() -> bb1; // scope 0 at $DIR/inline_specialization.rs:+1:13: +1:38
- // mir::Constant
- // + span: $DIR/inline-specialization.rs:5:13: 5:36
- // + span: $DIR/inline_specialization.rs:5:13: 5:36
- // + literal: Const { ty: fn() -> u32 {<Vec<()> as Foo>::bar}, val: Value(<ZST>) }
- }
-
- bb1: {
+ _1 = const 123_u32; // scope 2 at $DIR/inline-specialization.rs:14:31: 14:34
_0 = const (); // scope 0 at $DIR/inline-specialization.rs:+0:11: +2:2
StorageDead(_1); // scope 0 at $DIR/inline-specialization.rs:+2:1: +2:2
return; // scope 0 at $DIR/inline-specialization.rs:+2:2: +2:2
+ _1 = const 123_u32; // scope 2 at $DIR/inline_specialization.rs:14:31: 14:34
_0 = const (); // scope 0 at $DIR/inline_specialization.rs:+0:11: +2:2
StorageDead(_1); // scope 0 at $DIR/inline_specialization.rs:+2:1: +2:2
return; // scope 0 at $DIR/inline_specialization.rs:+2:2: +2:2
}
}

View file

@ -1,21 +1,21 @@
// MIR for `test` after Inline
fn test(_1: &dyn X) -> u32 {
debug x => _1; // in scope 0 at $DIR/inline-trait-method.rs:+0:9: +0:10
let mut _0: u32; // return place in scope 0 at $DIR/inline-trait-method.rs:+0:23: +0:26
let mut _2: &dyn X; // in scope 0 at $DIR/inline-trait-method.rs:+1:5: +1:10
debug x => _1; // in scope 0 at $DIR/inline_trait_method.rs:+0:9: +0:10
let mut _0: u32; // return place in scope 0 at $DIR/inline_trait_method.rs:+0:23: +0:26
let mut _2: &dyn X; // in scope 0 at $DIR/inline_trait_method.rs:+1:5: +1:10
bb0: {
StorageLive(_2); // scope 0 at $DIR/inline-trait-method.rs:+1:5: +1:10
_2 = &(*_1); // scope 0 at $DIR/inline-trait-method.rs:+1:5: +1:10
_0 = <dyn X as X>::y(move _2) -> bb1; // scope 0 at $DIR/inline-trait-method.rs:+1:5: +1:10
StorageLive(_2); // scope 0 at $DIR/inline_trait_method.rs:+1:5: +1:10
_2 = &(*_1); // scope 0 at $DIR/inline_trait_method.rs:+1:5: +1:10
_0 = <dyn X as X>::y(move _2) -> bb1; // scope 0 at $DIR/inline_trait_method.rs:+1:5: +1:10
// mir::Constant
// + span: $DIR/inline-trait-method.rs:9:7: 9:8
// + span: $DIR/inline_trait_method.rs:9:7: 9:8
// + literal: Const { ty: for<'a> fn(&'a dyn X) -> u32 {<dyn X as X>::y}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_2); // scope 0 at $DIR/inline-trait-method.rs:+1:9: +1:10
return; // scope 0 at $DIR/inline-trait-method.rs:+2:2: +2:2
StorageDead(_2); // scope 0 at $DIR/inline_trait_method.rs:+1:9: +1:10
return; // scope 0 at $DIR/inline_trait_method.rs:+2:2: +2:2
}
}

View file

@ -1,32 +1,32 @@
// MIR for `test2` after Inline
fn test2(_1: &dyn X) -> bool {
debug x => _1; // in scope 0 at $DIR/inline-trait-method_2.rs:+0:10: +0:11
let mut _0: bool; // return place in scope 0 at $DIR/inline-trait-method_2.rs:+0:24: +0:28
let mut _2: &dyn X; // in scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
let mut _3: &dyn X; // in scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
scope 1 (inlined test) { // at $DIR/inline-trait-method_2.rs:5:5: 5:12
debug x => _2; // in scope 1 at $DIR/inline-trait-method_2.rs:9:9: 9:10
let mut _4: &dyn X; // in scope 1 at $DIR/inline-trait-method_2.rs:10:5: 10:10
debug x => _1; // in scope 0 at $DIR/inline_trait_method_2.rs:+0:10: +0:11
let mut _0: bool; // return place in scope 0 at $DIR/inline_trait_method_2.rs:+0:24: +0:28
let mut _2: &dyn X; // in scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
let mut _3: &dyn X; // in scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
scope 1 (inlined test) { // at $DIR/inline_trait_method_2.rs:5:5: 5:12
debug x => _2; // in scope 1 at $DIR/inline_trait_method_2.rs:9:9: 9:10
let mut _4: &dyn X; // in scope 1 at $DIR/inline_trait_method_2.rs:10:5: 10:10
}
bb0: {
StorageLive(_2); // scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
StorageLive(_3); // scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
_3 = &(*_1); // scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
_2 = move _3 as &dyn X (Pointer(Unsize)); // scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
StorageDead(_3); // scope 0 at $DIR/inline-trait-method_2.rs:+1:10: +1:11
StorageLive(_4); // scope 1 at $DIR/inline-trait-method_2.rs:10:5: 10:10
_4 = _2; // scope 1 at $DIR/inline-trait-method_2.rs:10:5: 10:10
_0 = <dyn X as X>::y(move _4) -> bb1; // scope 1 at $DIR/inline-trait-method_2.rs:10:5: 10:10
StorageLive(_2); // scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
StorageLive(_3); // scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
_3 = &(*_1); // scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
_2 = move _3 as &dyn X (Pointer(Unsize)); // scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
StorageDead(_3); // scope 0 at $DIR/inline_trait_method_2.rs:+1:10: +1:11
StorageLive(_4); // scope 1 at $DIR/inline_trait_method_2.rs:10:5: 10:10
_4 = _2; // scope 1 at $DIR/inline_trait_method_2.rs:10:5: 10:10
_0 = <dyn X as X>::y(move _4) -> bb1; // scope 1 at $DIR/inline_trait_method_2.rs:10:5: 10:10
// mir::Constant
// + span: $DIR/inline-trait-method_2.rs:10:7: 10:8
// + span: $DIR/inline_trait_method_2.rs:10:7: 10:8
// + literal: Const { ty: for<'a> fn(&'a dyn X) -> bool {<dyn X as X>::y}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_4); // scope 1 at $DIR/inline-trait-method_2.rs:10:9: 10:10
StorageDead(_2); // scope 0 at $DIR/inline-trait-method_2.rs:+1:11: +1:12
return; // scope 0 at $DIR/inline-trait-method_2.rs:+2:2: +2:2
StorageDead(_4); // scope 1 at $DIR/inline_trait_method_2.rs:10:9: 10:10
StorageDead(_2); // scope 0 at $DIR/inline_trait_method_2.rs:+1:11: +1:12
return; // scope 0 at $DIR/inline_trait_method_2.rs:+2:2: +2:2
}
}

View file

@ -1,30 +1,30 @@
// MIR for `a` after Inline
fn a(_1: &mut [T]) -> &mut [T] {
debug x => _1; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:13: +0:14
let mut _0: &mut [T]; // return place in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:29: +0:37
let mut _2: &mut [T]; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
let mut _3: &mut [T]; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
let mut _4: &mut [T]; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
scope 1 (inlined <[T] as AsMut<[T]>>::as_mut) { // at $DIR/issue-58867-inline-as-ref-as-mut.rs:3:5: 3:15
debug x => _1; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:13: +0:14
let mut _0: &mut [T]; // return place in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:29: +0:37
let mut _2: &mut [T]; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
let mut _3: &mut [T]; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
let mut _4: &mut [T]; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
scope 1 (inlined <[T] as AsMut<[T]>>::as_mut) { // at $DIR/issue_58867_inline_as_ref_as_mut.rs:3:5: 3:15
debug self => _4; // in scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
let mut _5: &mut [T]; // in scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
}
bb0: {
StorageLive(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageLive(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageLive(_4); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
_4 = &mut (*_1); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageLive(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageLive(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageLive(_4); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
_4 = &mut (*_1); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageLive(_5); // scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
_5 = &mut (*_4); // scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
_3 = &mut (*_5); // scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
StorageDead(_5); // scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
_2 = &mut (*_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageDead(_4); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:14: +1:15
_0 = &mut (*_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageDead(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
StorageDead(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
return; // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:2: +2:2
_2 = &mut (*_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageDead(_4); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:14: +1:15
_0 = &mut (*_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageDead(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
StorageDead(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
return; // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:2: +2:2
}
}

View file

@ -1,12 +1,12 @@
// MIR for `b` after Inline
fn b(_1: &mut Box<T>) -> &mut T {
debug x => _1; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:13: +0:14
let mut _0: &mut T; // return place in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:32: +0:38
let mut _2: &mut T; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
let mut _3: &mut T; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
let mut _4: &mut std::boxed::Box<T>; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
scope 1 (inlined <Box<T> as AsMut<T>>::as_mut) { // at $DIR/issue-58867-inline-as-ref-as-mut.rs:8:5: 8:15
debug x => _1; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:13: +0:14
let mut _0: &mut T; // return place in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:32: +0:38
let mut _2: &mut T; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
let mut _3: &mut T; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
let mut _4: &mut std::boxed::Box<T>; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
scope 1 (inlined <Box<T> as AsMut<T>>::as_mut) { // at $DIR/issue_58867_inline_as_ref_as_mut.rs:8:5: 8:15
debug self => _4; // in scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
let mut _5: &mut T; // in scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
let mut _6: &mut T; // in scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
@ -15,10 +15,10 @@ fn b(_1: &mut Box<T>) -> &mut T {
}
bb0: {
StorageLive(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageLive(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageLive(_4); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
_4 = &mut (*_1); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageLive(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageLive(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageLive(_4); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
_4 = &mut (*_1); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageLive(_5); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
StorageLive(_6); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
_7 = deref_copy (*_4); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
@ -28,11 +28,11 @@ fn b(_1: &mut Box<T>) -> &mut T {
_3 = &mut (*_5); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
StorageDead(_6); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
StorageDead(_5); // scope 1 at $SRC_DIR/alloc/src/boxed.rs:LL:COL
_2 = &mut (*_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageDead(_4); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:14: +1:15
_0 = &mut (*_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageDead(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
StorageDead(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
return; // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:2: +2:2
_2 = &mut (*_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageDead(_4); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:14: +1:15
_0 = &mut (*_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageDead(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
StorageDead(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
return; // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:2: +2:2
}
}

View file

@ -1,22 +1,22 @@
// MIR for `c` after Inline
fn c(_1: &[T]) -> &[T] {
debug x => _1; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:13: +0:14
let mut _0: &[T]; // return place in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+0:25: +0:29
let _2: &[T]; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
let mut _3: &[T]; // in scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
scope 1 (inlined <[T] as AsRef<[T]>>::as_ref) { // at $DIR/issue-58867-inline-as-ref-as-mut.rs:13:5: 13:15
debug x => _1; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:13: +0:14
let mut _0: &[T]; // return place in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+0:25: +0:29
let _2: &[T]; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
let mut _3: &[T]; // in scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
scope 1 (inlined <[T] as AsRef<[T]>>::as_ref) { // at $DIR/issue_58867_inline_as_ref_as_mut.rs:13:5: 13:15
debug self => _3; // in scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
}
bb0: {
StorageLive(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageLive(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
_3 = &(*_1); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageLive(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageLive(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
_3 = &(*_1); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
_2 = _3; // scope 1 at $SRC_DIR/core/src/convert/mod.rs:LL:COL
_0 = &(*_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:5: +1:15
StorageDead(_3); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+1:14: +1:15
StorageDead(_2); // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:1: +2:2
return; // scope 0 at $DIR/issue-58867-inline-as-ref-as-mut.rs:+2:2: +2:2
_0 = &(*_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:5: +1:15
StorageDead(_3); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+1:14: +1:15
StorageDead(_2); // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:1: +2:2
return; // scope 0 at $DIR/issue_58867_inline_as_ref_as_mut.rs:+2:2: +2:2
}
}

Some files were not shown because too many files have changed in this diff Show more