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 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.