pass more than outlives constraints to constraint conversion

This commit is contained in:
Niko Matsakis 2019-06-05 10:21:31 -04:00
parent 3aad20d8f8
commit 330cb7668c
3 changed files with 6 additions and 8 deletions

View file

@ -3,6 +3,7 @@ use crate::borrow_check::nll::region_infer::TypeTest;
use crate::borrow_check::nll::type_check::{Locations, MirTypeckRegionConstraints};
use crate::borrow_check::nll::universal_regions::UniversalRegions;
use crate::borrow_check::nll::ToRegionVid;
use rustc::infer::canonical::QueryRegionConstraints;
use rustc::infer::canonical::QueryOutlivesConstraint;
use rustc::infer::outlives::env::RegionBoundPairs;
use rustc::infer::outlives::obligations::{TypeOutlives, TypeOutlivesDelegate};
@ -49,8 +50,8 @@ impl<'a, 'tcx> ConstraintConversion<'a, 'tcx> {
}
}
pub(super) fn convert_all(&mut self, query_constraints: &[QueryOutlivesConstraint<'tcx>]) {
for query_constraint in query_constraints {
pub(super) fn convert_all(&mut self, query_constraints: &QueryRegionConstraints<'tcx>) {
for query_constraint in &query_constraints.outlives {
self.convert(query_constraint);
}
}

View file

@ -287,8 +287,7 @@ impl UniversalRegionRelationsBuilder<'cx, 'tcx> {
self.relations.relate_universal_regions(fr, fr_fn_body);
}
for data in constraint_sets {
let QueryRegionConstraints { outlives, pick_constraints: _ } = &*data; // TODO
for data in &constraint_sets {
constraint_conversion::ConstraintConversion::new(
self.infcx,
&self.universal_regions,
@ -298,7 +297,7 @@ impl UniversalRegionRelationsBuilder<'cx, 'tcx> {
Locations::All(DUMMY_SP),
ConstraintCategory::Internal,
&mut self.constraints,
).convert_all(outlives);
).convert_all(data);
}
CreateResult {

View file

@ -1100,8 +1100,6 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> {
locations, data
);
let QueryRegionConstraints { outlives, pick_constraints: _ } = data; // TODO
constraint_conversion::ConstraintConversion::new(
self.infcx,
self.borrowck_context.universal_regions,
@ -1111,7 +1109,7 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> {
locations,
category,
&mut self.borrowck_context.constraints,
).convert_all(outlives);
).convert_all(data);
}
/// Convenient wrapper around `relate_tys::relate_types` -- see