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§
source§impl<'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>
impl<'tcx, V> !Sync for LocalRef<'tcx, V>
impl<'tcx, V> Unpin for LocalRef<'tcx, V>where
V: Unpin,
impl<'tcx, V> !UnwindSafe for LocalRef<'tcx, V>
Blanket Implementations§
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.