#[non_exhaustive]#[repr(C)]pub struct BlockStatement<'a> {
pub span: Span,
pub node_id: Cell<NodeId>,
pub scope_id: Cell<Option<ScopeId>>,
pub body: Vec<'a, Statement<'a>>,
}Expand description
{ let foo = 1; } in if(true) { let foo = 1; }
Represents a block statement, which can include a body.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.span: Span§node_id: Cell<NodeId>§scope_id: Cell<Option<ScopeId>>§body: Vec<'a, Statement<'a>>Implementations§
Source§impl<'a> BlockStatement<'a>
impl<'a> BlockStatement<'a>
Sourcepub fn new<B, T1>(span: Span, body: T1, builder: &B) -> BlockStatement<'a>
pub fn new<B, T1>(span: Span, body: T1, builder: &B) -> BlockStatement<'a>
Build a BlockStatement.
If you want the built node to be allocated in the memory arena,
use BlockStatement::boxed instead.
§Parameters
span: TheSpancovering this nodebody
Sourcepub fn boxed<B, T1>(
span: Span,
body: T1,
builder: &B,
) -> Box<'a, BlockStatement<'a>>
pub fn boxed<B, T1>( span: Span, body: T1, builder: &B, ) -> Box<'a, BlockStatement<'a>>
Build a BlockStatement, and store it in the memory arena.
Returns a Box containing the newly-allocated node.
If you want a stack-allocated node, use BlockStatement::new instead.
§Parameters
span: TheSpancovering this nodebody
Sourcepub fn new_with_scope_id<B, T1>(
span: Span,
body: T1,
scope_id: ScopeId,
builder: &B,
) -> BlockStatement<'a>
pub fn new_with_scope_id<B, T1>( span: Span, body: T1, scope_id: ScopeId, builder: &B, ) -> BlockStatement<'a>
Build a BlockStatement with scope_id.
If you want the built node to be allocated in the memory arena,
use BlockStatement::boxed_with_scope_id instead.
§Parameters
span: TheSpancovering this nodebodyscope_id
Sourcepub fn boxed_with_scope_id<B, T1>(
span: Span,
body: T1,
scope_id: ScopeId,
builder: &B,
) -> Box<'a, BlockStatement<'a>>
pub fn boxed_with_scope_id<B, T1>( span: Span, body: T1, scope_id: ScopeId, builder: &B, ) -> Box<'a, BlockStatement<'a>>
Build a BlockStatement with scope_id, and store it in the memory arena.
Returns a Box containing the newly-allocated node.
If you want a stack-allocated node, use BlockStatement::new_with_scope_id instead.
§Parameters
span: TheSpancovering this nodebodyscope_id
Source§impl BlockStatement<'_>
impl BlockStatement<'_>
Sourcepub fn node_id(&self) -> NodeId
pub fn node_id(&self) -> NodeId
Get NodeId of BlockStatement.
Only use this method on a post-semantic AST where NodeIds are always defined.
Sourcepub fn set_node_id(&self, node_id: NodeId)
pub fn set_node_id(&self, node_id: NodeId)
Set NodeId of BlockStatement.
Sourcepub fn scope_id(&self) -> ScopeId
pub fn scope_id(&self) -> ScopeId
Get ScopeId of BlockStatement.
Only use this method on a post-semantic AST where ScopeIds are always defined.
§Panics
Panics if scope_id is None.
Sourcepub fn set_scope_id(&self, scope_id: ScopeId)
pub fn set_scope_id(&self, scope_id: ScopeId)
Set ScopeId of BlockStatement.
Trait Implementations§
Source§impl<'new_alloc> CloneIn<'new_alloc> for BlockStatement<'_>
impl<'new_alloc> CloneIn<'new_alloc> for BlockStatement<'_>
Source§type Cloned = BlockStatement<'new_alloc>
type Cloned = BlockStatement<'new_alloc>
Source§fn clone_in_impl(
&self,
with_semantic_ids: CloneInSemanticIds,
allocator: &'new_alloc Allocator,
) -> <BlockStatement<'_> as CloneIn<'new_alloc>>::Cloned
fn clone_in_impl( &self, with_semantic_ids: CloneInSemanticIds, allocator: &'new_alloc Allocator, ) -> <BlockStatement<'_> as CloneIn<'new_alloc>>::Cloned
self into allocator, threading whether semantic ids should be preserved as a
runtime with_semantic_ids flag rather than as two separate methods. Read moreSource§fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned
fn clone_in(&self, allocator: &'new_alloc Allocator) -> Self::Cloned
self into the given allocator. allocator may be the same one
that self is already in.Source§fn clone_in_with_semantic_ids(
&self,
allocator: &'new_alloc Allocator,
) -> Self::Cloned
fn clone_in_with_semantic_ids( &self, allocator: &'new_alloc Allocator, ) -> Self::Cloned
clone_in, but for some special type, it will also clone the semantic ids.
Please use this method only if you make sure semantic info is synced with the ast node.Source§impl ContentEq for BlockStatement<'_>
impl ContentEq for BlockStatement<'_>
Source§fn content_eq(&self, other: &BlockStatement<'_>) -> bool
fn content_eq(&self, other: &BlockStatement<'_>) -> bool
self and other to be equal.Source§fn content_ne(&self, other: &Self) -> bool
fn content_ne(&self, other: &Self) -> bool
self and other not to be equal.
The default implementation is almost always
sufficient, and should not be overridden without very good reason.Source§impl<'a> Debug for BlockStatement<'a>
impl<'a> Debug for BlockStatement<'a>
Source§impl<'a> Dummy<'a> for BlockStatement<'a>
impl<'a> Dummy<'a> for BlockStatement<'a>
Source§fn dummy(allocator: &'a Allocator) -> BlockStatement<'a>
fn dummy(allocator: &'a Allocator) -> BlockStatement<'a>
Create a dummy BlockStatement.
Does not allocate any data into arena.
Source§impl ESTree for BlockStatement<'_>
impl ESTree for BlockStatement<'_>
fn serialize<S>(&self, serializer: S)where
S: Serializer,
Source§impl Gen for BlockStatement<'_>
impl Gen for BlockStatement<'_>
Source§impl GetSpan for BlockStatement<'_>
impl GetSpan for BlockStatement<'_>
Source§impl GetSpanMut for BlockStatement<'_>
impl GetSpanMut for BlockStatement<'_>
Source§impl<'a> MayHaveSideEffects<'a> for BlockStatement<'a>
impl<'a> MayHaveSideEffects<'a> for BlockStatement<'a>
fn may_have_side_effects( &self, ctx: &impl MayHaveSideEffectsContext<'a>, ) -> bool
Source§impl<'a> ReplaceWith<'a> for BlockStatement<'a>
impl<'a> ReplaceWith<'a> for BlockStatement<'a>
Source§fn replace_with(&mut self, replacer: impl FnOnce(Self) -> Self)
fn replace_with(&mut self, replacer: impl FnOnce(Self) -> Self)
replacer. Read moreSource§impl<'a> TakeIn<'a> for BlockStatement<'a>
impl<'a> TakeIn<'a> for BlockStatement<'a>
Source§fn take_in<A>(&mut self, allocator_accessor: &A) -> Selfwhere
A: GetAllocator<'a>,
fn take_in<A>(&mut self, allocator_accessor: &A) -> Selfwhere
A: GetAllocator<'a>,
Source§fn take_in_box<A>(&mut self, allocator_accessor: &A) -> Box<'a, Self>where
A: GetAllocator<'a>,
fn take_in_box<A>(&mut self, allocator_accessor: &A) -> Box<'a, Self>where
A: GetAllocator<'a>,
Source§impl UnstableAddress for BlockStatement<'_>
impl UnstableAddress for BlockStatement<'_>
Auto Trait Implementations§
impl<'a> !Freeze for BlockStatement<'a>
impl<'a> !RefUnwindSafe for BlockStatement<'a>
impl<'a> !Send for BlockStatement<'a>
impl<'a> !Sync for BlockStatement<'a>
impl<'a> !UnwindSafe for BlockStatement<'a>
impl<'a> Unpin for BlockStatement<'a>
impl<'a> UnsafeUnpin for BlockStatement<'a>
Blanket Implementations§
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> 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<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more