Struct rustc_mir_transform::simplify_try::ArmIdentityInfo
source · struct ArmIdentityInfo<'tcx> {Show 16 fields
local_temp_0: Local,
local_1: Local,
vf_s0: VarField<'tcx>,
get_variant_field_stmt: usize,
field_tmp_assignments: Vec<(Local, Local)>,
local_tmp_s1: Local,
local_0: Local,
vf_s1: VarField<'tcx>,
set_discr_local: Local,
set_discr_var_idx: VariantIdx,
stmt_to_overwrite: usize,
source_info: SourceInfo,
storage_stmts: Vec<(usize, usize, Local)>,
stmts_to_remove: Vec<usize>,
dbg_info_to_adjust: Vec<usize>,
dbg_projection: &'tcx List<PlaceElem<'tcx>>,
}
Fields§
§local_temp_0: Local
Storage location for the variant’s field
local_1: Local
Storage location holding the variant being read from
vf_s0: VarField<'tcx>
The variant field being read from
get_variant_field_stmt: usize
Index of the statement which loads the variant being read
field_tmp_assignments: Vec<(Local, Local)>
Tracks each assignment to a temporary of the variant’s field
local_tmp_s1: Local
Storage location holding the variant’s field that was read from
local_0: Local
Storage location holding the enum that we are writing to
vf_s1: VarField<'tcx>
The variant field being written to
set_discr_local: Local
Storage location that the discriminant is being written to
set_discr_var_idx: VariantIdx
The variant being written
stmt_to_overwrite: usize
Index of the statement that should be overwritten as a move
source_info: SourceInfo
SourceInfo for the new move
storage_stmts: Vec<(usize, usize, Local)>
Indices of matching Storage{Live,Dead} statements encountered. (StorageLive index,, StorageDead index, Local)
stmts_to_remove: Vec<usize>
The statements that should be removed (turned into nops)
dbg_info_to_adjust: Vec<usize>
Indices of debug variables that need to be adjusted to point to
dbg_projection: &'tcx List<PlaceElem<'tcx>>
The projection used to rewrite debug info.
Trait Implementations§
Auto Trait Implementations§
impl<'tcx> !RefUnwindSafe for ArmIdentityInfo<'tcx>
impl<'tcx> !Send for ArmIdentityInfo<'tcx>
impl<'tcx> !Sync for ArmIdentityInfo<'tcx>
impl<'tcx> Unpin for ArmIdentityInfo<'tcx>
impl<'tcx> !UnwindSafe for ArmIdentityInfo<'tcx>
Blanket Implementations§
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: 192 bytes