Enum rustc_codegen_ssa::mir::LocalRef
source · enum LocalRef<'tcx, V> {
Place(PlaceRef<'tcx, V>),
UnsizedPlace(PlaceRef<'tcx, V>),
Operand(OperandRef<'tcx, V>),
PendingOperand,
}
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(OperandRef<'tcx, V>)
The backend OperandValue
has already been generated.
PendingOperand
Will be a Self::Operand
once we get to its definition.
Implementations§
source§impl<'tcx, V: CodegenObject> LocalRef<'tcx, V>
impl<'tcx, V: CodegenObject> LocalRef<'tcx, V>
fn new_operand(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§
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
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.