Skip to main content

pull_region_outlives_constraints_out_of_universe

Function pull_region_outlives_constraints_out_of_universe 

Source
fn pull_region_outlives_constraints_out_of_universe<Infcx: InferCtxtLike<Interner = I>, I: Interner>(
    infcx: &Infcx,
    constraint: RegionConstraint<I>,
    u: UniverseIndex,
    assumptions: &Option<Assumptions<I>>,
) -> RegionConstraint<I>
Expand description

Handles converting region outlives constraints involving placeholders from u into OR constraints involving regions from smaller universes with known relationships to the placeholder. For example:

for<'a, 'b> where(
    'c: 'b, 'd: 'b,
    'a: 'e, 'a: 'f,
) {
    'a_u1: 'b_u1
}

will get converted to:

OR(
    'e: 'c,
    'e: 'd,
    'f: 'c,
    'f: 'd,
)

if we are handling constraints in u1.