Expand description
The bulk of the logic for implementing -Zassumptions-on-binders
Structs§
- And
- An AND of leaf constraints. Always in “canonical form”, meaning:
- Assumptions
- Or
- An OR of AND of LEAF constraints. Always in “canonical form” meaning:
- Placeholder
Replacer - Region
Constraint - An
Andand anOrconstraint both in canonical forms, with two additional constraints:
Enums§
Functions§
- destructure_
type_ outlives_ constraints_ in_ root - Converts type outlives constraints into region outlives constraints. This assumes the complete set of assumptions are known. This should not be called until the end of type checking.
- eagerly_
handle_ placeholders_ in_ universe - Takes any constraints involving placeholders from the current universe and eagerly checks them. This can be done a few ways:
- propagate_
ambiguity - Force the whole constraint to be ambiguous if it contains ambiguities which could
have caused the constraint to be
falseif they had beenfalsethemselves. - regions_
outlived_ by - Returns all regions
r2for whichr: r2is known to hold in the universe associated withassumptions - regions_
outlived_ by_ placeholder - Returns all regions
rfor which!t: ris known to hold in the universe associated withassumptions - regions_
outliving - Returns all regions
r2for whichr2: ris known to hold in the universe associated withassumptions