diff options
Diffstat (limited to 'crates/ra_syntax/src/ast/generated')
-rw-r--r-- | crates/ra_syntax/src/ast/generated/nodes.rs | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs index 3f16592b6..2096f12f1 100644 --- a/crates/ra_syntax/src/ast/generated/nodes.rs +++ b/crates/ra_syntax/src/ast/generated/nodes.rs | |||
@@ -476,6 +476,16 @@ impl LoopExpr { | |||
476 | } | 476 | } |
477 | 477 | ||
478 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 478 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
479 | pub struct TryBlockExpr { | ||
480 | pub(crate) syntax: SyntaxNode, | ||
481 | } | ||
482 | impl ast::AttrsOwner for TryBlockExpr {} | ||
483 | impl TryBlockExpr { | ||
484 | pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) } | ||
485 | pub fn body(&self) -> Option<BlockExpr> { support::child(&self.syntax) } | ||
486 | } | ||
487 | |||
488 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | ||
479 | pub struct ForExpr { | 489 | pub struct ForExpr { |
480 | pub(crate) syntax: SyntaxNode, | 490 | pub(crate) syntax: SyntaxNode, |
481 | } | 491 | } |
@@ -1467,6 +1477,7 @@ pub enum Expr { | |||
1467 | FieldExpr(FieldExpr), | 1477 | FieldExpr(FieldExpr), |
1468 | AwaitExpr(AwaitExpr), | 1478 | AwaitExpr(AwaitExpr), |
1469 | TryExpr(TryExpr), | 1479 | TryExpr(TryExpr), |
1480 | TryBlockExpr(TryBlockExpr), | ||
1470 | CastExpr(CastExpr), | 1481 | CastExpr(CastExpr), |
1471 | RefExpr(RefExpr), | 1482 | RefExpr(RefExpr), |
1472 | PrefixExpr(PrefixExpr), | 1483 | PrefixExpr(PrefixExpr), |
@@ -1949,6 +1960,17 @@ impl AstNode for LoopExpr { | |||
1949 | } | 1960 | } |
1950 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | 1961 | fn syntax(&self) -> &SyntaxNode { &self.syntax } |
1951 | } | 1962 | } |
1963 | impl AstNode for TryBlockExpr { | ||
1964 | fn can_cast(kind: SyntaxKind) -> bool { kind == TRY_BLOCK_EXPR } | ||
1965 | fn cast(syntax: SyntaxNode) -> Option<Self> { | ||
1966 | if Self::can_cast(syntax.kind()) { | ||
1967 | Some(Self { syntax }) | ||
1968 | } else { | ||
1969 | None | ||
1970 | } | ||
1971 | } | ||
1972 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | ||
1973 | } | ||
1952 | impl AstNode for ForExpr { | 1974 | impl AstNode for ForExpr { |
1953 | fn can_cast(kind: SyntaxKind) -> bool { kind == FOR_EXPR } | 1975 | fn can_cast(kind: SyntaxKind) -> bool { kind == FOR_EXPR } |
1954 | fn cast(syntax: SyntaxNode) -> Option<Self> { | 1976 | fn cast(syntax: SyntaxNode) -> Option<Self> { |
@@ -3290,6 +3312,9 @@ impl From<AwaitExpr> for Expr { | |||
3290 | impl From<TryExpr> for Expr { | 3312 | impl From<TryExpr> for Expr { |
3291 | fn from(node: TryExpr) -> Expr { Expr::TryExpr(node) } | 3313 | fn from(node: TryExpr) -> Expr { Expr::TryExpr(node) } |
3292 | } | 3314 | } |
3315 | impl From<TryBlockExpr> for Expr { | ||
3316 | fn from(node: TryBlockExpr) -> Expr { Expr::TryBlockExpr(node) } | ||
3317 | } | ||
3293 | impl From<CastExpr> for Expr { | 3318 | impl From<CastExpr> for Expr { |
3294 | fn from(node: CastExpr) -> Expr { Expr::CastExpr(node) } | 3319 | fn from(node: CastExpr) -> Expr { Expr::CastExpr(node) } |
3295 | } | 3320 | } |
@@ -3320,8 +3345,9 @@ impl AstNode for Expr { | |||
3320 | TUPLE_EXPR | ARRAY_EXPR | PAREN_EXPR | PATH_EXPR | LAMBDA_EXPR | IF_EXPR | 3345 | TUPLE_EXPR | ARRAY_EXPR | PAREN_EXPR | PATH_EXPR | LAMBDA_EXPR | IF_EXPR |
3321 | | LOOP_EXPR | FOR_EXPR | WHILE_EXPR | CONTINUE_EXPR | BREAK_EXPR | LABEL | 3346 | | LOOP_EXPR | FOR_EXPR | WHILE_EXPR | CONTINUE_EXPR | BREAK_EXPR | LABEL |
3322 | | BLOCK_EXPR | RETURN_EXPR | MATCH_EXPR | RECORD_LIT | CALL_EXPR | INDEX_EXPR | 3347 | | BLOCK_EXPR | RETURN_EXPR | MATCH_EXPR | RECORD_LIT | CALL_EXPR | INDEX_EXPR |
3323 | | METHOD_CALL_EXPR | FIELD_EXPR | AWAIT_EXPR | TRY_EXPR | CAST_EXPR | REF_EXPR | 3348 | | METHOD_CALL_EXPR | FIELD_EXPR | AWAIT_EXPR | TRY_EXPR | TRY_BLOCK_EXPR |
3324 | | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR | LITERAL | MACRO_CALL | BOX_EXPR => true, | 3349 | | CAST_EXPR | REF_EXPR | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR | LITERAL | MACRO_CALL |
3350 | | BOX_EXPR => true, | ||
3325 | _ => false, | 3351 | _ => false, |
3326 | } | 3352 | } |
3327 | } | 3353 | } |
@@ -3349,6 +3375,7 @@ impl AstNode for Expr { | |||
3349 | FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }), | 3375 | FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }), |
3350 | AWAIT_EXPR => Expr::AwaitExpr(AwaitExpr { syntax }), | 3376 | AWAIT_EXPR => Expr::AwaitExpr(AwaitExpr { syntax }), |
3351 | TRY_EXPR => Expr::TryExpr(TryExpr { syntax }), | 3377 | TRY_EXPR => Expr::TryExpr(TryExpr { syntax }), |
3378 | TRY_BLOCK_EXPR => Expr::TryBlockExpr(TryBlockExpr { syntax }), | ||
3352 | CAST_EXPR => Expr::CastExpr(CastExpr { syntax }), | 3379 | CAST_EXPR => Expr::CastExpr(CastExpr { syntax }), |
3353 | REF_EXPR => Expr::RefExpr(RefExpr { syntax }), | 3380 | REF_EXPR => Expr::RefExpr(RefExpr { syntax }), |
3354 | PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }), | 3381 | PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }), |
@@ -3385,6 +3412,7 @@ impl AstNode for Expr { | |||
3385 | Expr::FieldExpr(it) => &it.syntax, | 3412 | Expr::FieldExpr(it) => &it.syntax, |
3386 | Expr::AwaitExpr(it) => &it.syntax, | 3413 | Expr::AwaitExpr(it) => &it.syntax, |
3387 | Expr::TryExpr(it) => &it.syntax, | 3414 | Expr::TryExpr(it) => &it.syntax, |
3415 | Expr::TryBlockExpr(it) => &it.syntax, | ||
3388 | Expr::CastExpr(it) => &it.syntax, | 3416 | Expr::CastExpr(it) => &it.syntax, |
3389 | Expr::RefExpr(it) => &it.syntax, | 3417 | Expr::RefExpr(it) => &it.syntax, |
3390 | Expr::PrefixExpr(it) => &it.syntax, | 3418 | Expr::PrefixExpr(it) => &it.syntax, |
@@ -3865,6 +3893,11 @@ impl std::fmt::Display for LoopExpr { | |||
3865 | std::fmt::Display::fmt(self.syntax(), f) | 3893 | std::fmt::Display::fmt(self.syntax(), f) |
3866 | } | 3894 | } |
3867 | } | 3895 | } |
3896 | impl std::fmt::Display for TryBlockExpr { | ||
3897 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | ||
3898 | std::fmt::Display::fmt(self.syntax(), f) | ||
3899 | } | ||
3900 | } | ||
3868 | impl std::fmt::Display for ForExpr { | 3901 | impl std::fmt::Display for ForExpr { |
3869 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { | 3902 | fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { |
3870 | std::fmt::Display::fmt(self.syntax(), f) | 3903 | std::fmt::Display::fmt(self.syntax(), f) |