Skip to main content

ProjectionAliasTy

Type Alias ProjectionAliasTy 

Source
pub type ProjectionAliasTy<I> = Alias<I, <I as Interner>::TraitAssocTyId>;

Aliased Type§

pub struct ProjectionAliasTy<I> {
    pub kind: <I as Interner>::TraitAssocTyId,
    pub args: <I as Interner>::GenericArgs,
    pub(crate) _use_alias_new_instead: (),
}

Fields§

§kind: <I as Interner>::TraitAssocTyId§args: <I as Interner>::GenericArgs

The parameters of the associated, opaque, or constant alias.

For a projection, these are the generic parameters for the trait and the GAT parameters, if there are any.

For an inherent projection, they consist of the self type and the GAT parameters, if there are any.

For RPIT the generic parameters are for the generics of the function, while for TAIT it is used for the generic parameters of the alias.

§_use_alias_new_instead: ()

This field exists to prevent the creation of Alias without using the relevant constructor.

Implementations§

Source§

impl<I: Interner> ProjectionAliasTy<I>

Source

pub fn new_projection_from_args( interner: I, kind: I::TraitAssocTyId, args: I::GenericArgs, ) -> Self

Source

pub fn projection_to_alias_ty(self) -> AliasTy<I>

Source

pub fn projection_self_ty(self) -> I::Ty

Layout§

Note: Encountered an error during type layout; the type failed to be normalized.