# Type Alias rustc_middle::ty::PolyExistentialTraitRef

source ·

    pub type PolyExistentialTraitRef<'tcx> = Binder<'tcx, ExistentialTraitRef<'tcx>>;

## Aliased Type§

    struct PolyExistentialTraitRef<'tcx> {
        value: ExistentialTraitRef<'tcx>,
        bound_vars: &'tcx List<BoundVariableKind>,
    }

## Fields§

§`value: ExistentialTraitRef<'tcx>`§`bound_vars: &'tcx List<BoundVariableKind>`

## Implementations§

source§

### impl<'tcx> PolyExistentialTraitRef<'tcx>

source

#### pub fn def_id(&self) -> DefId

source

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

Object types don’t have a self type specified. Therefore, when we convert the principal trait-ref into a normal trait-ref, you must give some self type. A common choice is `mk_err()` or some placeholder type.

## Trait Implementations§

source§

### impl<'tcx> Display for PolyExistentialTraitRef<'tcx>

source§

#### fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

### impl<'tcx> Key for PolyExistentialTraitRef<'tcx>

§

#### type CacheSelector = DefaultCacheSelector<Binder<'tcx, ExistentialTraitRef<'tcx>>>

source§

#### fn default_span(&self, tcx: TyCtxt<'_>) -> Span

In the event that a cycle occurs, if no explicit span has been given for a query with key `self`, what span should we use?
source§

#### fn key_as_def_id(&self) -> Option<DefId>

If the key is a `DefId` or `DefId`–equivalent, return that `DefId`. Otherwise, return `None`.
source§

#### fn ty_def_id(&self) -> Option<DefId>

## 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: 24 bytes