pub type ExistentialPredicate<'tcx> = ExistentialPredicate<TyCtxt<'tcx>>;
Aliased Type§
pub enum ExistentialPredicate<'tcx> {
Trait(ExistentialTraitRef<TyCtxt<'tcx>>),
Projection(ExistentialProjection<TyCtxt<'tcx>>),
AutoTrait(DefId),
}
Variants§
Trait(ExistentialTraitRef<TyCtxt<'tcx>>)
E.g., Iterator
.
Projection(ExistentialProjection<TyCtxt<'tcx>>)
E.g., Iterator::Item = T
.
AutoTrait(DefId)
E.g., Send
.
Trait Implementations§
Source§impl<'tcx> ExistentialPredicateStableCmpExt<'tcx> for ExistentialPredicate<'tcx>
impl<'tcx> ExistentialPredicateStableCmpExt<'tcx> for ExistentialPredicate<'tcx>
Source§fn stable_cmp(&self, tcx: TyCtxt<'tcx>, other: &Self) -> Ordering
fn stable_cmp(&self, tcx: TyCtxt<'tcx>, other: &Self) -> Ordering
Compares via an ordering that will not change if modules are reordered or other changes are made to the tree. In particular, this ordering is preserved across incremental compilations.
Source§impl<'tcx, P: PrettyPrinter<'tcx>> Print<'tcx, P> for ExistentialPredicate<'tcx>
impl<'tcx, P: PrettyPrinter<'tcx>> Print<'tcx, P> for ExistentialPredicate<'tcx>
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.