Struct rustc_middle::ty::sty::InlineConstSubsts
source · pub struct InlineConstSubsts<'tcx> {
pub substs: SubstsRef<'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 ClosureSubsts
have CS
and U
as type parameters:
inline const can reference lifetimes that are internal to the creating function.
Fields§
§substs: SubstsRef<'tcx>
Generic parameters from the enclosing item, concatenated with the inferred type of the constant.
Implementations§
source§impl<'tcx> InlineConstSubsts<'tcx>
impl<'tcx> InlineConstSubsts<'tcx>
sourcepub fn new(
tcx: TyCtxt<'tcx>,
parts: InlineConstSubstsParts<'tcx, Ty<'tcx>>
) -> InlineConstSubsts<'tcx>
pub fn new( tcx: TyCtxt<'tcx>, parts: InlineConstSubstsParts<'tcx, Ty<'tcx>> ) -> InlineConstSubsts<'tcx>
Construct InlineConstSubsts
from InlineConstSubstsParts
.
sourcefn split(self) -> InlineConstSubstsParts<'tcx, GenericArg<'tcx>>
fn split(self) -> InlineConstSubstsParts<'tcx, GenericArg<'tcx>>
Divides the inline const substs into their respective components.
The ordering assumed here must match that used by InlineConstSubsts::new
above.
sourcepub fn parent_substs(self) -> &'tcx [GenericArg<'tcx>]
pub fn parent_substs(self) -> &'tcx [GenericArg<'tcx>]
Returns the substitutions of the inline const’s parent.
Trait Implementations§
source§impl<'tcx> Clone for InlineConstSubsts<'tcx>
impl<'tcx> Clone for InlineConstSubsts<'tcx>
source§fn clone(&self) -> InlineConstSubsts<'tcx>
fn clone(&self) -> InlineConstSubsts<'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 InlineConstSubsts<'tcx>
impl<'tcx> Debug for InlineConstSubsts<'tcx>
impl<'tcx> Copy for InlineConstSubsts<'tcx>
Auto Trait Implementations§
impl<'tcx> !RefUnwindSafe for InlineConstSubsts<'tcx>
impl<'tcx> !Send for InlineConstSubsts<'tcx>
impl<'tcx> !Sync for InlineConstSubsts<'tcx>
impl<'tcx> Unpin for InlineConstSubsts<'tcx>
impl<'tcx> !UnwindSafe for InlineConstSubsts<'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, D> Value<Tcx, D> for Twhere
Tcx: DepContext,
D: DepKind,
impl<Tcx, T, D> Value<Tcx, D> for Twhere Tcx: DepContext, D: DepKind,
default fn from_cycle_error(tcx: Tcx, _: &[QueryInfo<D>]) -> 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