Checks that an opaque type does not contain cycles and does not use Self
or T::Foo
projections that would result in “inheriting lifetimes”.
Checks that an opaque type does not contain cycles.
Check that the concrete type behind impl Trait
actually implements Trait
.
Check that the opaque’s precise captures list is valid (if present).
We check this for regular impl Trait
s and also RPITITs, even though the latter
are technically GATs.
Check that a static
is inhabited.
Check that the fields of the union
do not need dropping.
Check the representation of adts with unnamed fields.
Part of enum check. Given the discriminants of an enum, errors if two or more discriminants are equal
Emit an error for recursive opaque types.