add borrows to NLL MIR dumps
explicitly disable `-Zmir-include-spans` in mir-opt tests This will override the NLL default of true, and keep the blessed dumps easier to work with.
This commit is contained in:
parent
f3f5b4dcf2
commit
dff3d3588d
@ -229,7 +229,7 @@ fn do_mir_borrowck<'tcx>(
|
|||||||
|
|
||||||
// Dump MIR results into a file, if that is enabled. This let us
|
// Dump MIR results into a file, if that is enabled. This let us
|
||||||
// write unit-tests, as well as helping with debugging.
|
// write unit-tests, as well as helping with debugging.
|
||||||
nll::dump_nll_mir(&infcx, body, ®ioncx, &opt_closure_req);
|
nll::dump_nll_mir(&infcx, body, ®ioncx, &opt_closure_req, &borrow_set);
|
||||||
|
|
||||||
// We also have a `#[rustc_regions]` annotation that causes us to dump
|
// We also have a `#[rustc_regions]` annotation that causes us to dump
|
||||||
// information.
|
// information.
|
||||||
|
@ -224,6 +224,7 @@ pub(super) fn dump_nll_mir<'tcx>(
|
|||||||
body: &Body<'tcx>,
|
body: &Body<'tcx>,
|
||||||
regioncx: &RegionInferenceContext<'tcx>,
|
regioncx: &RegionInferenceContext<'tcx>,
|
||||||
closure_region_requirements: &Option<ClosureRegionRequirements<'tcx>>,
|
closure_region_requirements: &Option<ClosureRegionRequirements<'tcx>>,
|
||||||
|
borrow_set: &BorrowSet<'tcx>,
|
||||||
) {
|
) {
|
||||||
let tcx = infcx.tcx;
|
let tcx = infcx.tcx;
|
||||||
if !dump_enabled(tcx, "nll", body.source.def_id()) {
|
if !dump_enabled(tcx, "nll", body.source.def_id()) {
|
||||||
@ -259,6 +260,18 @@ pub(super) fn dump_nll_mir<'tcx>(
|
|||||||
})?;
|
})?;
|
||||||
writeln!(out, "|")?;
|
writeln!(out, "|")?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if borrow_set.len() > 0 {
|
||||||
|
writeln!(out, "| Borrows")?;
|
||||||
|
for (borrow_idx, borrow_data) in borrow_set.iter_enumerated() {
|
||||||
|
writeln!(
|
||||||
|
out,
|
||||||
|
"| {:?}: issued at {:?} in {:?}",
|
||||||
|
borrow_idx, borrow_data.reserve_location, borrow_data.region
|
||||||
|
)?;
|
||||||
|
}
|
||||||
|
writeln!(out, "|")?;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PassWhere::BeforeLocation(_) => {}
|
PassWhere::BeforeLocation(_) => {}
|
||||||
|
@ -2175,6 +2175,7 @@ fn make_compile_args(
|
|||||||
"-Zvalidate-mir",
|
"-Zvalidate-mir",
|
||||||
"-Zlint-mir",
|
"-Zlint-mir",
|
||||||
"-Zdump-mir-exclude-pass-number",
|
"-Zdump-mir-exclude-pass-number",
|
||||||
|
"-Zmir-include-spans=false", // remove span comments from NLL MIR dumps
|
||||||
"--crate-type=rlib",
|
"--crate-type=rlib",
|
||||||
]);
|
]);
|
||||||
if let Some(pass) = &self.props.mir_unit_test {
|
if let Some(pass) = &self.props.mir_unit_test {
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
| '?2: '?3 due to Assignment at Single(bb1[0]) ($DIR/region_subtyping_basic.rs:19:13: 19:18 (#0)
|
| '?2: '?3 due to Assignment at Single(bb1[0]) ($DIR/region_subtyping_basic.rs:19:13: 19:18 (#0)
|
||||||
| '?3: '?4 due to Assignment at Single(bb1[3]) ($DIR/region_subtyping_basic.rs:20:13: 20:14 (#0)
|
| '?3: '?4 due to Assignment at Single(bb1[3]) ($DIR/region_subtyping_basic.rs:20:13: 20:14 (#0)
|
||||||
|
|
|
|
||||||
|
| Borrows
|
||||||
|
| bw0: issued at bb1[0] in '?2
|
||||||
|
|
|
||||||
fn main() -> () {
|
fn main() -> () {
|
||||||
let mut _0: ();
|
let mut _0: ();
|
||||||
let mut _1: [usize; ValTree(Leaf(0x00000003): usize)];
|
let mut _1: [usize; ValTree(Leaf(0x00000003): usize)];
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
| '?2: '?3 due to Assignment at Single(bb1[0]) ($DIR/region_subtyping_basic.rs:19:13: 19:18 (#0)
|
| '?2: '?3 due to Assignment at Single(bb1[0]) ($DIR/region_subtyping_basic.rs:19:13: 19:18 (#0)
|
||||||
| '?3: '?4 due to Assignment at Single(bb1[3]) ($DIR/region_subtyping_basic.rs:20:13: 20:14 (#0)
|
| '?3: '?4 due to Assignment at Single(bb1[3]) ($DIR/region_subtyping_basic.rs:20:13: 20:14 (#0)
|
||||||
|
|
|
|
||||||
|
| Borrows
|
||||||
|
| bw0: issued at bb1[0] in '?2
|
||||||
|
|
|
||||||
fn main() -> () {
|
fn main() -> () {
|
||||||
let mut _0: ();
|
let mut _0: ();
|
||||||
let mut _1: [usize; ValTree(Leaf(0x0000000000000003): usize)];
|
let mut _1: [usize; ValTree(Leaf(0x0000000000000003): usize)];
|
||||||
|
@ -17,6 +17,9 @@
|
|||||||
| '?3 live at {bb0[11]}
|
| '?3 live at {bb0[11]}
|
||||||
| '?2: '?3 due to Assignment at Single(bb0[10]) ($DIR/storage_ranges.rs:7:17: 7:25 (#0)
|
| '?2: '?3 due to Assignment at Single(bb0[10]) ($DIR/storage_ranges.rs:7:17: 7:25 (#0)
|
||||||
|
|
|
|
||||||
|
| Borrows
|
||||||
|
| bw0: issued at bb0[10] in '?2
|
||||||
|
|
|
||||||
fn main() -> () {
|
fn main() -> () {
|
||||||
let mut _0: ();
|
let mut _0: ();
|
||||||
let _1: i32;
|
let _1: i32;
|
||||||
|
Loading…
Reference in New Issue
Block a user