pub struct Block<'hir> {
pub stmts: &'hir [Stmt<'hir>],
pub expr: Option<&'hir Expr<'hir>>,
pub hir_id: HirId,
pub rules: BlockCheckMode,
pub span: Span,
pub targeted_by_break: bool,
}Expand description
A block of statements { .. }, which may have a label (in this case the
targeted_by_break field will be true) and may be unsafe by means of
the rules being anything but DefaultBlock.
Fields§
§stmts: &'hir [Stmt<'hir>]Statements in a block.
expr: Option<&'hir Expr<'hir>>An expression at the end of the block without a semicolon, if any.
hir_id: HirId§rules: BlockCheckModeDistinguishes between unsafe { ... } and { ... }.
span: SpanThe span includes the curly braces { and } around the block.
targeted_by_break: boolIf true, then there may exist break 'a values that aim to
break out of this block early.
Used by 'label: {} blocks and by try {} blocks.
Implementations§
Trait Implementations§
Source§impl<'hir, __CTX> HashStable<__CTX> for Block<'hir>where
__CTX: HashStableContext,
impl<'hir, __CTX> HashStable<__CTX> for Block<'hir>where
__CTX: HashStableContext,
fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)
impl<'hir> Copy for Block<'hir>
Auto Trait Implementations§
impl<'hir> DynSend for Block<'hir>
impl<'hir> DynSync for Block<'hir>
impl<'hir> Freeze for Block<'hir>
impl<'hir> RefUnwindSafe for Block<'hir>
impl<'hir> Send for Block<'hir>
impl<'hir> Sync for Block<'hir>
impl<'hir> Unpin for Block<'hir>
impl<'hir> UnwindSafe for Block<'hir>
Blanket Implementations§
Source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut T
fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = T>, ) -> &'tcx mut [T]
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
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: 48 bytes