Struct rustc_hir::hir::Block

source ·
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: BlockCheckMode

Distinguishes between unsafe { ... } and { ... }.

§span: Span§targeted_by_break: bool

If 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§

source§

impl<'hir> Block<'hir>

source

pub fn innermost_block(&self) -> &Block<'hir>

Trait Implementations§

source§

impl<'tcx> ArenaAllocatable<'tcx, IsNotCopy> for Block<'tcx>

source§

fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut Self

source§

fn allocate_from_iter<'a>(
    arena: &'a Arena<'tcx>,
    iter: impl IntoIterator<Item = Self>
) -> &'a mut [Self]

source§

impl<'hir> Debug for Block<'hir>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'hir, __CTX> HashStable<__CTX> for Block<'hir>where
    __CTX: HashStableContext,

source§

fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)

Auto Trait Implementations§

§

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<T> Any for Twhere
    T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere
    T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere
    U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere
    U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere
    U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

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