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 to normalize an alias. This always expects the term to
be an unconstrained inference variable which is used as the output.
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: