pub mod values;
pub struct RegionInferenceContext<'tcx> {
+ pub var_infos: VarInfos,
/// Contains the definition for every region variable. Region
/// variables are identified by their index (`RegionVid`). The
/// definition contains information about where the region came
) -> Self {
// Create a RegionDefinition for each inference variable.
let definitions: IndexVec<_, _> = var_infos
- .into_iter()
+ .iter()
.map(|info| RegionDefinition::new(info.universe, info.origin))
.collect();
Rc::new(member_constraints_in.into_mapped(|r| constraint_sccs.scc(r)));
let mut result = Self {
+ var_infos,
definitions,
liveness_constraints,
constraints,
let universe_a = self.scc_universes[scc_a];
// Quick check: if scc_b's declared universe is a subset of
- // scc_a's declared univese (typically, both are ROOT), then
+ // scc_a's declared universe (typically, both are ROOT), then
// it cannot contain any problematic universe elements.
if universe_a.can_name(self.scc_universes[scc_b]) {
return true;
.iter()
.find_map(|constraint| {
if let ConstraintCategory::Predicate(predicate_span) = constraint.category {
- // We currentl'y doesn't store the `DefId` in the `ConstraintCategory`
+ // We currently do not store the `DefId` in the `ConstraintCategory`
// for performances reasons. The error reporting code used by NLL only
// uses the span, so this doesn't cause any problems at the moment.
Some(ObligationCauseCode::BindingObligation(