Skip to content

Instantly share code, notes, and snippets.

@nikomatsakis
Created September 19, 2018 20:57
Show Gist options
  • Save nikomatsakis/6fed57e3b12bc35f2a359237c574e32b to your computer and use it in GitHub Desktop.
Save nikomatsakis/6fed57e3b12bc35f2a359237c574e32b to your computer and use it in GitHub Desktop.
// MIR for `Z`
// source = MirSource { def_id: DefId(0/0:4 ~ issue_54224[317d]::Z[0]), promoted: None }
// pass_name = nll
// disambiguator = 0
| Free Region Mapping
| '_#0r | Global | ['_#0r, '_#1r]
| '_#1r | Local | ['_#1r]
|
| Inferred Region Values
| '_#0r | U0 | {bb0[0..=15], '_#0r, '_#1r}
| '_#1r | U0 | {bb0[0..=15], '_#1r}
| '_#2r | U0 | {bb0[6..=7]}
| '_#3r | U0 | {bb0[6..=7]}
| '_#4r | U0 | {bb0[0..=15], '_#0r, '_#1r}
| '_#5r | U0 | {bb0[0..=15], '_#0r, '_#1r}
| '_#6r | U0 | {bb0[0..=15], '_#0r, '_#1r}
| '_#7r | U0 | {bb0[0..=15], '_#0r, '_#1r}
| '_#8r | U0 | {}
| '_#9r | U0 | {bb0[0..=15], '_#0r, '_#1r}
| '_#10r | U0 | {bb0[0..=15], '_#0r, '_#1r}
| '_#11r | U0 | {bb0[0..=15], '_#0r, '_#1r}
| '_#12r | U0 | {bb0[0..=15], '_#0r, '_#1r}
| '_#13r | U0 | {bb0[7]}
|
| Inference Constraints
| '_#0r live at {bb0[0..=15]}
| '_#1r live at {bb0[0..=15]}
| '_#2r live at {bb0[6]}
| '_#4r live at {bb0[9]}
| '_#5r live at {bb0[10]}
| '_#6r live at {bb0[11]}
| '_#7r live at {bb0[12]}
| '_#13r live at {bb0[7]}
| '_#0r: '_#9r due to All
| '_#2r: '_#3r due to Boring(bb0[6])
| '_#2r: '_#13r due to Boring(bb0[6])
| '_#3r: '_#2r due to Boring(bb0[6])
| '_#4r: '_#12r due to Boring(bb0[9])
| '_#5r: '_#11r due to Boring(bb0[10])
| '_#6r: '_#10r due to Boring(bb0[11])
| '_#7r: '_#9r due to Interesting(bb0[12])
| '_#9r: '_#0r due to All
| '_#10r: '_#7r due to Boring(bb0[12])
| '_#11r: '_#6r due to Interesting(bb0[11])
| '_#12r: '_#5r due to Boring(bb0[10])
const Z: std::borrow::Cow<'_#9r, [[u8; 3]]> ={
let mut _0: std::borrow::Cow<'_#9r, [[u8; 3]]>; // return place
let mut _1: &'_#10r [[u8; 3]];
let mut _2: &'_#11r [[u8; 3]; 1];
let mut _3: &'_#12r [[u8; 3]; 1];
let _4: [[u8; 3]; 1];
let mut _5: [u8; 3];
let mut _6: &'_#13r [u8; 3];
bb0: {
StorageLive(_1); // bb0[0]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:56: 5:66
StorageLive(_2); // bb0[1]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:56: 5:66
StorageLive(_3); // bb0[2]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:56: 5:66
StorageLive(_4); // bb0[3]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:57: 5:66
StorageLive(_5); // bb0[4]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:58: 5:65
StorageLive(_6); // bb0[5]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:59: 5:65
_6 = const Scalar(Ptr(Pointer { alloc_id: AllocId(1), offset: Size { raw: 0 } })):&'_#3r [u8; 3]; // bb0[6]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:59: 5:65
// ty::Const
// + ty: &'_#3r [u8; 3]
// + val: Scalar(Ptr(Pointer { alloc_id: AllocId(1), offset: Size { raw: 0 } }))
// mir::Constant
// + span: /home/nmatsakis/tmp/issue-54224.rs:5:59: 5:65
// + ty: &'_#2r [u8; 3]
// + literal: Const { ty: &'_#3r [u8; 3], val: Scalar(Ptr(Pointer { alloc_id: AllocId(1), offset: Size { raw: 0 } })) }
_5 = (*_6); // bb0[7]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:58: 5:65
_4 = [move _5]; // bb0[8]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:57: 5:66
_3 = &'_#4r _4; // bb0[9]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:56: 5:66
_2 = &'_#5r (*_3); // bb0[10]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:56: 5:66
_1 = move _2 as &'_#6r [[u8; 3]] (Unsize); // bb0[11]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:56: 5:66
_0 = std::borrow::Cow<'_#7r, [[u8; 3]]>::Borrowed(move _1,); // bb0[12]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:42: 5:67
StorageDead(_3); // bb0[13]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:66: 5:67
StorageDead(_6); // bb0[14]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:66: 5:67
return; // bb0[15]: scope 0 at /home/nmatsakis/tmp/issue-54224.rs:5:1: 5:68
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment