File tree Expand file tree Collapse file tree 3 files changed +37
-4
lines changed
ra_parser/src/grammar/items
ra_syntax/test_data/parser/inline/ok Expand file tree Collapse file tree 3 files changed +37
-4
lines changed Original file line number Diff line number Diff line change @@ -83,12 +83,14 @@ pub(crate) fn enum_variant_list(p: &mut Parser) {
83
83
match p. current ( ) {
84
84
T ! [ '{' ] => record_field_def_list ( p) ,
85
85
T ! [ '(' ] => tuple_field_def_list ( p) ,
86
- T ! [ =] => {
87
- p. bump ( T ! [ =] ) ;
88
- expressions:: expr ( p) ;
89
- }
90
86
_ => ( ) ,
91
87
}
88
+
89
+ // test variant_discriminant
90
+ // enum E { X(i32) = 10 }
91
+ if p. eat ( T ! [ =] ) {
92
+ expressions:: expr ( p) ;
93
+ }
92
94
var. complete ( p, ENUM_VARIANT ) ;
93
95
} else {
94
96
var. abandon ( p) ;
Original file line number Diff line number Diff line change
1
+ enum E { X ( i32 ) = 10 }
Original file line number Diff line number Diff line change
1
+ SOURCE_FILE@[0; 23)
2
+ ENUM_DEF@[0; 22)
3
+ ENUM_KW@[0; 4) "enum"
4
+ WHITESPACE@[4; 5) " "
5
+ NAME@[5; 6)
6
+ IDENT@[5; 6) "E"
7
+ WHITESPACE@[6; 7) " "
8
+ ENUM_VARIANT_LIST@[7; 22)
9
+ L_CURLY@[7; 8) "{"
10
+ WHITESPACE@[8; 9) " "
11
+ ENUM_VARIANT@[9; 20)
12
+ NAME@[9; 10)
13
+ IDENT@[9; 10) "X"
14
+ TUPLE_FIELD_DEF_LIST@[10; 15)
15
+ L_PAREN@[10; 11) "("
16
+ TUPLE_FIELD_DEF@[11; 14)
17
+ PATH_TYPE@[11; 14)
18
+ PATH@[11; 14)
19
+ PATH_SEGMENT@[11; 14)
20
+ NAME_REF@[11; 14)
21
+ IDENT@[11; 14) "i32"
22
+ R_PAREN@[14; 15) ")"
23
+ WHITESPACE@[15; 16) " "
24
+ EQ@[16; 17) "="
25
+ WHITESPACE@[17; 18) " "
26
+ LITERAL@[18; 20)
27
+ INT_NUMBER@[18; 20) "10"
28
+ WHITESPACE@[20; 21) " "
29
+ R_CURLY@[21; 22) "}"
30
+ WHITESPACE@[22; 23) "\n"
You can’t perform that action at this time.
0 commit comments