aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-02-25 10:38:52 +0000
committerAleksey Kladov <[email protected]>2019-02-25 10:49:32 +0000
commit78f10fcdc41d5c58e386bc99a94b34a2bdbaa4cd (patch)
treed813eb7be81dadbeced5ea0cf056d974cfd0fea5 /crates/ra_syntax
parent7ffff9c74caae108db53366e3b90857b7c405c6c (diff)
rename type to type_alias in the AST as well
Diffstat (limited to 'crates/ra_syntax')
-rw-r--r--crates/ra_syntax/src/ast/generated.rs94
-rw-r--r--crates/ra_syntax/src/grammar.ron8
-rw-r--r--crates/ra_syntax/src/parsing/text_tree_sink.rs2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.txt4
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.txt6
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.txt6
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.txt8
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.txt2
-rw-r--r--crates/ra_syntax/tests/data/parser/inline/ok/0117_macro_call_type.txt4
31 files changed, 89 insertions, 89 deletions
diff --git a/crates/ra_syntax/src/ast/generated.rs b/crates/ra_syntax/src/ast/generated.rs
index aa88b1e28..4e2705d09 100644
--- a/crates/ra_syntax/src/ast/generated.rs
+++ b/crates/ra_syntax/src/ast/generated.rs
@@ -1508,7 +1508,7 @@ unsafe impl TransparentNewType for ImplItem {
1508#[derive(Debug, Clone, Copy, PartialEq, Eq)] 1508#[derive(Debug, Clone, Copy, PartialEq, Eq)]
1509pub enum ImplItemKind<'a> { 1509pub enum ImplItemKind<'a> {
1510 FnDef(&'a FnDef), 1510 FnDef(&'a FnDef),
1511 TypeDef(&'a TypeDef), 1511 TypeAliasDef(&'a TypeAliasDef),
1512 ConstDef(&'a ConstDef), 1512 ConstDef(&'a ConstDef),
1513} 1513}
1514impl<'a> From<&'a FnDef> for &'a ImplItem { 1514impl<'a> From<&'a FnDef> for &'a ImplItem {
@@ -1516,8 +1516,8 @@ impl<'a> From<&'a FnDef> for &'a ImplItem {
1516 ImplItem::cast(&n.syntax).unwrap() 1516 ImplItem::cast(&n.syntax).unwrap()
1517 } 1517 }
1518} 1518}
1519impl<'a> From<&'a TypeDef> for &'a ImplItem { 1519impl<'a> From<&'a TypeAliasDef> for &'a ImplItem {
1520 fn from(n: &'a TypeDef) -> &'a ImplItem { 1520 fn from(n: &'a TypeAliasDef) -> &'a ImplItem {
1521 ImplItem::cast(&n.syntax).unwrap() 1521 ImplItem::cast(&n.syntax).unwrap()
1522 } 1522 }
1523} 1523}
@@ -1532,7 +1532,7 @@ impl AstNode for ImplItem {
1532 fn cast(syntax: &SyntaxNode) -> Option<&Self> { 1532 fn cast(syntax: &SyntaxNode) -> Option<&Self> {
1533 match syntax.kind() { 1533 match syntax.kind() {
1534 | FN_DEF 1534 | FN_DEF
1535 | TYPE_DEF 1535 | TYPE_ALIAS_DEF
1536 | CONST_DEF => Some(ImplItem::from_repr(syntax.into_repr())), 1536 | CONST_DEF => Some(ImplItem::from_repr(syntax.into_repr())),
1537 _ => None, 1537 _ => None,
1538 } 1538 }
@@ -1549,7 +1549,7 @@ impl ImplItem {
1549 pub fn kind(&self) -> ImplItemKind { 1549 pub fn kind(&self) -> ImplItemKind {
1550 match self.syntax.kind() { 1550 match self.syntax.kind() {
1551 FN_DEF => ImplItemKind::FnDef(FnDef::cast(&self.syntax).unwrap()), 1551 FN_DEF => ImplItemKind::FnDef(FnDef::cast(&self.syntax).unwrap()),
1552 TYPE_DEF => ImplItemKind::TypeDef(TypeDef::cast(&self.syntax).unwrap()), 1552 TYPE_ALIAS_DEF => ImplItemKind::TypeAliasDef(TypeAliasDef::cast(&self.syntax).unwrap()),
1553 CONST_DEF => ImplItemKind::ConstDef(ConstDef::cast(&self.syntax).unwrap()), 1553 CONST_DEF => ImplItemKind::ConstDef(ConstDef::cast(&self.syntax).unwrap()),
1554 _ => unreachable!(), 1554 _ => unreachable!(),
1555 } 1555 }
@@ -2359,7 +2359,7 @@ pub enum ModuleItemKind<'a> {
2359 EnumDef(&'a EnumDef), 2359 EnumDef(&'a EnumDef),
2360 FnDef(&'a FnDef), 2360 FnDef(&'a FnDef),
2361 TraitDef(&'a TraitDef), 2361 TraitDef(&'a TraitDef),
2362 TypeDef(&'a TypeDef), 2362 TypeAliasDef(&'a TypeAliasDef),
2363 ImplBlock(&'a ImplBlock), 2363 ImplBlock(&'a ImplBlock),
2364 UseItem(&'a UseItem), 2364 UseItem(&'a UseItem),
2365 ExternCrateItem(&'a ExternCrateItem), 2365 ExternCrateItem(&'a ExternCrateItem),
@@ -2387,8 +2387,8 @@ impl<'a> From<&'a TraitDef> for &'a ModuleItem {
2387 ModuleItem::cast(&n.syntax).unwrap() 2387 ModuleItem::cast(&n.syntax).unwrap()
2388 } 2388 }
2389} 2389}
2390impl<'a> From<&'a TypeDef> for &'a ModuleItem { 2390impl<'a> From<&'a TypeAliasDef> for &'a ModuleItem {
2391 fn from(n: &'a TypeDef) -> &'a ModuleItem { 2391 fn from(n: &'a TypeAliasDef) -> &'a ModuleItem {
2392 ModuleItem::cast(&n.syntax).unwrap() 2392 ModuleItem::cast(&n.syntax).unwrap()
2393 } 2393 }
2394} 2394}
@@ -2431,7 +2431,7 @@ impl AstNode for ModuleItem {
2431 | ENUM_DEF 2431 | ENUM_DEF
2432 | FN_DEF 2432 | FN_DEF
2433 | TRAIT_DEF 2433 | TRAIT_DEF
2434 | TYPE_DEF 2434 | TYPE_ALIAS_DEF
2435 | IMPL_BLOCK 2435 | IMPL_BLOCK
2436 | USE_ITEM 2436 | USE_ITEM
2437 | EXTERN_CRATE_ITEM 2437 | EXTERN_CRATE_ITEM
@@ -2456,7 +2456,7 @@ impl ModuleItem {
2456 ENUM_DEF => ModuleItemKind::EnumDef(EnumDef::cast(&self.syntax).unwrap()), 2456 ENUM_DEF => ModuleItemKind::EnumDef(EnumDef::cast(&self.syntax).unwrap()),
2457 FN_DEF => ModuleItemKind::FnDef(FnDef::cast(&self.syntax).unwrap()), 2457 FN_DEF => ModuleItemKind::FnDef(FnDef::cast(&self.syntax).unwrap()),
2458 TRAIT_DEF => ModuleItemKind::TraitDef(TraitDef::cast(&self.syntax).unwrap()), 2458 TRAIT_DEF => ModuleItemKind::TraitDef(TraitDef::cast(&self.syntax).unwrap()),
2459 TYPE_DEF => ModuleItemKind::TypeDef(TypeDef::cast(&self.syntax).unwrap()), 2459 TYPE_ALIAS_DEF => ModuleItemKind::TypeAliasDef(TypeAliasDef::cast(&self.syntax).unwrap()),
2460 IMPL_BLOCK => ModuleItemKind::ImplBlock(ImplBlock::cast(&self.syntax).unwrap()), 2460 IMPL_BLOCK => ModuleItemKind::ImplBlock(ImplBlock::cast(&self.syntax).unwrap()),
2461 USE_ITEM => ModuleItemKind::UseItem(UseItem::cast(&self.syntax).unwrap()), 2461 USE_ITEM => ModuleItemKind::UseItem(UseItem::cast(&self.syntax).unwrap()),
2462 EXTERN_CRATE_ITEM => ModuleItemKind::ExternCrateItem(ExternCrateItem::cast(&self.syntax).unwrap()), 2462 EXTERN_CRATE_ITEM => ModuleItemKind::ExternCrateItem(ExternCrateItem::cast(&self.syntax).unwrap()),
@@ -4273,6 +4273,43 @@ impl TupleType {
4273 } 4273 }
4274} 4274}
4275 4275
4276// TypeAliasDef
4277#[derive(Debug, PartialEq, Eq, Hash)]
4278#[repr(transparent)]
4279pub struct TypeAliasDef {
4280 pub(crate) syntax: SyntaxNode,
4281}
4282unsafe impl TransparentNewType for TypeAliasDef {
4283 type Repr = rowan::SyntaxNode<RaTypes>;
4284}
4285
4286impl AstNode for TypeAliasDef {
4287 fn cast(syntax: &SyntaxNode) -> Option<&Self> {
4288 match syntax.kind() {
4289 TYPE_ALIAS_DEF => Some(TypeAliasDef::from_repr(syntax.into_repr())),
4290 _ => None,
4291 }
4292 }
4293 fn syntax(&self) -> &SyntaxNode { &self.syntax }
4294}
4295
4296impl ToOwned for TypeAliasDef {
4297 type Owned = TreeArc<TypeAliasDef>;
4298 fn to_owned(&self) -> TreeArc<TypeAliasDef> { TreeArc::cast(self.syntax.to_owned()) }
4299}
4300
4301
4302impl ast::VisibilityOwner for TypeAliasDef {}
4303impl ast::NameOwner for TypeAliasDef {}
4304impl ast::TypeParamsOwner for TypeAliasDef {}
4305impl ast::AttrsOwner for TypeAliasDef {}
4306impl ast::DocCommentsOwner for TypeAliasDef {}
4307impl TypeAliasDef {
4308 pub fn type_ref(&self) -> Option<&TypeRef> {
4309 super::child_opt(self)
4310 }
4311}
4312
4276// TypeArg 4313// TypeArg
4277#[derive(Debug, PartialEq, Eq, Hash)] 4314#[derive(Debug, PartialEq, Eq, Hash)]
4278#[repr(transparent)] 4315#[repr(transparent)]
@@ -4345,43 +4382,6 @@ impl TypeArgList {
4345 } 4382 }
4346} 4383}
4347 4384
4348// TypeDef
4349#[derive(Debug, PartialEq, Eq, Hash)]
4350#[repr(transparent)]
4351pub struct TypeDef {
4352 pub(crate) syntax: SyntaxNode,
4353}
4354unsafe impl TransparentNewType for TypeDef {
4355 type Repr = rowan::SyntaxNode<RaTypes>;
4356}
4357
4358impl AstNode for TypeDef {
4359 fn cast(syntax: &SyntaxNode) -> Option<&Self> {
4360 match syntax.kind() {
4361 TYPE_DEF => Some(TypeDef::from_repr(syntax.into_repr())),
4362 _ => None,
4363 }
4364 }
4365 fn syntax(&self) -> &SyntaxNode { &self.syntax }
4366}
4367
4368impl ToOwned for TypeDef {
4369 type Owned = TreeArc<TypeDef>;
4370 fn to_owned(&self) -> TreeArc<TypeDef> { TreeArc::cast(self.syntax.to_owned()) }
4371}
4372
4373
4374impl ast::VisibilityOwner for TypeDef {}
4375impl ast::NameOwner for TypeDef {}
4376impl ast::TypeParamsOwner for TypeDef {}
4377impl ast::AttrsOwner for TypeDef {}
4378impl ast::DocCommentsOwner for TypeDef {}
4379impl TypeDef {
4380 pub fn type_ref(&self) -> Option<&TypeRef> {
4381 super::child_opt(self)
4382 }
4383}
4384
4385// TypeParam 4385// TypeParam
4386#[derive(Debug, PartialEq, Eq, Hash)] 4386#[derive(Debug, PartialEq, Eq, Hash)]
4387#[repr(transparent)] 4387#[repr(transparent)]
diff --git a/crates/ra_syntax/src/grammar.ron b/crates/ra_syntax/src/grammar.ron
index b1775d0f8..c7acbbd6c 100644
--- a/crates/ra_syntax/src/grammar.ron
+++ b/crates/ra_syntax/src/grammar.ron
@@ -132,7 +132,7 @@ Grammar(
132 "CONST_DEF", 132 "CONST_DEF",
133 "TRAIT_DEF", 133 "TRAIT_DEF",
134 "IMPL_BLOCK", 134 "IMPL_BLOCK",
135 "TYPE_DEF", 135 "TYPE_ALIAS_DEF",
136 "MACRO_CALL", 136 "MACRO_CALL",
137 "TOKEN_TREE", 137 "TOKEN_TREE",
138 138
@@ -312,7 +312,7 @@ Grammar(
312 ], 312 ],
313 options: ["TypeRef"] 313 options: ["TypeRef"]
314 ), 314 ),
315 "TypeDef": ( 315 "TypeAliasDef": (
316 traits: [ 316 traits: [
317 "VisibilityOwner", 317 "VisibilityOwner",
318 "NameOwner", 318 "NameOwner",
@@ -363,11 +363,11 @@ Grammar(
363 ], 363 ],
364 ), 364 ),
365 "ModuleItem": ( 365 "ModuleItem": (
366 enum: ["StructDef", "EnumDef", "FnDef", "TraitDef", "TypeDef", "ImplBlock", 366 enum: ["StructDef", "EnumDef", "FnDef", "TraitDef", "TypeAliasDef", "ImplBlock",
367 "UseItem", "ExternCrateItem", "ConstDef", "StaticDef", "Module" ] 367 "UseItem", "ExternCrateItem", "ConstDef", "StaticDef", "Module" ]
368 ), 368 ),
369 "ImplItem": ( 369 "ImplItem": (
370 enum: ["FnDef", "TypeDef", "ConstDef"] 370 enum: ["FnDef", "TypeAliasDef", "ConstDef"]
371 ), 371 ),
372 372
373 "TupleExpr": ( 373 "TupleExpr": (
diff --git a/crates/ra_syntax/src/parsing/text_tree_sink.rs b/crates/ra_syntax/src/parsing/text_tree_sink.rs
index 961a91d41..b17d06c61 100644
--- a/crates/ra_syntax/src/parsing/text_tree_sink.rs
+++ b/crates/ra_syntax/src/parsing/text_tree_sink.rs
@@ -143,7 +143,7 @@ fn n_attached_trivias<'a>(
143 trivias: impl Iterator<Item = (SyntaxKind, &'a str)>, 143 trivias: impl Iterator<Item = (SyntaxKind, &'a str)>,
144) -> usize { 144) -> usize {
145 match kind { 145 match kind {
146 CONST_DEF | TYPE_DEF | STRUCT_DEF | ENUM_DEF | ENUM_VARIANT | FN_DEF | TRAIT_DEF 146 CONST_DEF | TYPE_ALIAS_DEF | STRUCT_DEF | ENUM_DEF | ENUM_VARIANT | FN_DEF | TRAIT_DEF
147 | MODULE | NAMED_FIELD_DEF => { 147 | MODULE | NAMED_FIELD_DEF => {
148 let mut res = 0; 148 let mut res = 0;
149 for (i, (kind, text)) in trivias.enumerate() { 149 for (i, (kind, text)) in trivias.enumerate() {
diff --git a/crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.txt b/crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.txt
index 036363587..f02027972 100644
--- a/crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0001_array_type_missing_semi.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 18) 1SOURCE_FILE@[0; 18)
2 TYPE_DEF@[0; 12) 2 TYPE_ALIAS_DEF@[0; 12)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.txt b/crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.txt
index 189aa563e..b11171fd0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0003_pointer_type_no_mutability.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 14) 1SOURCE_FILE@[0; 14)
2 TYPE_DEF@[0; 13) 2 TYPE_ALIAS_DEF@[0; 13)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt b/crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt
index f97db4bff..ab879db03 100644
--- a/crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/err/0005_fn_pointer_type_missing_fn.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 20) 1SOURCE_FILE@[0; 20)
2 TYPE_DEF@[0; 15) 2 TYPE_ALIAS_DEF@[0; 15)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.txt
index de7df7312..7c9e1e621 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0001_trait_item_list.txt
@@ -11,7 +11,7 @@ SOURCE_FILE@[0; 83)
11 ITEM_LIST@[7; 82) 11 ITEM_LIST@[7; 82)
12 L_CURLY@[7; 8) 12 L_CURLY@[7; 8)
13 WHITESPACE@[8; 13) 13 WHITESPACE@[8; 13)
14 TYPE_DEF@[13; 27) 14 TYPE_ALIAS_DEF@[13; 27)
15 TYPE_KW@[13; 17) 15 TYPE_KW@[13; 17)
16 WHITESPACE@[17; 18) 16 WHITESPACE@[17; 18)
17 NAME@[18; 19) 17 NAME@[18; 19)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.txt
index f2d7e866b..90284a2aa 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0004_value_parameters_no_patterns.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 54) 1SOURCE_FILE@[0; 54)
2 TYPE_DEF@[0; 53) 2 TYPE_ALIAS_DEF@[0; 53)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.txt
index dbb705acf..9a5f46bab 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0012_type_item_where_clause.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 31) 1SOURCE_FILE@[0; 31)
2 TYPE_DEF@[0; 30) 2 TYPE_ALIAS_DEF@[0; 30)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 8) 5 NAME@[5; 8)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.txt
index 149cd571d..8f1d9ca98 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0013_pointer_type_mut.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 36) 1SOURCE_FILE@[0; 36)
2 TYPE_DEF@[0; 17) 2 TYPE_ALIAS_DEF@[0; 17)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
@@ -16,7 +16,7 @@ SOURCE_FILE@[0; 36)
16 R_PAREN@[15; 16) 16 R_PAREN@[15; 16)
17 SEMI@[16; 17) 17 SEMI@[16; 17)
18 WHITESPACE@[17; 18) 18 WHITESPACE@[17; 18)
19 TYPE_DEF@[18; 35) 19 TYPE_ALIAS_DEF@[18; 35)
20 TYPE_KW@[18; 22) 20 TYPE_KW@[18; 22)
21 WHITESPACE@[22; 23) 21 WHITESPACE@[22; 23)
22 NAME@[23; 24) 22 NAME@[23; 24)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.txt
index e0cae644d..eaa6eb1c0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0014_never_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 16) 1SOURCE_FILE@[0; 16)
2 TYPE_DEF@[0; 15) 2 TYPE_ALIAS_DEF@[0; 15)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 10) 5 NAME@[5; 10)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.txt
index 2c2b615fc..de09902bb 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0017_array_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 19) 1SOURCE_FILE@[0; 19)
2 TYPE_DEF@[0; 18) 2 TYPE_ALIAS_DEF@[0; 18)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.txt
index 50426bdfe..08a0b786d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0021_impl_item_list.txt
@@ -11,7 +11,7 @@ SOURCE_FILE@[0; 89)
11 ITEM_LIST@[7; 88) 11 ITEM_LIST@[7; 88)
12 L_CURLY@[7; 8) 12 L_CURLY@[7; 8)
13 WHITESPACE@[8; 13) 13 WHITESPACE@[8; 13)
14 TYPE_DEF@[13; 26) 14 TYPE_ALIAS_DEF@[13; 26)
15 TYPE_KW@[13; 17) 15 TYPE_KW@[13; 17)
16 WHITESPACE@[17; 18) 16 WHITESPACE@[17; 18)
17 NAME@[18; 19) 17 NAME@[18; 19)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.txt
index 43ada95d4..bb9bb57ea 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0023_placeholder_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 22) 1SOURCE_FILE@[0; 22)
2 TYPE_DEF@[0; 21) 2 TYPE_ALIAS_DEF@[0; 21)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 16) 5 NAME@[5; 16)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.txt
index db18c7139..c5f70ca3a 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0025_slice_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 15) 1SOURCE_FILE@[0; 15)
2 TYPE_DEF@[0; 14) 2 TYPE_ALIAS_DEF@[0; 14)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.txt
index efd4dd42a..3b676fb4c 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0028_impl_trait_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 43) 1SOURCE_FILE@[0; 43)
2 TYPE_DEF@[0; 42) 2 TYPE_ALIAS_DEF@[0; 42)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.txt
index 0c508ec27..d0aa429fd 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0032_fn_pointer_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 70) 1SOURCE_FILE@[0; 70)
2 TYPE_DEF@[0; 14) 2 TYPE_ALIAS_DEF@[0; 14)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
@@ -14,7 +14,7 @@ SOURCE_FILE@[0; 70)
14 R_PAREN@[12; 13) 14 R_PAREN@[12; 13)
15 SEMI@[13; 14) 15 SEMI@[13; 14)
16 WHITESPACE@[14; 15) 16 WHITESPACE@[14; 15)
17 TYPE_DEF@[15; 36) 17 TYPE_ALIAS_DEF@[15; 36)
18 TYPE_KW@[15; 19) 18 TYPE_KW@[15; 19)
19 WHITESPACE@[19; 20) 19 WHITESPACE@[19; 20)
20 NAME@[20; 21) 20 NAME@[20; 21)
@@ -31,7 +31,7 @@ SOURCE_FILE@[0; 70)
31 R_PAREN@[34; 35) 31 R_PAREN@[34; 35)
32 SEMI@[35; 36) 32 SEMI@[35; 36)
33 WHITESPACE@[36; 37) 33 WHITESPACE@[36; 37)
34 TYPE_DEF@[37; 69) 34 TYPE_ALIAS_DEF@[37; 69)
35 TYPE_KW@[37; 41) 35 TYPE_KW@[37; 41)
36 WHITESPACE@[41; 42) 36 WHITESPACE@[41; 42)
37 NAME@[42; 43) 37 NAME@[42; 43)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.txt
index 7f35254d1..c015dddeb 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0033_reference_type;.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 54) 1SOURCE_FILE@[0; 54)
2 TYPE_DEF@[0; 13) 2 TYPE_ALIAS_DEF@[0; 13)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
@@ -14,7 +14,7 @@ SOURCE_FILE@[0; 54)
14 R_PAREN@[11; 12) 14 R_PAREN@[11; 12)
15 SEMI@[12; 13) 15 SEMI@[12; 13)
16 WHITESPACE@[13; 14) 16 WHITESPACE@[13; 14)
17 TYPE_DEF@[14; 35) 17 TYPE_ALIAS_DEF@[14; 35)
18 TYPE_KW@[14; 18) 18 TYPE_KW@[14; 18)
19 WHITESPACE@[18; 19) 19 WHITESPACE@[18; 19)
20 NAME@[19; 20) 20 NAME@[19; 20)
@@ -31,7 +31,7 @@ SOURCE_FILE@[0; 54)
31 R_PAREN@[33; 34) 31 R_PAREN@[33; 34)
32 SEMI@[34; 35) 32 SEMI@[34; 35)
33 WHITESPACE@[35; 36) 33 WHITESPACE@[35; 36)
34 TYPE_DEF@[36; 53) 34 TYPE_ALIAS_DEF@[36; 53)
35 TYPE_KW@[36; 40) 35 TYPE_KW@[36; 40)
36 WHITESPACE@[40; 41) 36 WHITESPACE@[40; 41)
37 NAME@[41; 42) 37 NAME@[41; 42)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.txt
index 394fc7f5b..fbc548695 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0037_qual_paths.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 71) 1SOURCE_FILE@[0; 71)
2 TYPE_DEF@[0; 26) 2 TYPE_ALIAS_DEF@[0; 26)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.txt
index ccef7188f..cef13b6aa 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0039_type_arg.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 36) 1SOURCE_FILE@[0; 36)
2 TYPE_DEF@[0; 35) 2 TYPE_ALIAS_DEF@[0; 35)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.txt
index 173c325d0..33549028b 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0046_singleton_tuple_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 17) 1SOURCE_FILE@[0; 17)
2 TYPE_DEF@[0; 16) 2 TYPE_ALIAS_DEF@[0; 16)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.txt
index 9fd19ba4a..5a6a2a829 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0051_unit_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 13) 1SOURCE_FILE@[0; 13)
2 TYPE_DEF@[0; 12) 2 TYPE_ALIAS_DEF@[0; 12)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.txt
index b72b96e95..0531b8fba 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0052_path_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 71) 1SOURCE_FILE@[0; 71)
2 TYPE_DEF@[0; 13) 2 TYPE_ALIAS_DEF@[0; 13)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
@@ -14,7 +14,7 @@ SOURCE_FILE@[0; 71)
14 IDENT@[9; 12) "Foo" 14 IDENT@[9; 12) "Foo"
15 SEMI@[12; 13) 15 SEMI@[12; 13)
16 WHITESPACE@[13; 14) 16 WHITESPACE@[13; 14)
17 TYPE_DEF@[14; 29) 17 TYPE_ALIAS_DEF@[14; 29)
18 TYPE_KW@[14; 18) 18 TYPE_KW@[14; 18)
19 WHITESPACE@[18; 19) 19 WHITESPACE@[18; 19)
20 NAME@[19; 20) 20 NAME@[19; 20)
@@ -30,7 +30,7 @@ SOURCE_FILE@[0; 71)
30 IDENT@[25; 28) "Foo" 30 IDENT@[25; 28) "Foo"
31 SEMI@[28; 29) 31 SEMI@[28; 29)
32 WHITESPACE@[29; 30) 32 WHITESPACE@[29; 30)
33 TYPE_DEF@[30; 49) 33 TYPE_ALIAS_DEF@[30; 49)
34 TYPE_KW@[30; 34) 34 TYPE_KW@[30; 34)
35 WHITESPACE@[34; 35) 35 WHITESPACE@[34; 35)
36 NAME@[35; 36) 36 NAME@[35; 36)
@@ -49,7 +49,7 @@ SOURCE_FILE@[0; 71)
49 IDENT@[45; 48) "Foo" 49 IDENT@[45; 48) "Foo"
50 SEMI@[48; 49) 50 SEMI@[48; 49)
51 WHITESPACE@[49; 50) 51 WHITESPACE@[49; 50)
52 TYPE_DEF@[50; 70) 52 TYPE_ALIAS_DEF@[50; 70)
53 TYPE_KW@[50; 54) 53 TYPE_KW@[50; 54)
54 WHITESPACE@[54; 55) 54 WHITESPACE@[54; 55)
55 NAME@[55; 56) 55 NAME@[55; 56)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.txt
index d07fe70b2..f6a0967f2 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0065_dyn_trait_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 42) 1SOURCE_FILE@[0; 42)
2 TYPE_DEF@[0; 41) 2 TYPE_ALIAS_DEF@[0; 41)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.txt
index 89b34d4f1..49ce9ad5e 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0073_type_item_type_params.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 21) 1SOURCE_FILE@[0; 21)
2 TYPE_DEF@[0; 20) 2 TYPE_ALIAS_DEF@[0; 20)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 11) 5 NAME@[5; 11)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.txt
index 4b66a05a6..a62a9d1e7 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0078_type_item.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 16) 1SOURCE_FILE@[0; 16)
2 TYPE_DEF@[0; 15) 2 TYPE_ALIAS_DEF@[0; 15)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 8) 5 NAME@[5; 8)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt
index 843cc4973..6e7e6bda1 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0081_for_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 29) 1SOURCE_FILE@[0; 29)
2 TYPE_DEF@[0; 28) 2 TYPE_ALIAS_DEF@[0; 28)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.txt
index bd5feb6b3..76b52bf89 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0084_paren_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 16) 1SOURCE_FILE@[0; 16)
2 TYPE_DEF@[0; 15) 2 TYPE_ALIAS_DEF@[0; 15)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt
index f092c6df7..dc42a5c00 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0092_fn_pointer_type_with_ret.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 21) 1SOURCE_FILE@[0; 21)
2 TYPE_DEF@[0; 20) 2 TYPE_ALIAS_DEF@[0; 20)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.txt
index ba1163c2d..0254c998d 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0104_path_fn_trait_args.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 32) 1SOURCE_FILE@[0; 32)
2 TYPE_DEF@[0; 31) 2 TYPE_ALIAS_DEF@[0; 31)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0117_macro_call_type.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0117_macro_call_type.txt
index b2d95451c..608b4a5f0 100644
--- a/crates/ra_syntax/tests/data/parser/inline/ok/0117_macro_call_type.txt
+++ b/crates/ra_syntax/tests/data/parser/inline/ok/0117_macro_call_type.txt
@@ -1,5 +1,5 @@
1SOURCE_FILE@[0; 41) 1SOURCE_FILE@[0; 41)
2 TYPE_DEF@[0; 16) 2 TYPE_ALIAS_DEF@[0; 16)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 NAME@[5; 6) 5 NAME@[5; 6)
@@ -18,7 +18,7 @@ SOURCE_FILE@[0; 41)
18 R_PAREN@[14; 15) 18 R_PAREN@[14; 15)
19 SEMI@[15; 16) 19 SEMI@[15; 16)
20 WHITESPACE@[16; 17) 20 WHITESPACE@[16; 17)
21 TYPE_DEF@[17; 40) 21 TYPE_ALIAS_DEF@[17; 40)
22 TYPE_KW@[17; 21) 22 TYPE_KW@[17; 21)
23 WHITESPACE@[21; 22) 23 WHITESPACE@[21; 22)
24 NAME@[22; 23) 24 NAME@[22; 23)