Propagate use_polonius
flag to liveness module
This commit is contained in:
parent
7cd14d2f56
commit
42371a502f
@ -189,6 +189,7 @@ pub(crate) fn compute_regions<'cx, 'tcx>(
|
|||||||
move_data,
|
move_data,
|
||||||
elements,
|
elements,
|
||||||
upvars,
|
upvars,
|
||||||
|
use_polonius,
|
||||||
);
|
);
|
||||||
|
|
||||||
if let Some(all_facts) = &mut all_facts {
|
if let Some(all_facts) = &mut all_facts {
|
||||||
|
@ -37,6 +37,7 @@ pub(super) fn generate<'mir, 'tcx>(
|
|||||||
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'mir, 'tcx>>,
|
flow_inits: &mut ResultsCursor<'mir, 'tcx, MaybeInitializedPlaces<'mir, 'tcx>>,
|
||||||
move_data: &MoveData<'tcx>,
|
move_data: &MoveData<'tcx>,
|
||||||
location_table: &LocationTable,
|
location_table: &LocationTable,
|
||||||
|
use_polonius: bool,
|
||||||
) {
|
) {
|
||||||
debug!("liveness::generate");
|
debug!("liveness::generate");
|
||||||
|
|
||||||
@ -46,7 +47,7 @@ pub(super) fn generate<'mir, 'tcx>(
|
|||||||
&typeck.borrowck_context.constraints.outlives_constraints,
|
&typeck.borrowck_context.constraints.outlives_constraints,
|
||||||
);
|
);
|
||||||
let live_locals = compute_live_locals(typeck.tcx(), &free_regions, &body);
|
let live_locals = compute_live_locals(typeck.tcx(), &free_regions, &body);
|
||||||
let facts_enabled = AllFacts::enabled(typeck.tcx());
|
let facts_enabled = use_polonius || AllFacts::enabled(typeck.tcx());
|
||||||
|
|
||||||
let polonius_drop_used = if facts_enabled {
|
let polonius_drop_used = if facts_enabled {
|
||||||
let mut drop_used = Vec::new();
|
let mut drop_used = Vec::new();
|
||||||
|
@ -136,6 +136,7 @@ pub(crate) fn type_check<'mir, 'tcx>(
|
|||||||
move_data: &MoveData<'tcx>,
|
move_data: &MoveData<'tcx>,
|
||||||
elements: &Rc<RegionValueElements>,
|
elements: &Rc<RegionValueElements>,
|
||||||
upvars: &[Upvar<'tcx>],
|
upvars: &[Upvar<'tcx>],
|
||||||
|
use_polonius: bool,
|
||||||
) -> MirTypeckResults<'tcx> {
|
) -> MirTypeckResults<'tcx> {
|
||||||
let implicit_region_bound = infcx.tcx.mk_region(ty::ReVar(universal_regions.fr_fn_body));
|
let implicit_region_bound = infcx.tcx.mk_region(ty::ReVar(universal_regions.fr_fn_body));
|
||||||
let mut universe_causes = FxHashMap::default();
|
let mut universe_causes = FxHashMap::default();
|
||||||
@ -187,7 +188,15 @@ pub(crate) fn type_check<'mir, 'tcx>(
|
|||||||
&mut borrowck_context,
|
&mut borrowck_context,
|
||||||
|mut cx| {
|
|mut cx| {
|
||||||
cx.equate_inputs_and_outputs(&body, universal_regions, &normalized_inputs_and_output);
|
cx.equate_inputs_and_outputs(&body, universal_regions, &normalized_inputs_and_output);
|
||||||
liveness::generate(&mut cx, body, elements, flow_inits, move_data, location_table);
|
liveness::generate(
|
||||||
|
&mut cx,
|
||||||
|
body,
|
||||||
|
elements,
|
||||||
|
flow_inits,
|
||||||
|
move_data,
|
||||||
|
location_table,
|
||||||
|
use_polonius,
|
||||||
|
);
|
||||||
|
|
||||||
translate_outlives_facts(&mut cx);
|
translate_outlives_facts(&mut cx);
|
||||||
let opaque_type_values = mem::take(&mut infcx.inner.borrow_mut().opaque_types);
|
let opaque_type_values = mem::take(&mut infcx.inner.borrow_mut().opaque_types);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user