pub type PolyExistentialPredicate<'tcx> = Binder<'tcx, ExistentialPredicate<'tcx>>;

Aliased Type§

struct PolyExistentialPredicate<'tcx> {
    value: ExistentialPredicate<'tcx>,
    bound_vars: &'tcx List<BoundVariableKind>,
}

Fields§

§value: ExistentialPredicate<'tcx>§bound_vars: &'tcx List<BoundVariableKind>

Implementations§

source§

impl<'tcx> PolyExistentialPredicate<'tcx>

source

pub fn with_self_ty(&self, tcx: TyCtxt<'tcx>, self_ty: Ty<'tcx>) -> Clause<'tcx>

Given an existential predicate like ?Self: PartialEq<u32> (e.g., derived from dyn PartialEq<u32>), and a concrete type self_ty, returns a full predicate where the existentially quantified variable ?Self has been replaced with self_ty (e.g., self_ty: PartialEq<u32>, in our example).

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 32 bytes