pub struct BlockExpr { /* private fields */ }Implementations§
Source§impl BlockExpr
impl BlockExpr
pub fn modifier(&self) -> Option<BlockModifier>
Sourcepub fn is_standalone(&self) -> bool
pub fn is_standalone(&self) -> bool
false if the block is an intrinsic part of the syntax and can’t be replaced with arbitrary expression.
fn foo() { not_stand_alone }
const FOO: () = { stand_alone };Source§impl BlockExpr
impl BlockExpr
pub fn label(&self) -> Option<Label>
pub fn stmt_list(&self) -> Option<StmtList>
pub fn try_block_modifier(&self) -> Option<TryBlockModifier>
pub fn async_token(&self) -> Option<SyntaxToken<RustLanguage>>
pub fn const_token(&self) -> Option<SyntaxToken<RustLanguage>>
pub fn gen_token(&self) -> Option<SyntaxToken<RustLanguage>>
pub fn move_token(&self) -> Option<SyntaxToken<RustLanguage>>
pub fn unsafe_token(&self) -> Option<SyntaxToken<RustLanguage>>
Source§impl BlockExpr
impl BlockExpr
pub fn statements(&self) -> impl Iterator<Item = Stmt>
pub fn tail_expr(&self) -> Option<Expr>
Sourcepub fn may_carry_attributes(&self) -> bool
pub fn may_carry_attributes(&self) -> bool
Block expressions accept outer and inner attributes, but only when they are the outer expression of an expression statement or the final expression of another block expression.
Trait Implementations§
Source§impl AstNode for BlockExpr
impl AstNode for BlockExpr
Source§fn kind() -> SyntaxKind
fn kind() -> SyntaxKind
This panics if the
SyntaxKind is not statically known.fn can_cast(kind: SyntaxKind) -> bool
fn cast(syntax: SyntaxNode<RustLanguage>) -> Option<BlockExpr>
fn syntax(&self) -> &SyntaxNode<RustLanguage>
fn clone_for_update(&self) -> Selfwhere
Self: Sized,
fn clone_subtree(&self) -> Selfwhere
Self: Sized,
impl Eq for BlockExpr
Source§impl From<BlockExpr> for ElseBranch
impl From<BlockExpr> for ElseBranch
Source§fn from(block_expr: BlockExpr) -> ElseBranch
fn from(block_expr: BlockExpr) -> ElseBranch
Converts to this type from the input type.
Source§impl From<BlockExpr> for AnyHasAttrs
impl From<BlockExpr> for AnyHasAttrs
Source§fn from(node: BlockExpr) -> AnyHasAttrs
fn from(node: BlockExpr) -> AnyHasAttrs
Converts to this type from the input type.
Source§impl HasAttrs for BlockExpr
impl HasAttrs for BlockExpr
fn attrs(&self) -> AstChildren<Attr> ⓘ
Source§fn inner_attributes_node(&self) -> Option<SyntaxNode<RustLanguage>>
fn inner_attributes_node(&self) -> Option<SyntaxNode<RustLanguage>>
This may return the same node as called with (with
SourceFile). The caller has the responsibility
to avoid duplicate attributes.Auto Trait Implementations§
impl !RefUnwindSafe for BlockExpr
impl !Send for BlockExpr
impl !Sync for BlockExpr
impl !UnwindSafe for BlockExpr
impl Freeze for BlockExpr
impl Unpin for BlockExpr
impl UnsafeUnpin for BlockExpr
Blanket Implementations§
Source§impl<N> AstNodeEdit for N
impl<N> AstNodeEdit for N
fn indent_level(&self) -> IndentLevel
fn indent(&self, level: IndentLevel) -> Self
fn indent_with_mapping(&self, level: IndentLevel, make: &SyntaxFactory) -> Self
fn dedent(&self, level: IndentLevel) -> Self
fn reset_indent(&self) -> Self
Source§impl<T> AttrsOwnerEdit for Twhere
T: HasAttrs,
impl<T> AttrsOwnerEdit for Twhere
T: HasAttrs,
fn remove_attrs_and_docs(&self, editor: &SyntaxEditor)
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
Converts
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>
Converts
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 more