Skip to main content

Module region_constraint

Module region_constraint 

Source
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:
PlaceholderReplacer
RegionConstraint
An And and an Or constraint both in canonical forms, with two additional constraints:

Enums§

LeafRegionConstraint

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 false if they had been false themselves.
regions_outlived_by
Returns all regions r2 for which r: r2 is known to hold in the universe associated with assumptions
regions_outlived_by_placeholder
Returns all regions r for which !t: r is known to hold in the universe associated with assumptions
regions_outliving
Returns all regions r2 for which r2: r is known to hold in the universe associated with assumptions