rustc_middle::ty::inherent

Trait GenericArgs

pub trait GenericArgs<I>:
    Copy
    + Debug
    + Hash
    + Eq
    + SliceLike<Item = <I as Interner>::GenericArg>
    + Default
    + Relate<I>
where I: Interner<GenericArgs = Self>,
{ // Required methods fn rebase_onto( self, interner: I, source_def_id: <I as Interner>::DefId, target: Self, ) -> Self; fn type_at(self, i: usize) -> <I as Interner>::Ty; fn region_at(self, i: usize) -> <I as Interner>::Region; fn const_at(self, i: usize) -> <I as Interner>::Const; fn identity_for_item(interner: I, def_id: <I as Interner>::DefId) -> Self; fn extend_with_error( interner: I, def_id: <I as Interner>::DefId, original_args: &[<I as Interner>::GenericArg], ) -> Self; fn split_closure_args(self) -> ClosureArgsParts<I>; fn split_coroutine_closure_args(self) -> CoroutineClosureArgsParts<I>; fn split_coroutine_args(self) -> CoroutineArgsParts<I>; // Provided methods fn as_closure(self) -> ClosureArgs<I> { ... } fn as_coroutine_closure(self) -> CoroutineClosureArgs<I> { ... } fn as_coroutine(self) -> CoroutineArgs<I> { ... } }

Required Methods§

fn rebase_onto( self, interner: I, source_def_id: <I as Interner>::DefId, target: Self, ) -> Self

fn type_at(self, i: usize) -> <I as Interner>::Ty

fn region_at(self, i: usize) -> <I as Interner>::Region

fn const_at(self, i: usize) -> <I as Interner>::Const

fn identity_for_item(interner: I, def_id: <I as Interner>::DefId) -> Self

fn extend_with_error( interner: I, def_id: <I as Interner>::DefId, original_args: &[<I as Interner>::GenericArg], ) -> Self

fn split_closure_args(self) -> ClosureArgsParts<I>

fn split_coroutine_closure_args(self) -> CoroutineClosureArgsParts<I>

fn split_coroutine_args(self) -> CoroutineArgsParts<I>

Provided Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'tcx> GenericArgs<TyCtxt<'tcx>> for GenericArgsRef<'tcx>