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 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> DynSend for InlineConstArgs<'tcx>
impl<'tcx> DynSync for InlineConstArgs<'tcx>
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, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<T> Filterable for T
impl<T> Filterable for T
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<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
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<'tcx, T> ToPredicate<'tcx, T> for T
impl<'tcx, T> ToPredicate<'tcx, T> for T
fn to_predicate(self, _tcx: TyCtxt<'tcx>) -> 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