898: rename type to type_alias in the AST as well r=matklad a=matklad



Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2019-02-25 10:51:37 +00:00
commit cec637a3a9
45 changed files with 293 additions and 108 deletions

View file

@ -619,7 +619,10 @@ pub struct TypeAlias {
}
impl TypeAlias {
pub fn source(&self, db: &impl PersistentHirDatabase) -> (HirFileId, TreeArc<ast::TypeDef>) {
pub fn source(
&self,
db: &impl PersistentHirDatabase,
) -> (HirFileId, TreeArc<ast::TypeAliasDef>) {
self.id.source(db)
}

View file

@ -22,7 +22,7 @@ pub struct HirInterner {
consts: LocationIntener<ItemLoc<ast::ConstDef>, ConstId>,
statics: LocationIntener<ItemLoc<ast::StaticDef>, StaticId>,
traits: LocationIntener<ItemLoc<ast::TraitDef>, TraitId>,
types: LocationIntener<ItemLoc<ast::TypeDef>, TypeId>,
types: LocationIntener<ItemLoc<ast::TypeAliasDef>, TypeId>,
}
impl HirInterner {
@ -278,8 +278,8 @@ impl AstItemDef<ast::TraitDef> for TraitId {
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct TypeId(RawId);
impl_arena_id!(TypeId);
impl AstItemDef<ast::TypeDef> for TypeId {
fn interner(interner: &HirInterner) -> &LocationIntener<ItemLoc<ast::TypeDef>, Self> {
impl AstItemDef<ast::TypeAliasDef> for TypeId {
fn interner(interner: &HirInterner) -> &LocationIntener<ItemLoc<ast::TypeAliasDef>, Self> {
&interner.types
}
}

View file

@ -137,7 +137,7 @@ impl ImplData {
.map(|item_node| match item_node.kind() {
ast::ImplItemKind::FnDef(it) => Function { id: ctx.to_def(it) }.into(),
ast::ImplItemKind::ConstDef(it) => Const { id: ctx.to_def(it) }.into(),
ast::ImplItemKind::TypeDef(it) => TypeAlias { id: ctx.to_def(it) }.into(),
ast::ImplItemKind::TypeAliasDef(it) => TypeAlias { id: ctx.to_def(it) }.into(),
})
.collect()
} else {

View file

@ -167,7 +167,7 @@ impl LoweredModule {
self.declarations.insert(name.as_name(), PerNs::types(t.into()));
}
}
ast::ModuleItemKind::TypeDef(it) => {
ast::ModuleItemKind::TypeAliasDef(it) => {
if let Some(name) = it.name() {
let t = TypeAlias { id: ctx.to_def(it) };
self.declarations.insert(name.as_name(), PerNs::types(t.into()));

View file

@ -102,7 +102,7 @@ pub fn const_label(node: &ast::ConstDef) -> String {
label.trim().to_owned()
}
pub fn type_label(node: &ast::TypeDef) -> String {
pub fn type_label(node: &ast::TypeAliasDef) -> String {
let label: String = node
.syntax()
.children()

View file

@ -141,7 +141,7 @@ fn named_target(file_id: FileId, node: &SyntaxNode) -> Option<NavigationTarget>
.visit(|node: &ast::EnumDef| NavigationTarget::from_named(file_id, node))
.visit(|node: &ast::EnumVariant| NavigationTarget::from_named(file_id, node))
.visit(|node: &ast::FnDef| NavigationTarget::from_named(file_id, node))
.visit(|node: &ast::TypeDef| NavigationTarget::from_named(file_id, node))
.visit(|node: &ast::TypeAliasDef| NavigationTarget::from_named(file_id, node))
.visit(|node: &ast::ConstDef| NavigationTarget::from_named(file_id, node))
.visit(|node: &ast::StaticDef| NavigationTarget::from_named(file_id, node))
.visit(|node: &ast::TraitDef| NavigationTarget::from_named(file_id, node))
@ -327,7 +327,7 @@ mod tests {
//- /lib.rs
type Thing<|> = Option<()>;
"#,
"Thing TYPE_DEF FileId(1) [0; 24) [5; 10)",
"Thing TYPE_ALIAS_DEF FileId(1) [0; 24) [5; 10)",
);
check_goto(

View file

@ -105,7 +105,7 @@ impl NavigationTarget {
.visit(doc_comments::<ast::EnumDef>)
.visit(doc_comments::<ast::TraitDef>)
.visit(doc_comments::<ast::Module>)
.visit(doc_comments::<ast::TypeDef>)
.visit(doc_comments::<ast::TypeAliasDef>)
.visit(doc_comments::<ast::ConstDef>)
.visit(doc_comments::<ast::StaticDef>)
.accept(&node)?
@ -135,7 +135,7 @@ impl NavigationTarget {
.visit(|node: &ast::EnumDef| visit_node(node, "enum "))
.visit(|node: &ast::TraitDef| visit_node(node, "trait "))
.visit(|node: &ast::Module| visit_node(node, "mod "))
.visit(|node: &ast::TypeDef| visit_node(node, "type "))
.visit(|node: &ast::TypeAliasDef| visit_node(node, "type "))
.visit(|node: &ast::ConstDef| visit_node(node, "const "))
.visit(|node: &ast::StaticDef| visit_node(node, "static "))
.accept(&node)?

View file

@ -196,7 +196,7 @@ impl Query {
fn is_type(kind: SyntaxKind) -> bool {
match kind {
STRUCT_DEF | ENUM_DEF | TRAIT_DEF | TYPE_DEF => true,
STRUCT_DEF | ENUM_DEF | TRAIT_DEF | TYPE_ALIAS_DEF => true,
_ => false,
}
}
@ -253,7 +253,7 @@ fn to_symbol(node: &SyntaxNode) -> Option<(SmolStr, SyntaxNodePtr, TextRange)> {
.visit(decl::<ast::EnumDef>)
.visit(decl::<ast::TraitDef>)
.visit(decl::<ast::Module>)
.visit(decl::<ast::TypeDef>)
.visit(decl::<ast::TypeAliasDef>)
.visit(decl::<ast::ConstDef>)
.visit(decl::<ast::StaticDef>)
.accept(node)?

View file

@ -111,7 +111,7 @@ expression: structure
label: "T",
navigation_range: [186; 187),
node_range: [181; 193),
kind: TYPE_DEF,
kind: TYPE_ALIAS_DEF,
detail: Some(
"()"
),

View file

@ -0,0 +1,182 @@
---
created: "2019-02-25T10:38:16.909647631Z"
creator: insta@0.6.3
source: crates/ra_ide_api_light/src/structure.rs
expression: structure
---
[
StructureNode {
parent: None,
label: "Foo",
navigation_range: [8; 11),
node_range: [1; 26),
kind: STRUCT_DEF,
detail: None,
deprecated: false
},
StructureNode {
parent: Some(
0
),
label: "x",
navigation_range: [18; 19),
node_range: [18; 24),
kind: NAMED_FIELD_DEF,
detail: Some(
"i32"
),
deprecated: false
},
StructureNode {
parent: None,
label: "m",
navigation_range: [32; 33),
node_range: [28; 158),
kind: MODULE,
detail: None,
deprecated: false
},
StructureNode {
parent: Some(
2
),
label: "bar1",
navigation_range: [43; 47),
node_range: [40; 52),
kind: FN_DEF,
detail: Some(
"fn()"
),
deprecated: false
},
StructureNode {
parent: Some(
2
),
label: "bar2",
navigation_range: [60; 64),
node_range: [57; 81),
kind: FN_DEF,
detail: Some(
"fn<T>(t: T) -> T"
),
deprecated: false
},
StructureNode {
parent: Some(
2
),
label: "bar3",
navigation_range: [89; 93),
node_range: [86; 156),
kind: FN_DEF,
detail: Some(
"fn<A, B>(a: A, b: B) -> Vec< u32 >"
),
deprecated: false
},
StructureNode {
parent: None,
label: "E",
navigation_range: [165; 166),
node_range: [160; 180),
kind: ENUM_DEF,
detail: None,
deprecated: false
},
StructureNode {
parent: Some(
6
),
label: "X",
navigation_range: [169; 170),
node_range: [169; 170),
kind: ENUM_VARIANT,
detail: None,
deprecated: false
},
StructureNode {
parent: Some(
6
),
label: "Y",
navigation_range: [172; 173),
node_range: [172; 178),
kind: ENUM_VARIANT,
detail: None,
deprecated: false
},
StructureNode {
parent: None,
label: "T",
navigation_range: [186; 187),
node_range: [181; 193),
kind: TYPE_ALIAS_DEF,
detail: Some(
"()"
),
deprecated: false
},
StructureNode {
parent: None,
label: "S",
navigation_range: [201; 202),
node_range: [194; 213),
kind: STATIC_DEF,
detail: Some(
"i32"
),
deprecated: false
},
StructureNode {
parent: None,
label: "C",
navigation_range: [220; 221),
node_range: [214; 232),
kind: CONST_DEF,
detail: Some(
"i32"
),
deprecated: false
},
StructureNode {
parent: None,
label: "impl E",
navigation_range: [239; 240),
node_range: [234; 243),
kind: IMPL_BLOCK,
detail: None,
deprecated: false
},
StructureNode {
parent: None,
label: "impl fmt::Debug for E",
navigation_range: [265; 266),
node_range: [245; 269),
kind: IMPL_BLOCK,
detail: None,
deprecated: false
},
StructureNode {
parent: None,
label: "obsolete",
navigation_range: [288; 296),
node_range: [271; 301),
kind: FN_DEF,
detail: Some(
"fn()"
),
deprecated: true
},
StructureNode {
parent: None,
label: "very_obsolete",
navigation_range: [341; 354),
node_range: [303; 359),
kind: FN_DEF,
detail: Some(
"fn()"
),
deprecated: true
}
]

View file

@ -112,7 +112,7 @@ fn structure_node(node: &SyntaxNode) -> Option<StructureNode> {
.visit(decl::<ast::EnumVariant>)
.visit(decl::<ast::TraitDef>)
.visit(decl::<ast::Module>)
.visit(|td: &ast::TypeDef| decl_with_type_ref(td, td.type_ref()))
.visit(|td: &ast::TypeAliasDef| decl_with_type_ref(td, td.type_ref()))
.visit(|cd: &ast::ConstDef| decl_with_type_ref(cd, cd.type_ref()))
.visit(|sd: &ast::StaticDef| decl_with_type_ref(sd, sd.type_ref()))
.visit(|im: &ast::ImplBlock| {

View file

@ -41,7 +41,7 @@ impl Conv for SyntaxKind {
SyntaxKind::ENUM_DEF => SymbolKind::Enum,
SyntaxKind::TRAIT_DEF => SymbolKind::Interface,
SyntaxKind::MODULE => SymbolKind::Module,
SyntaxKind::TYPE_DEF => SymbolKind::TypeParameter,
SyntaxKind::TYPE_ALIAS_DEF => SymbolKind::TypeParameter,
SyntaxKind::STATIC_DEF => SymbolKind::Constant,
SyntaxKind::CONST_DEF => SymbolKind::Constant,
SyntaxKind::IMPL_BLOCK => SymbolKind::Object,

View file

@ -173,7 +173,7 @@ fn items_without_modifiers(p: &mut Parser) -> Option<SyntaxKind> {
}
TYPE_KW => {
type_def(p);
TYPE_DEF
TYPE_ALIAS_DEF
}
MOD_KW => {
mod_item(p);

View file

@ -130,7 +130,7 @@ pub enum SyntaxKind {
CONST_DEF,
TRAIT_DEF,
IMPL_BLOCK,
TYPE_DEF,
TYPE_ALIAS_DEF,
MACRO_CALL,
TOKEN_TREE,
PAREN_TYPE,
@ -467,7 +467,7 @@ impl SyntaxKind {
CONST_DEF => &SyntaxInfo { name: "CONST_DEF" },
TRAIT_DEF => &SyntaxInfo { name: "TRAIT_DEF" },
IMPL_BLOCK => &SyntaxInfo { name: "IMPL_BLOCK" },
TYPE_DEF => &SyntaxInfo { name: "TYPE_DEF" },
TYPE_ALIAS_DEF => &SyntaxInfo { name: "TYPE_ALIAS_DEF" },
MACRO_CALL => &SyntaxInfo { name: "MACRO_CALL" },
TOKEN_TREE => &SyntaxInfo { name: "TOKEN_TREE" },
PAREN_TYPE => &SyntaxInfo { name: "PAREN_TYPE" },

View file

@ -1508,7 +1508,7 @@ unsafe impl TransparentNewType for ImplItem {
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ImplItemKind<'a> {
FnDef(&'a FnDef),
TypeDef(&'a TypeDef),
TypeAliasDef(&'a TypeAliasDef),
ConstDef(&'a ConstDef),
}
impl<'a> From<&'a FnDef> for &'a ImplItem {
@ -1516,8 +1516,8 @@ impl<'a> From<&'a FnDef> for &'a ImplItem {
ImplItem::cast(&n.syntax).unwrap()
}
}
impl<'a> From<&'a TypeDef> for &'a ImplItem {
fn from(n: &'a TypeDef) -> &'a ImplItem {
impl<'a> From<&'a TypeAliasDef> for &'a ImplItem {
fn from(n: &'a TypeAliasDef) -> &'a ImplItem {
ImplItem::cast(&n.syntax).unwrap()
}
}
@ -1532,7 +1532,7 @@ impl AstNode for ImplItem {
fn cast(syntax: &SyntaxNode) -> Option<&Self> {
match syntax.kind() {
| FN_DEF
| TYPE_DEF
| TYPE_ALIAS_DEF
| CONST_DEF => Some(ImplItem::from_repr(syntax.into_repr())),
_ => None,
}
@ -1549,7 +1549,7 @@ impl ImplItem {
pub fn kind(&self) -> ImplItemKind {
match self.syntax.kind() {
FN_DEF => ImplItemKind::FnDef(FnDef::cast(&self.syntax).unwrap()),
TYPE_DEF => ImplItemKind::TypeDef(TypeDef::cast(&self.syntax).unwrap()),
TYPE_ALIAS_DEF => ImplItemKind::TypeAliasDef(TypeAliasDef::cast(&self.syntax).unwrap()),
CONST_DEF => ImplItemKind::ConstDef(ConstDef::cast(&self.syntax).unwrap()),
_ => unreachable!(),
}
@ -2359,7 +2359,7 @@ pub enum ModuleItemKind<'a> {
EnumDef(&'a EnumDef),
FnDef(&'a FnDef),
TraitDef(&'a TraitDef),
TypeDef(&'a TypeDef),
TypeAliasDef(&'a TypeAliasDef),
ImplBlock(&'a ImplBlock),
UseItem(&'a UseItem),
ExternCrateItem(&'a ExternCrateItem),
@ -2387,8 +2387,8 @@ impl<'a> From<&'a TraitDef> for &'a ModuleItem {
ModuleItem::cast(&n.syntax).unwrap()
}
}
impl<'a> From<&'a TypeDef> for &'a ModuleItem {
fn from(n: &'a TypeDef) -> &'a ModuleItem {
impl<'a> From<&'a TypeAliasDef> for &'a ModuleItem {
fn from(n: &'a TypeAliasDef) -> &'a ModuleItem {
ModuleItem::cast(&n.syntax).unwrap()
}
}
@ -2431,7 +2431,7 @@ impl AstNode for ModuleItem {
| ENUM_DEF
| FN_DEF
| TRAIT_DEF
| TYPE_DEF
| TYPE_ALIAS_DEF
| IMPL_BLOCK
| USE_ITEM
| EXTERN_CRATE_ITEM
@ -2456,7 +2456,7 @@ impl ModuleItem {
ENUM_DEF => ModuleItemKind::EnumDef(EnumDef::cast(&self.syntax).unwrap()),
FN_DEF => ModuleItemKind::FnDef(FnDef::cast(&self.syntax).unwrap()),
TRAIT_DEF => ModuleItemKind::TraitDef(TraitDef::cast(&self.syntax).unwrap()),
TYPE_DEF => ModuleItemKind::TypeDef(TypeDef::cast(&self.syntax).unwrap()),
TYPE_ALIAS_DEF => ModuleItemKind::TypeAliasDef(TypeAliasDef::cast(&self.syntax).unwrap()),
IMPL_BLOCK => ModuleItemKind::ImplBlock(ImplBlock::cast(&self.syntax).unwrap()),
USE_ITEM => ModuleItemKind::UseItem(UseItem::cast(&self.syntax).unwrap()),
EXTERN_CRATE_ITEM => ModuleItemKind::ExternCrateItem(ExternCrateItem::cast(&self.syntax).unwrap()),
@ -4273,6 +4273,43 @@ impl TupleType {
}
}
// TypeAliasDef
#[derive(Debug, PartialEq, Eq, Hash)]
#[repr(transparent)]
pub struct TypeAliasDef {
pub(crate) syntax: SyntaxNode,
}
unsafe impl TransparentNewType for TypeAliasDef {
type Repr = rowan::SyntaxNode<RaTypes>;
}
impl AstNode for TypeAliasDef {
fn cast(syntax: &SyntaxNode) -> Option<&Self> {
match syntax.kind() {
TYPE_ALIAS_DEF => Some(TypeAliasDef::from_repr(syntax.into_repr())),
_ => None,
}
}
fn syntax(&self) -> &SyntaxNode { &self.syntax }
}
impl ToOwned for TypeAliasDef {
type Owned = TreeArc<TypeAliasDef>;
fn to_owned(&self) -> TreeArc<TypeAliasDef> { TreeArc::cast(self.syntax.to_owned()) }
}
impl ast::VisibilityOwner for TypeAliasDef {}
impl ast::NameOwner for TypeAliasDef {}
impl ast::TypeParamsOwner for TypeAliasDef {}
impl ast::AttrsOwner for TypeAliasDef {}
impl ast::DocCommentsOwner for TypeAliasDef {}
impl TypeAliasDef {
pub fn type_ref(&self) -> Option<&TypeRef> {
super::child_opt(self)
}
}
// TypeArg
#[derive(Debug, PartialEq, Eq, Hash)]
#[repr(transparent)]
@ -4345,43 +4382,6 @@ impl TypeArgList {
}
}
// TypeDef
#[derive(Debug, PartialEq, Eq, Hash)]
#[repr(transparent)]
pub struct TypeDef {
pub(crate) syntax: SyntaxNode,
}
unsafe impl TransparentNewType for TypeDef {
type Repr = rowan::SyntaxNode<RaTypes>;
}
impl AstNode for TypeDef {
fn cast(syntax: &SyntaxNode) -> Option<&Self> {
match syntax.kind() {
TYPE_DEF => Some(TypeDef::from_repr(syntax.into_repr())),
_ => None,
}
}
fn syntax(&self) -> &SyntaxNode { &self.syntax }
}
impl ToOwned for TypeDef {
type Owned = TreeArc<TypeDef>;
fn to_owned(&self) -> TreeArc<TypeDef> { TreeArc::cast(self.syntax.to_owned()) }
}
impl ast::VisibilityOwner for TypeDef {}
impl ast::NameOwner for TypeDef {}
impl ast::TypeParamsOwner for TypeDef {}
impl ast::AttrsOwner for TypeDef {}
impl ast::DocCommentsOwner for TypeDef {}
impl TypeDef {
pub fn type_ref(&self) -> Option<&TypeRef> {
super::child_opt(self)
}
}
// TypeParam
#[derive(Debug, PartialEq, Eq, Hash)]
#[repr(transparent)]

View file

@ -132,7 +132,7 @@ Grammar(
"CONST_DEF",
"TRAIT_DEF",
"IMPL_BLOCK",
"TYPE_DEF",
"TYPE_ALIAS_DEF",
"MACRO_CALL",
"TOKEN_TREE",
@ -312,7 +312,7 @@ Grammar(
],
options: ["TypeRef"]
),
"TypeDef": (
"TypeAliasDef": (
traits: [
"VisibilityOwner",
"NameOwner",
@ -363,11 +363,11 @@ Grammar(
],
),
"ModuleItem": (
enum: ["StructDef", "EnumDef", "FnDef", "TraitDef", "TypeDef", "ImplBlock",
enum: ["StructDef", "EnumDef", "FnDef", "TraitDef", "TypeAliasDef", "ImplBlock",
"UseItem", "ExternCrateItem", "ConstDef", "StaticDef", "Module" ]
),
"ImplItem": (
enum: ["FnDef", "TypeDef", "ConstDef"]
enum: ["FnDef", "TypeAliasDef", "ConstDef"]
),
"TupleExpr": (

View file

@ -143,7 +143,7 @@ fn n_attached_trivias<'a>(
trivias: impl Iterator<Item = (SyntaxKind, &'a str)>,
) -> usize {
match kind {
CONST_DEF | TYPE_DEF | STRUCT_DEF | ENUM_DEF | ENUM_VARIANT | FN_DEF | TRAIT_DEF
CONST_DEF | TYPE_ALIAS_DEF | STRUCT_DEF | ENUM_DEF | ENUM_VARIANT | FN_DEF | TRAIT_DEF
| MODULE | NAMED_FIELD_DEF => {
let mut res = 0;
for (i, (kind, text)) in trivias.enumerate() {

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 18)
TYPE_DEF@[0; 12)
TYPE_ALIAS_DEF@[0; 12)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 14)
TYPE_DEF@[0; 13)
TYPE_ALIAS_DEF@[0; 13)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 20)
TYPE_DEF@[0; 15)
TYPE_ALIAS_DEF@[0; 15)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -11,7 +11,7 @@ SOURCE_FILE@[0; 83)
ITEM_LIST@[7; 82)
L_CURLY@[7; 8)
WHITESPACE@[8; 13)
TYPE_DEF@[13; 27)
TYPE_ALIAS_DEF@[13; 27)
TYPE_KW@[13; 17)
WHITESPACE@[17; 18)
NAME@[18; 19)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 54)
TYPE_DEF@[0; 53)
TYPE_ALIAS_DEF@[0; 53)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 31)
TYPE_DEF@[0; 30)
TYPE_ALIAS_DEF@[0; 30)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 8)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 36)
TYPE_DEF@[0; 17)
TYPE_ALIAS_DEF@[0; 17)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)
@ -16,7 +16,7 @@ SOURCE_FILE@[0; 36)
R_PAREN@[15; 16)
SEMI@[16; 17)
WHITESPACE@[17; 18)
TYPE_DEF@[18; 35)
TYPE_ALIAS_DEF@[18; 35)
TYPE_KW@[18; 22)
WHITESPACE@[22; 23)
NAME@[23; 24)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 16)
TYPE_DEF@[0; 15)
TYPE_ALIAS_DEF@[0; 15)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 10)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 19)
TYPE_DEF@[0; 18)
TYPE_ALIAS_DEF@[0; 18)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -11,7 +11,7 @@ SOURCE_FILE@[0; 89)
ITEM_LIST@[7; 88)
L_CURLY@[7; 8)
WHITESPACE@[8; 13)
TYPE_DEF@[13; 26)
TYPE_ALIAS_DEF@[13; 26)
TYPE_KW@[13; 17)
WHITESPACE@[17; 18)
NAME@[18; 19)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 22)
TYPE_DEF@[0; 21)
TYPE_ALIAS_DEF@[0; 21)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 16)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 15)
TYPE_DEF@[0; 14)
TYPE_ALIAS_DEF@[0; 14)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 43)
TYPE_DEF@[0; 42)
TYPE_ALIAS_DEF@[0; 42)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 70)
TYPE_DEF@[0; 14)
TYPE_ALIAS_DEF@[0; 14)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)
@ -14,7 +14,7 @@ SOURCE_FILE@[0; 70)
R_PAREN@[12; 13)
SEMI@[13; 14)
WHITESPACE@[14; 15)
TYPE_DEF@[15; 36)
TYPE_ALIAS_DEF@[15; 36)
TYPE_KW@[15; 19)
WHITESPACE@[19; 20)
NAME@[20; 21)
@ -31,7 +31,7 @@ SOURCE_FILE@[0; 70)
R_PAREN@[34; 35)
SEMI@[35; 36)
WHITESPACE@[36; 37)
TYPE_DEF@[37; 69)
TYPE_ALIAS_DEF@[37; 69)
TYPE_KW@[37; 41)
WHITESPACE@[41; 42)
NAME@[42; 43)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 54)
TYPE_DEF@[0; 13)
TYPE_ALIAS_DEF@[0; 13)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)
@ -14,7 +14,7 @@ SOURCE_FILE@[0; 54)
R_PAREN@[11; 12)
SEMI@[12; 13)
WHITESPACE@[13; 14)
TYPE_DEF@[14; 35)
TYPE_ALIAS_DEF@[14; 35)
TYPE_KW@[14; 18)
WHITESPACE@[18; 19)
NAME@[19; 20)
@ -31,7 +31,7 @@ SOURCE_FILE@[0; 54)
R_PAREN@[33; 34)
SEMI@[34; 35)
WHITESPACE@[35; 36)
TYPE_DEF@[36; 53)
TYPE_ALIAS_DEF@[36; 53)
TYPE_KW@[36; 40)
WHITESPACE@[40; 41)
NAME@[41; 42)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 71)
TYPE_DEF@[0; 26)
TYPE_ALIAS_DEF@[0; 26)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 36)
TYPE_DEF@[0; 35)
TYPE_ALIAS_DEF@[0; 35)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 17)
TYPE_DEF@[0; 16)
TYPE_ALIAS_DEF@[0; 16)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 13)
TYPE_DEF@[0; 12)
TYPE_ALIAS_DEF@[0; 12)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 71)
TYPE_DEF@[0; 13)
TYPE_ALIAS_DEF@[0; 13)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)
@ -14,7 +14,7 @@ SOURCE_FILE@[0; 71)
IDENT@[9; 12) "Foo"
SEMI@[12; 13)
WHITESPACE@[13; 14)
TYPE_DEF@[14; 29)
TYPE_ALIAS_DEF@[14; 29)
TYPE_KW@[14; 18)
WHITESPACE@[18; 19)
NAME@[19; 20)
@ -30,7 +30,7 @@ SOURCE_FILE@[0; 71)
IDENT@[25; 28) "Foo"
SEMI@[28; 29)
WHITESPACE@[29; 30)
TYPE_DEF@[30; 49)
TYPE_ALIAS_DEF@[30; 49)
TYPE_KW@[30; 34)
WHITESPACE@[34; 35)
NAME@[35; 36)
@ -49,7 +49,7 @@ SOURCE_FILE@[0; 71)
IDENT@[45; 48) "Foo"
SEMI@[48; 49)
WHITESPACE@[49; 50)
TYPE_DEF@[50; 70)
TYPE_ALIAS_DEF@[50; 70)
TYPE_KW@[50; 54)
WHITESPACE@[54; 55)
NAME@[55; 56)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 42)
TYPE_DEF@[0; 41)
TYPE_ALIAS_DEF@[0; 41)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 21)
TYPE_DEF@[0; 20)
TYPE_ALIAS_DEF@[0; 20)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 11)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 16)
TYPE_DEF@[0; 15)
TYPE_ALIAS_DEF@[0; 15)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 8)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 29)
TYPE_DEF@[0; 28)
TYPE_ALIAS_DEF@[0; 28)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 16)
TYPE_DEF@[0; 15)
TYPE_ALIAS_DEF@[0; 15)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 21)
TYPE_DEF@[0; 20)
TYPE_ALIAS_DEF@[0; 20)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 32)
TYPE_DEF@[0; 31)
TYPE_ALIAS_DEF@[0; 31)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 41)
TYPE_DEF@[0; 16)
TYPE_ALIAS_DEF@[0; 16)
TYPE_KW@[0; 4)
WHITESPACE@[4; 5)
NAME@[5; 6)
@ -18,7 +18,7 @@ SOURCE_FILE@[0; 41)
R_PAREN@[14; 15)
SEMI@[15; 16)
WHITESPACE@[16; 17)
TYPE_DEF@[17; 40)
TYPE_ALIAS_DEF@[17; 40)
TYPE_KW@[17; 21)
WHITESPACE@[21; 22)
NAME@[22; 23)