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 substituted 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 substitutions 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> !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<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
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
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: &[QueryInfo], _guar: ErrorGuaranteed ) -> 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