aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/ast/generated
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax/src/ast/generated')
-rw-r--r--crates/ra_syntax/src/ast/generated/nodes.rs114
1 files changed, 48 insertions, 66 deletions
diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs
index 2cb3ad011..b00c15608 100644
--- a/crates/ra_syntax/src/ast/generated/nodes.rs
+++ b/crates/ra_syntax/src/ast/generated/nodes.rs
@@ -12,6 +12,7 @@ pub struct SourceFile {
12} 12}
13impl ast::ModuleItemOwner for SourceFile {} 13impl ast::ModuleItemOwner for SourceFile {}
14impl ast::AttrsOwner for SourceFile {} 14impl ast::AttrsOwner for SourceFile {}
15impl ast::DocCommentsOwner for SourceFile {}
15impl SourceFile { 16impl SourceFile {
16 pub fn modules(&self) -> AstChildren<Module> { support::children(&self.syntax) } 17 pub fn modules(&self) -> AstChildren<Module> { support::children(&self.syntax) }
17} 18}
@@ -195,7 +196,7 @@ pub struct ItemList {
195impl ast::ModuleItemOwner for ItemList {} 196impl ast::ModuleItemOwner for ItemList {}
196impl ItemList { 197impl ItemList {
197 pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) } 198 pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) }
198 pub fn impl_items(&self) -> AstChildren<ImplItem> { support::children(&self.syntax) } 199 pub fn assoc_items(&self) -> AstChildren<AssocItem> { support::children(&self.syntax) }
199 pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) } 200 pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) }
200} 201}
201 202
@@ -259,6 +260,7 @@ pub struct ImplDef {
259} 260}
260impl ast::TypeParamsOwner for ImplDef {} 261impl ast::TypeParamsOwner for ImplDef {}
261impl ast::AttrsOwner for ImplDef {} 262impl ast::AttrsOwner for ImplDef {}
263impl ast::DocCommentsOwner for ImplDef {}
262impl ImplDef { 264impl ImplDef {
263 pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) } 265 pub fn default_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![default]) }
264 pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) } 266 pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) }
@@ -476,13 +478,16 @@ impl LoopExpr {
476} 478}
477 479
478#[derive(Debug, Clone, PartialEq, Eq, Hash)] 480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
479pub struct TryBlockExpr { 481pub struct EffectExpr {
480 pub(crate) syntax: SyntaxNode, 482 pub(crate) syntax: SyntaxNode,
481} 483}
482impl ast::AttrsOwner for TryBlockExpr {} 484impl ast::AttrsOwner for EffectExpr {}
483impl TryBlockExpr { 485impl EffectExpr {
486 pub fn label(&self) -> Option<Label> { support::child(&self.syntax) }
484 pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) } 487 pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) }
485 pub fn body(&self) -> Option<BlockExpr> { support::child(&self.syntax) } 488 pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) }
489 pub fn async_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![async]) }
490 pub fn block_expr(&self) -> Option<BlockExpr> { support::child(&self.syntax) }
486} 491}
487 492
488#[derive(Debug, Clone, PartialEq, Eq, Hash)] 493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -551,10 +556,12 @@ pub struct BlockExpr {
551 pub(crate) syntax: SyntaxNode, 556 pub(crate) syntax: SyntaxNode,
552} 557}
553impl ast::AttrsOwner for BlockExpr {} 558impl ast::AttrsOwner for BlockExpr {}
559impl ast::ModuleItemOwner for BlockExpr {}
554impl BlockExpr { 560impl BlockExpr {
555 pub fn label(&self) -> Option<Label> { support::child(&self.syntax) } 561 pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) }
556 pub fn unsafe_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![unsafe]) } 562 pub fn statements(&self) -> AstChildren<Stmt> { support::children(&self.syntax) }
557 pub fn block(&self) -> Option<Block> { support::child(&self.syntax) } 563 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
564 pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) }
558} 565}
559 566
560#[derive(Debug, Clone, PartialEq, Eq, Hash)] 567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -626,8 +633,8 @@ pub struct TryExpr {
626} 633}
627impl ast::AttrsOwner for TryExpr {} 634impl ast::AttrsOwner for TryExpr {}
628impl TryExpr { 635impl TryExpr {
629 pub fn try_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![try]) }
630 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) } 636 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
637 pub fn question_mark_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![?]) }
631} 638}
632 639
633#[derive(Debug, Clone, PartialEq, Eq, Hash)] 640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -1121,19 +1128,6 @@ impl Condition {
1121} 1128}
1122 1129
1123#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1124pub struct Block {
1125 pub(crate) syntax: SyntaxNode,
1126}
1127impl ast::AttrsOwner for Block {}
1128impl ast::ModuleItemOwner for Block {}
1129impl Block {
1130 pub fn l_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['{']) }
1131 pub fn statements(&self) -> AstChildren<Stmt> { support::children(&self.syntax) }
1132 pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
1133 pub fn r_curly_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T!['}']) }
1134}
1135
1136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1137pub struct ParamList { 1131pub struct ParamList {
1138 pub(crate) syntax: SyntaxNode, 1132 pub(crate) syntax: SyntaxNode,
1139} 1133}
@@ -1249,6 +1243,9 @@ pub struct PathSegment {
1249} 1243}
1250impl PathSegment { 1244impl PathSegment {
1251 pub fn coloncolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![::]) } 1245 pub fn coloncolon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![::]) }
1246 pub fn crate_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![crate]) }
1247 pub fn self_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![self]) }
1248 pub fn super_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![super]) }
1252 pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) } 1249 pub fn l_angle_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![<]) }
1253 pub fn name_ref(&self) -> Option<NameRef> { support::child(&self.syntax) } 1250 pub fn name_ref(&self) -> Option<NameRef> { support::child(&self.syntax) }
1254 pub fn type_arg_list(&self) -> Option<TypeArgList> { support::child(&self.syntax) } 1251 pub fn type_arg_list(&self) -> Option<TypeArgList> { support::child(&self.syntax) }
@@ -1432,13 +1429,13 @@ impl ast::AttrsOwner for ModuleItem {}
1432impl ast::VisibilityOwner for ModuleItem {} 1429impl ast::VisibilityOwner for ModuleItem {}
1433 1430
1434#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1435pub enum ImplItem { 1432pub enum AssocItem {
1436 FnDef(FnDef), 1433 FnDef(FnDef),
1437 TypeAliasDef(TypeAliasDef), 1434 TypeAliasDef(TypeAliasDef),
1438 ConstDef(ConstDef), 1435 ConstDef(ConstDef),
1439} 1436}
1440impl ast::NameOwner for ImplItem {} 1437impl ast::NameOwner for AssocItem {}
1441impl ast::AttrsOwner for ImplItem {} 1438impl ast::AttrsOwner for AssocItem {}
1442 1439
1443#[derive(Debug, Clone, PartialEq, Eq, Hash)] 1440#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1444pub enum ExternItem { 1441pub enum ExternItem {
@@ -1473,7 +1470,7 @@ pub enum Expr {
1473 FieldExpr(FieldExpr), 1470 FieldExpr(FieldExpr),
1474 AwaitExpr(AwaitExpr), 1471 AwaitExpr(AwaitExpr),
1475 TryExpr(TryExpr), 1472 TryExpr(TryExpr),
1476 TryBlockExpr(TryBlockExpr), 1473 EffectExpr(EffectExpr),
1477 CastExpr(CastExpr), 1474 CastExpr(CastExpr),
1478 RefExpr(RefExpr), 1475 RefExpr(RefExpr),
1479 PrefixExpr(PrefixExpr), 1476 PrefixExpr(PrefixExpr),
@@ -1956,8 +1953,8 @@ impl AstNode for LoopExpr {
1956 } 1953 }
1957 fn syntax(&self) -> &SyntaxNode { &self.syntax } 1954 fn syntax(&self) -> &SyntaxNode { &self.syntax }
1958} 1955}
1959impl AstNode for TryBlockExpr { 1956impl AstNode for EffectExpr {
1960 fn can_cast(kind: SyntaxKind) -> bool { kind == TRY_BLOCK_EXPR } 1957 fn can_cast(kind: SyntaxKind) -> bool { kind == EFFECT_EXPR }
1961 fn cast(syntax: SyntaxNode) -> Option<Self> { 1958 fn cast(syntax: SyntaxNode) -> Option<Self> {
1962 if Self::can_cast(syntax.kind()) { 1959 if Self::can_cast(syntax.kind()) {
1963 Some(Self { syntax }) 1960 Some(Self { syntax })
@@ -2649,17 +2646,6 @@ impl AstNode for Condition {
2649 } 2646 }
2650 fn syntax(&self) -> &SyntaxNode { &self.syntax } 2647 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2651} 2648}
2652impl AstNode for Block {
2653 fn can_cast(kind: SyntaxKind) -> bool { kind == BLOCK }
2654 fn cast(syntax: SyntaxNode) -> Option<Self> {
2655 if Self::can_cast(syntax.kind()) {
2656 Some(Self { syntax })
2657 } else {
2658 None
2659 }
2660 }
2661 fn syntax(&self) -> &SyntaxNode { &self.syntax }
2662}
2663impl AstNode for ParamList { 2649impl AstNode for ParamList {
2664 fn can_cast(kind: SyntaxKind) -> bool { kind == PARAM_LIST } 2650 fn can_cast(kind: SyntaxKind) -> bool { kind == PARAM_LIST }
2665 fn cast(syntax: SyntaxNode) -> Option<Self> { 2651 fn cast(syntax: SyntaxNode) -> Option<Self> {
@@ -3181,16 +3167,16 @@ impl AstNode for ModuleItem {
3181 } 3167 }
3182 } 3168 }
3183} 3169}
3184impl From<FnDef> for ImplItem { 3170impl From<FnDef> for AssocItem {
3185 fn from(node: FnDef) -> ImplItem { ImplItem::FnDef(node) } 3171 fn from(node: FnDef) -> AssocItem { AssocItem::FnDef(node) }
3186} 3172}
3187impl From<TypeAliasDef> for ImplItem { 3173impl From<TypeAliasDef> for AssocItem {
3188 fn from(node: TypeAliasDef) -> ImplItem { ImplItem::TypeAliasDef(node) } 3174 fn from(node: TypeAliasDef) -> AssocItem { AssocItem::TypeAliasDef(node) }
3189} 3175}
3190impl From<ConstDef> for ImplItem { 3176impl From<ConstDef> for AssocItem {
3191 fn from(node: ConstDef) -> ImplItem { ImplItem::ConstDef(node) } 3177 fn from(node: ConstDef) -> AssocItem { AssocItem::ConstDef(node) }
3192} 3178}
3193impl AstNode for ImplItem { 3179impl AstNode for AssocItem {
3194 fn can_cast(kind: SyntaxKind) -> bool { 3180 fn can_cast(kind: SyntaxKind) -> bool {
3195 match kind { 3181 match kind {
3196 FN_DEF | TYPE_ALIAS_DEF | CONST_DEF => true, 3182 FN_DEF | TYPE_ALIAS_DEF | CONST_DEF => true,
@@ -3199,18 +3185,18 @@ impl AstNode for ImplItem {
3199 } 3185 }
3200 fn cast(syntax: SyntaxNode) -> Option<Self> { 3186 fn cast(syntax: SyntaxNode) -> Option<Self> {
3201 let res = match syntax.kind() { 3187 let res = match syntax.kind() {
3202 FN_DEF => ImplItem::FnDef(FnDef { syntax }), 3188 FN_DEF => AssocItem::FnDef(FnDef { syntax }),
3203 TYPE_ALIAS_DEF => ImplItem::TypeAliasDef(TypeAliasDef { syntax }), 3189 TYPE_ALIAS_DEF => AssocItem::TypeAliasDef(TypeAliasDef { syntax }),
3204 CONST_DEF => ImplItem::ConstDef(ConstDef { syntax }), 3190 CONST_DEF => AssocItem::ConstDef(ConstDef { syntax }),
3205 _ => return None, 3191 _ => return None,
3206 }; 3192 };
3207 Some(res) 3193 Some(res)
3208 } 3194 }
3209 fn syntax(&self) -> &SyntaxNode { 3195 fn syntax(&self) -> &SyntaxNode {
3210 match self { 3196 match self {
3211 ImplItem::FnDef(it) => &it.syntax, 3197 AssocItem::FnDef(it) => &it.syntax,
3212 ImplItem::TypeAliasDef(it) => &it.syntax, 3198 AssocItem::TypeAliasDef(it) => &it.syntax,
3213 ImplItem::ConstDef(it) => &it.syntax, 3199 AssocItem::ConstDef(it) => &it.syntax,
3214 } 3200 }
3215 } 3201 }
3216} 3202}
@@ -3308,8 +3294,8 @@ impl From<AwaitExpr> for Expr {
3308impl From<TryExpr> for Expr { 3294impl From<TryExpr> for Expr {
3309 fn from(node: TryExpr) -> Expr { Expr::TryExpr(node) } 3295 fn from(node: TryExpr) -> Expr { Expr::TryExpr(node) }
3310} 3296}
3311impl From<TryBlockExpr> for Expr { 3297impl From<EffectExpr> for Expr {
3312 fn from(node: TryBlockExpr) -> Expr { Expr::TryBlockExpr(node) } 3298 fn from(node: EffectExpr) -> Expr { Expr::EffectExpr(node) }
3313} 3299}
3314impl From<CastExpr> for Expr { 3300impl From<CastExpr> for Expr {
3315 fn from(node: CastExpr) -> Expr { Expr::CastExpr(node) } 3301 fn from(node: CastExpr) -> Expr { Expr::CastExpr(node) }
@@ -3341,9 +3327,10 @@ impl AstNode for Expr {
3341 TUPLE_EXPR | ARRAY_EXPR | PAREN_EXPR | PATH_EXPR | LAMBDA_EXPR | IF_EXPR 3327 TUPLE_EXPR | ARRAY_EXPR | PAREN_EXPR | PATH_EXPR | LAMBDA_EXPR | IF_EXPR
3342 | LOOP_EXPR | FOR_EXPR | WHILE_EXPR | CONTINUE_EXPR | BREAK_EXPR | LABEL 3328 | LOOP_EXPR | FOR_EXPR | WHILE_EXPR | CONTINUE_EXPR | BREAK_EXPR | LABEL
3343 | BLOCK_EXPR | RETURN_EXPR | MATCH_EXPR | RECORD_LIT | CALL_EXPR | INDEX_EXPR 3329 | BLOCK_EXPR | RETURN_EXPR | MATCH_EXPR | RECORD_LIT | CALL_EXPR | INDEX_EXPR
3344 | METHOD_CALL_EXPR | FIELD_EXPR | AWAIT_EXPR | TRY_EXPR | TRY_BLOCK_EXPR 3330 | METHOD_CALL_EXPR | FIELD_EXPR | AWAIT_EXPR | TRY_EXPR | EFFECT_EXPR | CAST_EXPR
3345 | CAST_EXPR | REF_EXPR | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR | LITERAL | MACRO_CALL 3331 | REF_EXPR | PREFIX_EXPR | RANGE_EXPR | BIN_EXPR | LITERAL | MACRO_CALL | BOX_EXPR => {
3346 | BOX_EXPR => true, 3332 true
3333 }
3347 _ => false, 3334 _ => false,
3348 } 3335 }
3349 } 3336 }
@@ -3371,7 +3358,7 @@ impl AstNode for Expr {
3371 FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }), 3358 FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
3372 AWAIT_EXPR => Expr::AwaitExpr(AwaitExpr { syntax }), 3359 AWAIT_EXPR => Expr::AwaitExpr(AwaitExpr { syntax }),
3373 TRY_EXPR => Expr::TryExpr(TryExpr { syntax }), 3360 TRY_EXPR => Expr::TryExpr(TryExpr { syntax }),
3374 TRY_BLOCK_EXPR => Expr::TryBlockExpr(TryBlockExpr { syntax }), 3361 EFFECT_EXPR => Expr::EffectExpr(EffectExpr { syntax }),
3375 CAST_EXPR => Expr::CastExpr(CastExpr { syntax }), 3362 CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
3376 REF_EXPR => Expr::RefExpr(RefExpr { syntax }), 3363 REF_EXPR => Expr::RefExpr(RefExpr { syntax }),
3377 PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }), 3364 PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
@@ -3408,7 +3395,7 @@ impl AstNode for Expr {
3408 Expr::FieldExpr(it) => &it.syntax, 3395 Expr::FieldExpr(it) => &it.syntax,
3409 Expr::AwaitExpr(it) => &it.syntax, 3396 Expr::AwaitExpr(it) => &it.syntax,
3410 Expr::TryExpr(it) => &it.syntax, 3397 Expr::TryExpr(it) => &it.syntax,
3411 Expr::TryBlockExpr(it) => &it.syntax, 3398 Expr::EffectExpr(it) => &it.syntax,
3412 Expr::CastExpr(it) => &it.syntax, 3399 Expr::CastExpr(it) => &it.syntax,
3413 Expr::RefExpr(it) => &it.syntax, 3400 Expr::RefExpr(it) => &it.syntax,
3414 Expr::PrefixExpr(it) => &it.syntax, 3401 Expr::PrefixExpr(it) => &it.syntax,
@@ -3654,7 +3641,7 @@ impl std::fmt::Display for ModuleItem {
3654 std::fmt::Display::fmt(self.syntax(), f) 3641 std::fmt::Display::fmt(self.syntax(), f)
3655 } 3642 }
3656} 3643}
3657impl std::fmt::Display for ImplItem { 3644impl std::fmt::Display for AssocItem {
3658 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { 3645 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3659 std::fmt::Display::fmt(self.syntax(), f) 3646 std::fmt::Display::fmt(self.syntax(), f)
3660 } 3647 }
@@ -3889,7 +3876,7 @@ impl std::fmt::Display for LoopExpr {
3889 std::fmt::Display::fmt(self.syntax(), f) 3876 std::fmt::Display::fmt(self.syntax(), f)
3890 } 3877 }
3891} 3878}
3892impl std::fmt::Display for TryBlockExpr { 3879impl std::fmt::Display for EffectExpr {
3893 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { 3880 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
3894 std::fmt::Display::fmt(self.syntax(), f) 3881 std::fmt::Display::fmt(self.syntax(), f)
3895 } 3882 }
@@ -4204,11 +4191,6 @@ impl std::fmt::Display for Condition {
4204 std::fmt::Display::fmt(self.syntax(), f) 4191 std::fmt::Display::fmt(self.syntax(), f)
4205 } 4192 }
4206} 4193}
4207impl std::fmt::Display for Block {
4208 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4209 std::fmt::Display::fmt(self.syntax(), f)
4210 }
4211}
4212impl std::fmt::Display for ParamList { 4194impl std::fmt::Display for ParamList {
4213 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { 4195 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
4214 std::fmt::Display::fmt(self.syntax(), f) 4196 std::fmt::Display::fmt(self.syntax(), f)