aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax')
-rw-r--r--crates/ra_syntax/src/ast/generated.rs28
-rw-r--r--crates/ra_syntax/src/grammar.ron10
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.txt4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.txt2
4 files changed, 41 insertions, 3 deletions
diff --git a/crates/ra_syntax/src/ast/generated.rs b/crates/ra_syntax/src/ast/generated.rs
index de506d7cd..1a03ae56c 100644
--- a/crates/ra_syntax/src/ast/generated.rs
+++ b/crates/ra_syntax/src/ast/generated.rs
@@ -3789,6 +3789,34 @@ impl AstNode for TypeRef {
3789} 3789}
3790impl TypeRef {} 3790impl TypeRef {}
3791#[derive(Debug, Clone, PartialEq, Eq, Hash)] 3791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3792pub struct UnionDef {
3793 pub(crate) syntax: SyntaxNode,
3794}
3795impl AstNode for UnionDef {
3796 fn can_cast(kind: SyntaxKind) -> bool {
3797 match kind {
3798 UNION_DEF => true,
3799 _ => false,
3800 }
3801 }
3802 fn cast(syntax: SyntaxNode) -> Option<Self> {
3803 if Self::can_cast(syntax.kind()) {
3804 Some(Self { syntax })
3805 } else {
3806 None
3807 }
3808 }
3809 fn syntax(&self) -> &SyntaxNode {
3810 &self.syntax
3811 }
3812}
3813impl ast::VisibilityOwner for UnionDef {}
3814impl ast::NameOwner for UnionDef {}
3815impl ast::TypeParamsOwner for UnionDef {}
3816impl ast::AttrsOwner for UnionDef {}
3817impl ast::DocCommentsOwner for UnionDef {}
3818impl UnionDef {}
3819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3792pub struct UseItem { 3820pub struct UseItem {
3793 pub(crate) syntax: SyntaxNode, 3821 pub(crate) syntax: SyntaxNode,
3794} 3822}
diff --git a/crates/ra_syntax/src/grammar.ron b/crates/ra_syntax/src/grammar.ron
index 88d1dc109..c16bed891 100644
--- a/crates/ra_syntax/src/grammar.ron
+++ b/crates/ra_syntax/src/grammar.ron
@@ -126,6 +126,7 @@ Grammar(
126 "SOURCE_FILE", 126 "SOURCE_FILE",
127 127
128 "STRUCT_DEF", 128 "STRUCT_DEF",
129 "UNION_DEF",
129 "ENUM_DEF", 130 "ENUM_DEF",
130 "FN_DEF", 131 "FN_DEF",
131 "RET_TYPE", 132 "RET_TYPE",
@@ -285,6 +286,15 @@ Grammar(
285 "DocCommentsOwner" 286 "DocCommentsOwner"
286 ] 287 ]
287 ), 288 ),
289 "UnionDef": (
290 traits: [
291 "VisibilityOwner",
292 "NameOwner",
293 "TypeParamsOwner",
294 "AttrsOwner",
295 "DocCommentsOwner"
296 ]
297 ),
288 "RecordFieldDefList": (collections: [("fields", "RecordFieldDef")]), 298 "RecordFieldDefList": (collections: [("fields", "RecordFieldDef")]),
289 "RecordFieldDef": ( 299 "RecordFieldDef": (
290 traits: [ 300 traits: [
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.txt b/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.txt
index f9ace02ee..9d7982684 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 51) 1SOURCE_FILE@[0; 51)
2 STRUCT_DEF@[0; 12) 2 UNION_DEF@[0; 12)
3 UNION_KW@[0; 5) "union" 3 UNION_KW@[0; 5) "union"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@[5; 6) " "
5 NAME@[6; 9) 5 NAME@[6; 9)
@@ -9,7 +9,7 @@ SOURCE_FILE@[0; 51)
9 L_CURLY@[10; 11) "{" 9 L_CURLY@[10; 11) "{"
10 R_CURLY@[11; 12) "}" 10 R_CURLY@[11; 12) "}"
11 WHITESPACE@[12; 13) "\n" 11 WHITESPACE@[12; 13) "\n"
12 STRUCT_DEF@[13; 50) 12 UNION_DEF@[13; 50)
13 UNION_KW@[13; 18) "union" 13 UNION_KW@[13; 18) "union"
14 WHITESPACE@[18; 19) " " 14 WHITESPACE@[18; 19) " "
15 NAME@[19; 22) 15 NAME@[19; 22)
diff --git a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.txt b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.txt
index 3260cc589..90538b90d 100644
--- a/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.txt
+++ b/crates/ra_syntax/test_data/parser/ok/0035_weird_exprs.txt
@@ -1592,7 +1592,7 @@ SOURCE_FILE@[0; 3813)
1592 BLOCK@[2845; 2906) 1592 BLOCK@[2845; 2906)
1593 L_CURLY@[2845; 2846) "{" 1593 L_CURLY@[2845; 2846) "{"
1594 WHITESPACE@[2846; 2851) "\n " 1594 WHITESPACE@[2846; 2851) "\n "
1595 STRUCT_DEF@[2851; 2904) 1595 UNION_DEF@[2851; 2904)
1596 UNION_KW@[2851; 2856) "union" 1596 UNION_KW@[2851; 2856) "union"
1597 WHITESPACE@[2856; 2857) " " 1597 WHITESPACE@[2856; 2857) " "
1598 NAME@[2857; 2862) 1598 NAME@[2857; 2862)