Type Definition rustc_middle::ty::PolyProjectionPredicate[−][src]

type PolyProjectionPredicate<'tcx> = Binder<ProjectionPredicate<'tcx>>;

Implementations

impl<'tcx> PolyProjectionPredicate<'tcx>[src]

pub fn item_def_id(&self) -> DefId[src]

Returns the DefId of the associated item being projected.

pub fn trait_def_id(&self, tcx: TyCtxt<'tcx>) -> DefId[src]

Returns the DefId of the trait of the associated item being projected.

pub fn projection_self_ty(&self) -> Binder<Ty<'tcx>>[src]

pub fn required_poly_trait_ref(&self, tcx: TyCtxt<'tcx>) -> PolyTraitRef<'tcx>[src]

Get the PolyTraitRef required for this projection to be well formed. Note that for generic associated types the predicates of the associated type also need to be checked.

pub fn ty(&self) -> Binder<Ty<'tcx>>[src]

pub fn projection_def_id(&self) -> DefId[src]

The DefId of the TraitItem for the associated type.

Note that this is not the DefId of the TraitRef containing this associated type, which is in tcx.associated_item(projection_def_id()).container.

Trait Implementations

impl<'tcx> ToPredicate<'tcx> for PolyProjectionPredicate<'tcx>[src]