Struct rustc_middle::ty::layout::LayoutCx
source · pub struct LayoutCx<'tcx, C> {
pub tcx: C,
pub param_env: ParamEnv<'tcx>,
}Fields
tcx: Cparam_env: ParamEnv<'tcx>Trait Implementations
sourceimpl<'tcx, T: HasDataLayout> HasDataLayout for LayoutCx<'tcx, T>
impl<'tcx, T: HasDataLayout> HasDataLayout for LayoutCx<'tcx, T>
fn data_layout(&self) -> &TargetDataLayout
sourceimpl<'tcx, C> HasParamEnv<'tcx> for LayoutCx<'tcx, C>
impl<'tcx, C> HasParamEnv<'tcx> for LayoutCx<'tcx, C>
sourceimpl<'tcx, T: HasTargetSpec> HasTargetSpec for LayoutCx<'tcx, T>
impl<'tcx, T: HasTargetSpec> HasTargetSpec for LayoutCx<'tcx, T>
fn target_spec(&self) -> &Target
sourceimpl<'tcx> LayoutOfHelpers<'tcx> for LayoutCx<'tcx, TyCtxt<'tcx>>
impl<'tcx> LayoutOfHelpers<'tcx> for LayoutCx<'tcx, TyCtxt<'tcx>>
type LayoutOfResult = Result<TyAndLayout<'tcx, Ty<'tcx>>, LayoutError<'tcx>>
type LayoutOfResult = Result<TyAndLayout<'tcx, Ty<'tcx>>, LayoutError<'tcx>>
The
TyAndLayout-wrapping type (or TyAndLayout itself), which will be
returned from layout_of (see also handle_layout_err). Read moresourcefn handle_layout_err(
&self,
err: LayoutError<'tcx>,
_: Span,
_: Ty<'tcx>
) -> LayoutError<'tcx>
fn handle_layout_err(
&self,
err: LayoutError<'tcx>,
_: Span,
_: Ty<'tcx>
) -> LayoutError<'tcx>
Helper used for
layout_of, to adapt tcx.layout_of(...) into a
Self::LayoutOfResult (which does not need to be a Result<...>). Read moresourcefn layout_tcx_at_span(&self) -> Span
fn layout_tcx_at_span(&self) -> Span
Span to use for tcx.at(span), from layout_of.sourceimpl<'tcx> LayoutOfHelpers<'tcx> for LayoutCx<'tcx, TyCtxtAt<'tcx>>
impl<'tcx> LayoutOfHelpers<'tcx> for LayoutCx<'tcx, TyCtxtAt<'tcx>>
type LayoutOfResult = Result<TyAndLayout<'tcx, Ty<'tcx>>, LayoutError<'tcx>>
type LayoutOfResult = Result<TyAndLayout<'tcx, Ty<'tcx>>, LayoutError<'tcx>>
The
TyAndLayout-wrapping type (or TyAndLayout itself), which will be
returned from layout_of (see also handle_layout_err). Read moresourcefn layout_tcx_at_span(&self) -> Span
fn layout_tcx_at_span(&self) -> Span
Span to use for tcx.at(span), from layout_of.sourcefn handle_layout_err(
&self,
err: LayoutError<'tcx>,
_: Span,
_: Ty<'tcx>
) -> LayoutError<'tcx>
fn handle_layout_err(
&self,
err: LayoutError<'tcx>,
_: Span,
_: Ty<'tcx>
) -> LayoutError<'tcx>
Helper used for
layout_of, to adapt tcx.layout_of(...) into a
Self::LayoutOfResult (which does not need to be a Result<...>). Read moreimpl<'tcx, C: Copy> Copy for LayoutCx<'tcx, C>
Auto Trait Implementations
impl<'tcx, C> !RefUnwindSafe for LayoutCx<'tcx, C>
impl<'tcx, C> Send for LayoutCx<'tcx, C>where
C: Send,
impl<'tcx, C> Sync for LayoutCx<'tcx, C>where
C: Sync,
impl<'tcx, C> Unpin for LayoutCx<'tcx, C>where
C: Unpin,
impl<'tcx, C> !UnwindSafe for LayoutCx<'tcx, C>
Blanket Implementations
sourceimpl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter(
arena: &'a Arena<'tcx>,
iter: impl IntoIterator<Item = T>
) -> &'a mut [T]ⓘNotable traits for &[u8]impl Read for &[u8]impl Write for &mut [u8]
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T, R> InternIteratorElement<T, R> for T
impl<T, R> InternIteratorElement<T, R> for T
type Output = R
fn intern_with<I, F>(iter: I, f: F) -> <T as InternIteratorElement<T, R>>::Outputwhere
I: Iterator<Item = T>,
F: FnOnce(&[T]) -> R,
sourceimpl<'tcx, C> LayoutOf<'tcx> for Cwhere
C: LayoutOfHelpers<'tcx>,
impl<'tcx, C> LayoutOf<'tcx> for Cwhere
C: LayoutOfHelpers<'tcx>,
sourcefn layout_of(&self, ty: Ty<'tcx>) -> Self::LayoutOfResult
fn layout_of(&self, ty: Ty<'tcx>) -> Self::LayoutOfResult
Computes the layout of a type. Note that this implicitly
executes in “reveal all” mode, and will normalize the input type. Read more
sourcefn spanned_layout_of(&self, ty: Ty<'tcx>, span: Span) -> Self::LayoutOfResult
fn spanned_layout_of(&self, ty: Ty<'tcx>, span: Span) -> Self::LayoutOfResult
Computes the layout of a type, at
span. Note that this implicitly
executes in “reveal all” mode, and will normalize the input type. Read moresourceimpl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
sourceimpl<CTX, T> Value<CTX> for Twhere
CTX: DepContext,
impl<CTX, T> Value<CTX> for Twhere
CTX: DepContext,
default fn from_cycle_error(tcx: CTX, &[QueryInfo]) -> T
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
Layout
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.