# Type Alias rustc_middle::ty::PolyExistentialPredicate

source ·

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

## Aliased Type§

    struct PolyExistentialPredicate<'tcx> {
        value: ExistentialPredicate<'tcx>,
        bound_vars: &'tcx RawList<(), BoundVariableKind>,
    }

## Fields§

§`value: ExistentialPredicate<'tcx>`§`bound_vars: &'tcx RawList<(), 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