Represents the unprojected term of a projection goal.
Encodes that we have to coerce from the a
type to the b
type.
A ProjectionPredicate
for an ExistentialTraitRef
.
An existential reference to a trait, where Self
is erased.
For example, the trait object Trait<'a, 'b, X, Y>
is:
Used by the new solver. Unlike a ProjectionPredicate
this can only be
proven by actually normalizing alias
.
A: 'region
This kind of predicate has no direct correspondent in the
syntax, but it roughly corresponds to the syntactic forms:
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.
A complete reference to a trait. These take numerous guises in syntax,
but perhaps the most recognizable form is in a where-clause: