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 async_token(&self) -> Option<SyntaxToken>
pub fn const_token(&self) -> Option<SyntaxToken>
pub fn gen_token(&self) -> Option<SyntaxToken>
pub fn move_token(&self) -> Option<SyntaxToken>
pub fn try_token(&self) -> Option<SyntaxToken>
pub fn unsafe_token(&self) -> Option<SyntaxToken>
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() -> SyntaxKindwhere
Self: Sized,
fn kind() -> SyntaxKindwhere
Self: Sized,
This panics if the
SyntaxKind is not statically known.fn can_cast(kind: SyntaxKind) -> bool
fn cast(syntax: SyntaxNode) -> Option<Self>
fn syntax(&self) -> &SyntaxNode
fn clone_for_update(&self) -> Selfwhere
Self: Sized,
fn clone_subtree(&self) -> Selfwhere
Self: Sized,
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 From<BlockExpr> for ElseBranch
impl From<BlockExpr> for ElseBranch
Source§impl HasAttrs for BlockExpr
impl HasAttrs for BlockExpr
fn attrs(&self) -> AstChildren<Attr> ⓘ
fn has_atom_attr(&self, atom: &str) -> bool
Source§fn inner_attributes_node(&self) -> Option<SyntaxNode>
fn inner_attributes_node(&self) -> Option<SyntaxNode>
This may return the same node as called with (with
SourceFile). The caller has the responsibility
to avoid duplicate attributes.impl Eq for BlockExpr
Auto Trait Implementations§
impl Freeze for BlockExpr
impl !RefUnwindSafe for BlockExpr
impl !Send for BlockExpr
impl !Sync for BlockExpr
impl Unpin for BlockExpr
impl !UnwindSafe 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)
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
Source§impl<N> Indent for N
impl<N> Indent for N
fn indent_level(&self) -> IndentLevel
fn indent(&self, by: IndentLevel)
fn dedent(&self, by: IndentLevel)
fn reindent_to(&self, target_level: IndentLevel)
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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