mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-25 13:24:22 +00:00
Merge #898
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:
commit
cec637a3a9
@ -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)
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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()));
|
||||
|
@ -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()
|
||||
|
@ -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(
|
||||
|
@ -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)?
|
||||
|
@ -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)?
|
||||
|
@ -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(
|
||||
"()"
|
||||
),
|
||||
|
@ -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
|
||||
}
|
||||
]
|
@ -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| {
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
@ -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" },
|
||||
|
@ -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)]
|
||||
|
@ -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": (
|
||||
|
@ -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() {
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user