Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pnkfelix/6e239bbb8643b9b2da958ef350625eb9 to your computer and use it in GitHub Desktop.
Save pnkfelix/6e239bbb8643b9b2da958ef350625eb9 to your computer and use it in GitHub Desktop.
// MIR for `static_to_a_to_static_through_tyvar`
// source = MirSource { def_id: DefId(0/0:5 ~ wildcard_tyvars[317d]::static_to_a_to_static_through_tyvar[0]), promoted: None }
// pass_name = nll
// disambiguator = 0
| Free Region Mapping
| '_#0r | Global | ['_#0r, '_#2r, '_#1r]
| '_#1r | Local | ['_#2r, '_#1r]
| '_#2r | Local | ['_#2r]
|
| Inferred Region Values
| '_#0r | U0 | {bb0[0..=24], '_#0r, '_#1r, '_#2r}
| '_#1r | U0 | {bb0[0..=24], '_#1r}
| '_#2r | U0 | {bb0[0..=24], '_#2r}
| '_#3r | U0 | {bb0[0..=24], '_#0r, '_#1r, '_#2r}
| '_#4r | U0 | {bb0[8..=17]}
| '_#5r | U0 | {bb0[9..=17]}
| '_#6r | U0 | {bb0[0..=24], '_#0r, '_#1r, '_#2r}
| '_#7r | U0 | {bb0[11..=17]}
| '_#8r | U0 | {bb0[0..=24], '_#0r, '_#1r, '_#2r}
| '_#9r | U0 | {}
| '_#10r | U0 | {bb0[0..=24], '_#0r, '_#1r, '_#2r}
| '_#11r | U0 | {bb0[0..=24], '_#1r}
| '_#12r | U0 | {bb0[0..=24], '_#0r, '_#1r, '_#2r}
| '_#13r | U0 | {bb0[0..=24], '_#0r, '_#1r, '_#2r}
| '_#14r | U0 | {}
| '_#15r | U0 | {bb0[0..=24], '_#0r, '_#1r, '_#2r}
| '_#16r | U0 | {bb0[11..=17]}
| '_#17r | U0 | {bb0[0..=24], '_#0r, '_#1r, '_#2r}
| '_#18r | U0 | {bb0[10..=17]}
| '_#19r | U0 | {bb0[9..=17]}
| '_#20r | U0 | {bb0[0..=24], '_#0r, '_#1r, '_#2r}
| '_#21r | U0 | {}
| '_#22r | U0 | {}
|
| Inference Constraints
| '_#0r live at {bb0[0..=24]}
| '_#1r live at {bb0[0..=24]}
| '_#2r live at {bb0[0..=24]}
| '_#3r live at {bb0[5]}
| '_#4r live at {bb0[8]}
| '_#5r live at {bb0[9]}
| '_#6r live at {bb0[15]}
| '_#7r live at {bb0[17]}
| '_#8r live at {bb0[20]}
| '_#15r live at {bb0[11..=17]}
| '_#16r live at {bb0[11..=17]}
| '_#18r live at {bb0[10]}
| '_#19r live at {bb0[9]}
| '_#0r: '_#10r due to BoringNoLocation at All(wildcard-tyvars.rs:8:77: 8:89)
| '_#0r: '_#12r due to BoringNoLocation at All(wildcard-tyvars.rs:8:57: 8:58)
| '_#1r: '_#11r due to BoringNoLocation at All(wildcard-tyvars.rs:8:44: 8:46)
| '_#3r: '_#17r due to Boring at Single(bb0[5])
| '_#4r: '_#19r due to Boring at Single(bb0[8])
| '_#5r: '_#18r due to Boring at Single(bb0[9])
| '_#6r: '_#13r due to Assignment at Single(bb0[15])
| '_#6r: '_#15r due to Boring at Single(bb0[15])
| '_#7r: '_#14r due to Assignment at Single(bb0[17])
| '_#7r: '_#16r due to Boring at Single(bb0[17])
| '_#8r: '_#10r due to Return at Single(bb0[20])
| '_#10r: '_#0r due to BoringNoLocation at All(wildcard-tyvars.rs:8:77: 8:89)
| '_#11r: '_#1r due to BoringNoLocation at All(wildcard-tyvars.rs:8:44: 8:46)
| '_#12r: '_#0r due to BoringNoLocation at All(wildcard-tyvars.rs:8:57: 8:58)
| '_#12r: '_#3r due to Boring at Single(bb0[5])
| '_#13r: '_#8r due to Boring at Single(bb0[20])
| '_#13r: '_#20r due to TypeAnnotation at All(wildcard-tyvars.rs:10:26: 10:36)
| '_#14r: '_#21r due to TypeAnnotation at All(wildcard-tyvars.rs:10:26: 10:36)
| '_#15r: '_#6r due to Boring at Single(bb0[15])
| '_#15r: '_#22r due to TypeAnnotation at All(wildcard-tyvars.rs:10:26: 10:36)
| '_#16r: '_#7r due to Boring at Single(bb0[17])
| '_#16r: '_#22r due to TypeAnnotation at All(wildcard-tyvars.rs:10:26: 10:36)
| '_#17r: '_#15r due to Boring at Single(bb0[10])
| '_#18r: '_#16r due to Boring at Single(bb0[10])
| '_#19r: '_#5r due to Boring at Single(bb0[9])
| '_#20r: '_#13r due to TypeAnnotation at All(wildcard-tyvars.rs:10:26: 10:36)
| '_#21r: '_#14r due to TypeAnnotation at All(wildcard-tyvars.rs:10:26: 10:36)
|
| User Type Annotations
| 0: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty((&ReLateBound(DebruijnIndex(0), BrAnon(0)) u32, &ReLateBound(DebruijnIndex(0), BrAnon(0)) u32)) } at wildcard-tyvars.rs:10:26: 10:36
| 1: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty((&ReLateBound(DebruijnIndex(0), BrAnon(0)) u32, &ReLateBound(DebruijnIndex(0), BrAnon(0)) u32)) } at wildcard-tyvars.rs:10:26: 10:36
| 2: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty((&ReLateBound(DebruijnIndex(0), BrAnon(0)) u32, &ReLateBound(DebruijnIndex(0), BrAnon(0)) u32)) } at wildcard-tyvars.rs:10:26: 10:36
|
fn static_to_a_to_static_through_tyvar(_1: &'_#11r u32, _2: &'_#12r u32) -> &'_#10r u32{
let mut _0: &'_#10r u32; // return place
scope 1 {
scope 3 {
}
scope 4 {
let mut _4: &'_#13r u32 as UserTypeProjection { base: UserTypeAnnotation(0), projs: [Field(field[0], ())] }; // "y" in scope 4 at wildcard-tyvars.rs:10:10: 10:15
let mut _5: &'_#14r u32 as UserTypeProjection { base: UserTypeAnnotation(1), projs: [Field(field[1], ())] }; // "_z" in scope 4 at wildcard-tyvars.rs:10:17: 10:23
}
}
scope 2 {
let _3: u32; // "local" in scope 2 at wildcard-tyvars.rs:9:9: 9:14
}
let mut _6: (&'_#15r u32, &'_#16r u32);
let mut _7: &'_#17r u32;
let mut _8: &'_#18r u32;
let mut _9: &'_#19r u32;
bb0: {
StorageLive(_3); // bb0[0]: scope 0 at wildcard-tyvars.rs:9:9: 9:14
_3 = const 3u32; // bb0[1]: scope 0 at wildcard-tyvars.rs:9:17: 9:18
// ty::Const
// + ty: u32
// + val: Scalar(Bits { size: 4, bits: 3 })
// mir::Constant
// + span: wildcard-tyvars.rs:9:17: 9:18
// + ty: u32
// + literal: Const { ty: u32, val: Scalar(Bits { size: 4, bits: 3 }) }
FakeRead(ForLet, _3); // bb0[2]: scope 0 at wildcard-tyvars.rs:9:9: 9:14
StorageLive(_6); // bb0[3]: scope 1 at wildcard-tyvars.rs:10:39: 10:50
StorageLive(_7); // bb0[4]: scope 1 at wildcard-tyvars.rs:10:40: 10:41
_7 = &'_#3r (*_2); // bb0[5]: scope 1 at wildcard-tyvars.rs:10:40: 10:41
StorageLive(_8); // bb0[6]: scope 1 at wildcard-tyvars.rs:10:43: 10:49
StorageLive(_9); // bb0[7]: scope 1 at wildcard-tyvars.rs:10:43: 10:49
_9 = &'_#4r _3; // bb0[8]: scope 1 at wildcard-tyvars.rs:10:43: 10:49
_8 = &'_#5r (*_9); // bb0[9]: scope 1 at wildcard-tyvars.rs:10:43: 10:49
_6 = (move _7, move _8); // bb0[10]: scope 1 at wildcard-tyvars.rs:10:39: 10:50
StorageDead(_8); // bb0[11]: scope 1 at wildcard-tyvars.rs:10:49: 10:50
StorageDead(_7); // bb0[12]: scope 1 at wildcard-tyvars.rs:10:49: 10:50
AscribeUserType(_6, +, UserTypeProjection { base: UserTypeAnnotation(2), projs: [] }); // bb0[13]: scope 1 at wildcard-tyvars.rs:10:26: 10:36
StorageLive(_4); // bb0[14]: scope 1 at wildcard-tyvars.rs:10:10: 10:15
_4 = (_6.0: &'_#6r u32); // bb0[15]: scope 1 at wildcard-tyvars.rs:10:10: 10:15
StorageLive(_5); // bb0[16]: scope 1 at wildcard-tyvars.rs:10:17: 10:23
_5 = (_6.1: &'_#7r u32); // bb0[17]: scope 1 at wildcard-tyvars.rs:10:17: 10:23
StorageDead(_6); // bb0[18]: scope 1 at wildcard-tyvars.rs:10:50: 10:51
StorageDead(_9); // bb0[19]: scope 1 at wildcard-tyvars.rs:10:50: 10:51
_0 = &'_#8r (*_4); // bb0[20]: scope 3 at wildcard-tyvars.rs:38:5: 38:6
StorageDead(_5); // bb0[21]: scope 1 at wildcard-tyvars.rs:39:1: 39:2
StorageDead(_4); // bb0[22]: scope 1 at wildcard-tyvars.rs:39:1: 39:2
StorageDead(_3); // bb0[23]: scope 0 at wildcard-tyvars.rs:39:1: 39:2
return; // bb0[24]: scope 0 at wildcard-tyvars.rs:39:2: 39:2
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment