Enum rustc_codegen_ssa::mir::LocalRef
source · enum LocalRef<'tcx, V> {
Place(PlaceRef<'tcx, V>),
UnsizedPlace(PlaceRef<'tcx, V>),
Operand(Option<OperandRef<'tcx, V>>),
}
Variants
Place(PlaceRef<'tcx, V>)
UnsizedPlace(PlaceRef<'tcx, V>)
UnsizedPlace(p)
: p
itself is a thin pointer (indirect place).
*p
is the fat pointer that references the actual unsized place.
Every time it is initialized, we have to reallocate the place
and update the fat pointer. That’s the reason why it is indirect.
Operand(Option<OperandRef<'tcx, V>>)
Implementations
sourceimpl<'a, 'tcx, V: CodegenObject> LocalRef<'tcx, V>
impl<'a, 'tcx, V: CodegenObject> LocalRef<'tcx, V>
fn new_operand<Bx: BuilderMethods<'a, 'tcx, Value = V>>(
bx: &mut Bx,
layout: TyAndLayout<'tcx>
) -> LocalRef<'tcx, V>
Auto Trait Implementations
impl<'tcx, V> !RefUnwindSafe for LocalRef<'tcx, V>
impl<'tcx, V> Send for LocalRef<'tcx, V>where
V: Send,
impl<'tcx, V> Sync for LocalRef<'tcx, V>where
V: Sync,
impl<'tcx, V> Unpin for LocalRef<'tcx, V>where
V: Unpin,
impl<'tcx, V> !UnwindSafe for LocalRef<'tcx, V>
Blanket Implementations
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
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.