rustc_type_ir

Module predicate

Source

Structs§

AliasTerm
Represents the unprojected term of a projection goal.
CoercePredicate
Encodes that we have to coerce from the a type to the b type.
ExistentialProjection
A ProjectionPredicate for an ExistentialTraitRef.
ExistentialTraitRef
An existential reference to a trait, where Self is erased. For example, the trait object Trait<'a, 'b, X, Y> is:
HostEffectPredicate
NormalizesTo
Used by the new solver to normalize an alias. This always expects the term to be an unconstrained inference variable which is used as the output.
OutlivesPredicate
A: 'region
ProjectionPredicate
This kind of predicate has no direct correspondent in the syntax, but it roughly corresponds to the syntactic forms:
SubtypePredicate
Encodes that a must be a subtype of b. The a_is_expected flag indicates whether the a type is the type that we should label as “expected” when presenting user diagnostics.
TraitPredicate
TraitRef
A complete reference to a trait. These take numerous guises in syntax, but perhaps the most recognizable form is in a where-clause:

Enums§

AliasTermKind
BoundConstness
ExistentialPredicate
ImplPolarity
PredicatePolarity
Polarity for a trait predicate. May either be negative or positive. Distinguished from ImplPolarity since we never compute goals with “reservation” level.