Struct rustc::mir::BasicBlockData
[−]
[src]
pub struct BasicBlockData<'tcx> { pub statements: Vec<Statement<'tcx>>, pub terminator: Option<Terminator<'tcx>>, pub is_cleanup: bool, }
rustc_private
)Fields
statements: Vec<Statement<'tcx>>
rustc_private
)List of statements in this block.
terminator: Option<Terminator<'tcx>>
rustc_private
)Terminator for this block.
NB. This should generally ONLY be None
during construction.
Therefore, you should generally access it via the
terminator()
or terminator_mut()
methods. The only
exception is that certain passes, such as simplify_cfg
, swap
out the terminator temporarily with None
while they continue
to recurse over the set of basic blocks.
is_cleanup: bool
rustc_private
)If true, this block lies on an unwind path. This is used during trans where distinct kinds of basic blocks may be generated (particularly for MSVC cleanup). Unwind blocks must only branch to other unwind blocks.
Methods
impl<'tcx> BasicBlockData<'tcx>
[src]
fn new(terminator: Option<Terminator<'tcx>>) -> BasicBlockData<'tcx>
rustc_private
)fn terminator(&self) -> &Terminator<'tcx>
rustc_private
)Accessor for terminator.
Terminator may not be None after construction of the basic block is complete. This accessor provides a convenience way to reach the terminator.
fn terminator_mut(&mut self) -> &mut Terminator<'tcx>
rustc_private
)Trait Implementations
impl<'tcx> Clone for BasicBlockData<'tcx>
[src]
fn clone(&self) -> BasicBlockData<'tcx>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl<'tcx> Debug for BasicBlockData<'tcx>
[src]
impl<'tcx> Encodable for BasicBlockData<'tcx>
[src]
fn encode<__S: Encoder>(&self, __arg_0: &mut __S) -> Result<(), __S::Error>
🔬 This is a nightly-only experimental API. (rustc_private
)
deprecated in favor of rustc-serialize on crates.io
impl<'tcx> Decodable for BasicBlockData<'tcx>
[src]
fn decode<__D: Decoder>(__arg_0: &mut __D)
-> Result<BasicBlockData<'tcx>, __D::Error>
-> Result<BasicBlockData<'tcx>, __D::Error>
🔬 This is a nightly-only experimental API. (rustc_private
)
deprecated in favor of rustc-serialize on crates.io
impl<'tcx> TypeFoldable<'tcx> for BasicBlockData<'tcx>
[src]
fn super_fold_with<'gcx: 'tcx, F: TypeFolder<'gcx, 'tcx>>(&self,
folder: &mut F)
-> Self
folder: &mut F)
-> Self
rustc_private
)fn super_visit_with<V: TypeVisitor<'tcx>>(&self, visitor: &mut V) -> bool
rustc_private
)fn fold_with<'gcx: 'tcx, F: TypeFolder<'gcx, 'tcx>>(&self,
folder: &mut F)
-> Self
folder: &mut F)
-> Self
rustc_private
)fn visit_with<V: TypeVisitor<'tcx>>(&self, visitor: &mut V) -> bool
rustc_private
)fn has_regions_escaping_depth(&self, depth: u32) -> bool
rustc_private
)fn has_escaping_regions(&self) -> bool
rustc_private
)fn has_type_flags(&self, flags: TypeFlags) -> bool
rustc_private
)fn has_projection_types(&self) -> bool
rustc_private
)fn references_error(&self) -> bool
rustc_private
)fn has_param_types(&self) -> bool
rustc_private
)fn has_self_ty(&self) -> bool
rustc_private
)fn has_infer_types(&self) -> bool
rustc_private
)fn needs_infer(&self) -> bool
rustc_private
)fn needs_subst(&self) -> bool
rustc_private
)fn has_re_skol(&self) -> bool
rustc_private
)fn has_closure_types(&self) -> bool
rustc_private
)fn has_erasable_regions(&self) -> bool
rustc_private
)fn is_normalized_for_trans(&self) -> bool
rustc_private
)fn is_global(&self) -> bool
rustc_private
)Indicates whether this value references only 'global' types/lifetimes that are the same regardless of what fn we are in. This is used for caching. Errs on the side of returning false. Read more