Struct rustc_middle::ty::sty::InlineConstArgs
source · pub struct InlineConstArgs<'tcx> {
pub args: GenericArgsRef<'tcx>,
}
Expand description
An inline const is modeled like
const InlineConst<'l0...'li, T0...Tj, R>: R;
where:
- ’l0…’li and T0…Tj are the generic parameters inherited from the item that defined the inline const,
- R represents the type of the constant.
When the inline const is instantiated, R
is instantiated as the actual inferred
type of the constant. The reason that R
is represented as an extra type parameter
is the same reason that ty::ClosureArgs
have CS
and U
as type parameters:
inline const can reference lifetimes that are internal to the creating function.
Fields§
§args: GenericArgsRef<'tcx>
Generic parameters from the enclosing item, concatenated with the inferred type of the constant.
Implementations§
source§impl<'tcx> InlineConstArgs<'tcx>
impl<'tcx> InlineConstArgs<'tcx>
sourcepub fn new(
tcx: TyCtxt<'tcx>,
parts: InlineConstArgsParts<'tcx, Ty<'tcx>>,
) -> InlineConstArgs<'tcx>
pub fn new( tcx: TyCtxt<'tcx>, parts: InlineConstArgsParts<'tcx, Ty<'tcx>>, ) -> InlineConstArgs<'tcx>
Construct InlineConstArgs
from InlineConstArgsParts
.
sourcefn split(self) -> InlineConstArgsParts<'tcx, GenericArg<'tcx>>
fn split(self) -> InlineConstArgsParts<'tcx, GenericArg<'tcx>>
Divides the inline const args into their respective components.
The ordering assumed here must match that used by InlineConstArgs::new
above.
sourcepub fn parent_args(self) -> &'tcx [GenericArg<'tcx>]
pub fn parent_args(self) -> &'tcx [GenericArg<'tcx>]
Returns the generic parameters of the inline const’s parent.
Trait Implementations§
source§impl<'tcx> Clone for InlineConstArgs<'tcx>
impl<'tcx> Clone for InlineConstArgs<'tcx>
source§fn clone(&self) -> InlineConstArgs<'tcx>
fn clone(&self) -> InlineConstArgs<'tcx>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'tcx> Debug for InlineConstArgs<'tcx>
impl<'tcx> Debug for InlineConstArgs<'tcx>
impl<'tcx> Copy for InlineConstArgs<'tcx>
Auto Trait Implementations§
impl<'tcx> Freeze for InlineConstArgs<'tcx>
impl<'tcx> !RefUnwindSafe for InlineConstArgs<'tcx>
impl<'tcx> Send for InlineConstArgs<'tcx>
impl<'tcx> Sync for InlineConstArgs<'tcx>
impl<'tcx> Unpin for InlineConstArgs<'tcx>
impl<'tcx> !UnwindSafe for InlineConstArgs<'tcx>
Blanket Implementations§
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T>, ) -> &'a mut [T]
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>( arena: &'a Arena<'tcx>, iter: impl IntoIterator<Item = T>, ) -> &'a mut [T]
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed, ) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for T
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: 8 bytes