Rename ImplItem to ImplBlock

rustc uses the name ImplItem for items in impls, not the impl {} block itself,
which could lead to confusion.
This commit is contained in:
Florian Diebold 2018-12-26 21:24:49 +01:00
parent a0d483011d
commit fe6c4115f6
24 changed files with 51 additions and 52 deletions

View file

@ -60,7 +60,7 @@ fn structure_node(node: SyntaxNodeRef) -> Option<StructureNode> {
.visit(decl::<ast::TypeDef>) .visit(decl::<ast::TypeDef>)
.visit(decl::<ast::ConstDef>) .visit(decl::<ast::ConstDef>)
.visit(decl::<ast::StaticDef>) .visit(decl::<ast::StaticDef>)
.visit(|im: ast::ImplItem| { .visit(|im: ast::ImplBlock| {
let target_type = im.target_type()?; let target_type = im.target_type()?;
let target_trait = im.target_trait(); let target_trait = im.target_trait();
let label = match target_trait { let label = match target_trait {
@ -121,8 +121,8 @@ impl fmt::Debug for E {}
StructureNode { parent: None, label: "T", navigation_range: [81; 82), node_range: [76; 88), kind: TYPE_DEF }, StructureNode { parent: None, label: "T", navigation_range: [81; 82), node_range: [76; 88), kind: TYPE_DEF },
StructureNode { parent: None, label: "S", navigation_range: [96; 97), node_range: [89; 108), kind: STATIC_DEF }, StructureNode { parent: None, label: "S", navigation_range: [96; 97), node_range: [89; 108), kind: STATIC_DEF },
StructureNode { parent: None, label: "C", navigation_range: [115; 116), node_range: [109; 127), kind: CONST_DEF }, StructureNode { parent: None, label: "C", navigation_range: [115; 116), node_range: [109; 127), kind: CONST_DEF },
StructureNode { parent: None, label: "impl E", navigation_range: [134; 135), node_range: [129; 138), kind: IMPL_ITEM }, StructureNode { parent: None, label: "impl E", navigation_range: [134; 135), node_range: [129; 138), kind: IMPL_BLOCK },
StructureNode { parent: None, label: "impl fmt::Debug for E", navigation_range: [160; 161), node_range: [140; 164), kind: IMPL_ITEM }]"#, StructureNode { parent: None, label: "impl fmt::Debug for E", navigation_range: [160; 161), node_range: [140; 164), kind: IMPL_BLOCK }]"#,
&structure, &structure,
) )
} }

View file

@ -233,7 +233,7 @@ impl InputModuleItems {
ast::ModuleItem::TypeDef(it) => { ast::ModuleItem::TypeDef(it) => {
self.items.push(ModuleItem::new(file_id, file_items, it)?) self.items.push(ModuleItem::new(file_id, file_items, it)?)
} }
ast::ModuleItem::ImplItem(_) => { ast::ModuleItem::ImplBlock(_) => {
// impls don't define items // impls don't define items
} }
ast::ModuleItem::UseItem(it) => self.add_use_item(file_items, it), ast::ModuleItem::UseItem(it) => self.add_use_item(file_items, it),

View file

@ -44,7 +44,7 @@ impl Conv for SyntaxKind {
SyntaxKind::TYPE_DEF => SymbolKind::TypeParameter, SyntaxKind::TYPE_DEF => SymbolKind::TypeParameter,
SyntaxKind::STATIC_DEF => SymbolKind::Constant, SyntaxKind::STATIC_DEF => SymbolKind::Constant,
SyntaxKind::CONST_DEF => SymbolKind::Constant, SyntaxKind::CONST_DEF => SymbolKind::Constant,
SyntaxKind::IMPL_ITEM => SymbolKind::Object, SyntaxKind::IMPL_BLOCK => SymbolKind::Object,
_ => SymbolKind::Variable, _ => SymbolKind::Variable,
} }
} }

View file

@ -279,7 +279,7 @@ impl<'a> NameRef<'a> {
} }
} }
impl<'a> ImplItem<'a> { impl<'a> ImplBlock<'a> {
pub fn target_type(self) -> Option<TypeRef<'a>> { pub fn target_type(self) -> Option<TypeRef<'a>> {
match self.target() { match self.target() {
(Some(t), None) | (_, Some(t)) => Some(t), (Some(t), None) | (_, Some(t)) => Some(t),

View file

@ -1407,42 +1407,42 @@ impl<'a> IfExpr<'a> {
} }
} }
// ImplItem // ImplBlock
#[derive(Debug, Clone, Copy,)] #[derive(Debug, Clone, Copy,)]
pub struct ImplItemNode<R: TreeRoot<RaTypes> = OwnedRoot> { pub struct ImplBlockNode<R: TreeRoot<RaTypes> = OwnedRoot> {
pub(crate) syntax: SyntaxNode<R>, pub(crate) syntax: SyntaxNode<R>,
} }
pub type ImplItem<'a> = ImplItemNode<RefRoot<'a>>; pub type ImplBlock<'a> = ImplBlockNode<RefRoot<'a>>;
impl<R1: TreeRoot<RaTypes>, R2: TreeRoot<RaTypes>> PartialEq<ImplItemNode<R1>> for ImplItemNode<R2> { impl<R1: TreeRoot<RaTypes>, R2: TreeRoot<RaTypes>> PartialEq<ImplBlockNode<R1>> for ImplBlockNode<R2> {
fn eq(&self, other: &ImplItemNode<R1>) -> bool { self.syntax == other.syntax } fn eq(&self, other: &ImplBlockNode<R1>) -> bool { self.syntax == other.syntax }
} }
impl<R: TreeRoot<RaTypes>> Eq for ImplItemNode<R> {} impl<R: TreeRoot<RaTypes>> Eq for ImplBlockNode<R> {}
impl<R: TreeRoot<RaTypes>> Hash for ImplItemNode<R> { impl<R: TreeRoot<RaTypes>> Hash for ImplBlockNode<R> {
fn hash<H: Hasher>(&self, state: &mut H) { self.syntax.hash(state) } fn hash<H: Hasher>(&self, state: &mut H) { self.syntax.hash(state) }
} }
impl<'a> AstNode<'a> for ImplItem<'a> { impl<'a> AstNode<'a> for ImplBlock<'a> {
fn cast(syntax: SyntaxNodeRef<'a>) -> Option<Self> { fn cast(syntax: SyntaxNodeRef<'a>) -> Option<Self> {
match syntax.kind() { match syntax.kind() {
IMPL_ITEM => Some(ImplItem { syntax }), IMPL_BLOCK => Some(ImplBlock { syntax }),
_ => None, _ => None,
} }
} }
fn syntax(self) -> SyntaxNodeRef<'a> { self.syntax } fn syntax(self) -> SyntaxNodeRef<'a> { self.syntax }
} }
impl<R: TreeRoot<RaTypes>> ImplItemNode<R> { impl<R: TreeRoot<RaTypes>> ImplBlockNode<R> {
pub fn borrowed(&self) -> ImplItem { pub fn borrowed(&self) -> ImplBlock {
ImplItemNode { syntax: self.syntax.borrowed() } ImplBlockNode { syntax: self.syntax.borrowed() }
} }
pub fn owned(&self) -> ImplItemNode { pub fn owned(&self) -> ImplBlockNode {
ImplItemNode { syntax: self.syntax.owned() } ImplBlockNode { syntax: self.syntax.owned() }
} }
} }
impl<'a> ImplItem<'a> {} impl<'a> ImplBlock<'a> {}
// ImplTraitType // ImplTraitType
#[derive(Debug, Clone, Copy,)] #[derive(Debug, Clone, Copy,)]
@ -2157,7 +2157,7 @@ pub enum ModuleItem<'a> {
FnDef(FnDef<'a>), FnDef(FnDef<'a>),
TraitDef(TraitDef<'a>), TraitDef(TraitDef<'a>),
TypeDef(TypeDef<'a>), TypeDef(TypeDef<'a>),
ImplItem(ImplItem<'a>), ImplBlock(ImplBlock<'a>),
UseItem(UseItem<'a>), UseItem(UseItem<'a>),
ExternCrateItem(ExternCrateItem<'a>), ExternCrateItem(ExternCrateItem<'a>),
ConstDef(ConstDef<'a>), ConstDef(ConstDef<'a>),
@ -2173,7 +2173,7 @@ impl<'a> AstNode<'a> for ModuleItem<'a> {
FN_DEF => Some(ModuleItem::FnDef(FnDef { syntax })), FN_DEF => Some(ModuleItem::FnDef(FnDef { syntax })),
TRAIT_DEF => Some(ModuleItem::TraitDef(TraitDef { syntax })), TRAIT_DEF => Some(ModuleItem::TraitDef(TraitDef { syntax })),
TYPE_DEF => Some(ModuleItem::TypeDef(TypeDef { syntax })), TYPE_DEF => Some(ModuleItem::TypeDef(TypeDef { syntax })),
IMPL_ITEM => Some(ModuleItem::ImplItem(ImplItem { syntax })), IMPL_BLOCK => Some(ModuleItem::ImplBlock(ImplBlock { syntax })),
USE_ITEM => Some(ModuleItem::UseItem(UseItem { syntax })), USE_ITEM => Some(ModuleItem::UseItem(UseItem { syntax })),
EXTERN_CRATE_ITEM => Some(ModuleItem::ExternCrateItem(ExternCrateItem { syntax })), EXTERN_CRATE_ITEM => Some(ModuleItem::ExternCrateItem(ExternCrateItem { syntax })),
CONST_DEF => Some(ModuleItem::ConstDef(ConstDef { syntax })), CONST_DEF => Some(ModuleItem::ConstDef(ConstDef { syntax })),
@ -2189,7 +2189,7 @@ impl<'a> AstNode<'a> for ModuleItem<'a> {
ModuleItem::FnDef(inner) => inner.syntax(), ModuleItem::FnDef(inner) => inner.syntax(),
ModuleItem::TraitDef(inner) => inner.syntax(), ModuleItem::TraitDef(inner) => inner.syntax(),
ModuleItem::TypeDef(inner) => inner.syntax(), ModuleItem::TypeDef(inner) => inner.syntax(),
ModuleItem::ImplItem(inner) => inner.syntax(), ModuleItem::ImplBlock(inner) => inner.syntax(),
ModuleItem::UseItem(inner) => inner.syntax(), ModuleItem::UseItem(inner) => inner.syntax(),
ModuleItem::ExternCrateItem(inner) => inner.syntax(), ModuleItem::ExternCrateItem(inner) => inner.syntax(),
ModuleItem::ConstDef(inner) => inner.syntax(), ModuleItem::ConstDef(inner) => inner.syntax(),

View file

@ -128,7 +128,7 @@ Grammar(
"STATIC_DEF", "STATIC_DEF",
"CONST_DEF", "CONST_DEF",
"TRAIT_DEF", "TRAIT_DEF",
"IMPL_ITEM", "IMPL_BLOCK",
"TYPE_DEF", "TYPE_DEF",
"MACRO_CALL", "MACRO_CALL",
"TOKEN_TREE", "TOKEN_TREE",
@ -307,7 +307,7 @@ Grammar(
"AttrsOwner", "AttrsOwner",
"DocCommentsOwner" "DocCommentsOwner"
] ), ] ),
"ImplItem": (), "ImplBlock": (collections: []),
"ParenType": (options: ["TypeRef"]), "ParenType": (options: ["TypeRef"]),
"TupleType": ( collections: [["fields", "TypeRef"]] ), "TupleType": ( collections: [["fields", "TypeRef"]] ),
@ -348,7 +348,7 @@ Grammar(
], ],
), ),
"ModuleItem": ( "ModuleItem": (
enum: ["StructDef", "EnumDef", "FnDef", "TraitDef", "TypeDef", "ImplItem", enum: ["StructDef", "EnumDef", "FnDef", "TraitDef", "TypeDef", "ImplBlock",
"UseItem", "ExternCrateItem", "ConstDef", "StaticDef", "Module" ] "UseItem", "ExternCrateItem", "ConstDef", "StaticDef", "Module" ]
), ),

View file

@ -152,7 +152,7 @@ pub(super) fn maybe_item(p: &mut Parser, flavor: ItemFlavor) -> MaybeItem {
// unsafe default impl Foo {} // unsafe default impl Foo {}
IMPL_KW => { IMPL_KW => {
traits::impl_item(p); traits::impl_item(p);
IMPL_ITEM IMPL_BLOCK
} }
_ => { _ => {
return if has_mods { return if has_mods {

View file

@ -100,7 +100,7 @@ fn find_reparsable_node(
ITEM_LIST => { ITEM_LIST => {
let parent = node.parent().unwrap(); let parent = node.parent().unwrap();
match parent.kind() { match parent.kind() {
IMPL_ITEM => grammar::impl_item_list, IMPL_BLOCK => grammar::impl_item_list,
TRAIT_DEF => grammar::trait_item_list, TRAIT_DEF => grammar::trait_item_list,
MODULE => grammar::mod_item_list, MODULE => grammar::mod_item_list,
_ => return None, _ => return None,

View file

@ -128,7 +128,7 @@ pub enum SyntaxKind {
STATIC_DEF, STATIC_DEF,
CONST_DEF, CONST_DEF,
TRAIT_DEF, TRAIT_DEF,
IMPL_ITEM, IMPL_BLOCK,
TYPE_DEF, TYPE_DEF,
MACRO_CALL, MACRO_CALL,
TOKEN_TREE, TOKEN_TREE,
@ -389,7 +389,7 @@ impl SyntaxKind {
STATIC_DEF => &SyntaxInfo { name: "STATIC_DEF" }, STATIC_DEF => &SyntaxInfo { name: "STATIC_DEF" },
CONST_DEF => &SyntaxInfo { name: "CONST_DEF" }, CONST_DEF => &SyntaxInfo { name: "CONST_DEF" },
TRAIT_DEF => &SyntaxInfo { name: "TRAIT_DEF" }, TRAIT_DEF => &SyntaxInfo { name: "TRAIT_DEF" },
IMPL_ITEM => &SyntaxInfo { name: "IMPL_ITEM" }, IMPL_BLOCK => &SyntaxInfo { name: "IMPL_BLOCK" },
TYPE_DEF => &SyntaxInfo { name: "TYPE_DEF" }, TYPE_DEF => &SyntaxInfo { name: "TYPE_DEF" },
MACRO_CALL => &SyntaxInfo { name: "MACRO_CALL" }, MACRO_CALL => &SyntaxInfo { name: "MACRO_CALL" },
TOKEN_TREE => &SyntaxInfo { name: "TOKEN_TREE" }, TOKEN_TREE => &SyntaxInfo { name: "TOKEN_TREE" },

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 183) SOURCE_FILE@[0; 183)
IMPL_ITEM@[0; 182) IMPL_BLOCK@[0; 182)
IMPL_KW@[0; 4) IMPL_KW@[0; 4)
WHITESPACE@[4; 5) WHITESPACE@[4; 5)
PATH_TYPE@[5; 13) PATH_TYPE@[5; 13)

View file

@ -94,7 +94,7 @@ SOURCE_FILE@[0; 112)
COMMA@[54; 55) COMMA@[54; 55)
err: `expected SEMI` err: `expected SEMI`
WHITESPACE@[55; 56) WHITESPACE@[55; 56)
IMPL_ITEM@[56; 60) IMPL_BLOCK@[56; 60)
IMPL_KW@[56; 60) IMPL_KW@[56; 60)
err: `expected type` err: `expected type`
err: `expected `{`` err: `expected `{``

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 38) SOURCE_FILE@[0; 38)
IMPL_ITEM@[0; 14) IMPL_BLOCK@[0; 14)
IMPL_KW@[0; 4) IMPL_KW@[0; 4)
TYPE_PARAM_LIST@[4; 14) TYPE_PARAM_LIST@[4; 14)
L_ANGLE@[4; 5) L_ANGLE@[4; 5)
@ -17,7 +17,7 @@ SOURCE_FILE@[0; 38)
err: `expected trait or type` err: `expected trait or type`
err: `expected `{`` err: `expected `{``
WHITESPACE@[14; 15) WHITESPACE@[14; 15)
IMPL_ITEM@[15; 37) IMPL_BLOCK@[15; 37)
IMPL_KW@[15; 19) IMPL_KW@[15; 19)
TYPE_PARAM_LIST@[19; 22) TYPE_PARAM_LIST@[19; 22)
L_ANGLE@[19; 20) L_ANGLE@[19; 20)

View file

@ -19,7 +19,7 @@ SOURCE_FILE@[0; 30)
err: `expected a loop` err: `expected a loop`
err: `expected SEMI` err: `expected SEMI`
WHITESPACE@[22; 23) WHITESPACE@[22; 23)
IMPL_ITEM@[23; 27) IMPL_BLOCK@[23; 27)
IMPL_KW@[23; 27) IMPL_KW@[23; 27)
err: `expected type` err: `expected type`
err: `expected `{`` err: `expected `{``

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 87) SOURCE_FILE@[0; 87)
IMPL_ITEM@[0; 12) IMPL_BLOCK@[0; 12)
IMPL_KW@[0; 4) IMPL_KW@[0; 4)
WHITESPACE@[4; 5) WHITESPACE@[4; 5)
PATH_TYPE@[5; 9) PATH_TYPE@[5; 9)
@ -12,7 +12,7 @@ SOURCE_FILE@[0; 87)
L_CURLY@[10; 11) L_CURLY@[10; 11)
R_CURLY@[11; 12) R_CURLY@[11; 12)
WHITESPACE@[12; 13) WHITESPACE@[12; 13)
IMPL_ITEM@[13; 33) IMPL_BLOCK@[13; 33)
IMPL_KW@[13; 17) IMPL_KW@[13; 17)
WHITESPACE@[17; 18) WHITESPACE@[17; 18)
PATH_TYPE@[18; 24) PATH_TYPE@[18; 24)
@ -33,12 +33,12 @@ SOURCE_FILE@[0; 87)
L_CURLY@[31; 32) L_CURLY@[31; 32)
R_CURLY@[32; 33) R_CURLY@[32; 33)
WHITESPACE@[33; 34) WHITESPACE@[33; 34)
IMPL_ITEM@[34; 38) IMPL_BLOCK@[34; 38)
IMPL_KW@[34; 38) IMPL_KW@[34; 38)
err: `expected trait or type` err: `expected trait or type`
err: `expected `{`` err: `expected `{``
WHITESPACE@[38; 39) WHITESPACE@[38; 39)
IMPL_ITEM@[39; 54) IMPL_BLOCK@[39; 54)
IMPL_KW@[39; 43) IMPL_KW@[39; 43)
WHITESPACE@[43; 44) WHITESPACE@[43; 44)
PATH_TYPE@[44; 51) PATH_TYPE@[44; 51)
@ -51,7 +51,7 @@ SOURCE_FILE@[0; 87)
L_CURLY@[52; 53) L_CURLY@[52; 53)
R_CURLY@[53; 54) R_CURLY@[53; 54)
WHITESPACE@[54; 55) WHITESPACE@[54; 55)
IMPL_ITEM@[55; 70) IMPL_BLOCK@[55; 70)
IMPL_KW@[55; 59) IMPL_KW@[55; 59)
WHITESPACE@[59; 60) WHITESPACE@[59; 60)
PATH_TYPE@[60; 66) PATH_TYPE@[60; 66)
@ -64,7 +64,7 @@ SOURCE_FILE@[0; 87)
err: `expected trait or type` err: `expected trait or type`
err: `expected `{`` err: `expected `{``
WHITESPACE@[70; 71) WHITESPACE@[70; 71)
IMPL_ITEM@[71; 86) IMPL_BLOCK@[71; 86)
IMPL_KW@[71; 75) IMPL_KW@[71; 75)
WHITESPACE@[75; 76) WHITESPACE@[75; 76)
PATH_TYPE@[76; 83) PATH_TYPE@[76; 83)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 83) SOURCE_FILE@[0; 83)
IMPL_ITEM@[0; 82) IMPL_BLOCK@[0; 82)
IMPL_KW@[0; 4) IMPL_KW@[0; 4)
WHITESPACE@[4; 5) WHITESPACE@[4; 5)
PATH_TYPE@[5; 6) PATH_TYPE@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 128) SOURCE_FILE@[0; 128)
IMPL_ITEM@[0; 127) IMPL_BLOCK@[0; 127)
IMPL_KW@[0; 4) IMPL_KW@[0; 4)
WHITESPACE@[4; 5) WHITESPACE@[4; 5)
PATH_TYPE@[5; 6) PATH_TYPE@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 69) SOURCE_FILE@[0; 69)
IMPL_ITEM@[0; 68) IMPL_BLOCK@[0; 68)
IMPL_KW@[0; 4) IMPL_KW@[0; 4)
WHITESPACE@[4; 5) WHITESPACE@[4; 5)
PATH_TYPE@[5; 6) PATH_TYPE@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 89) SOURCE_FILE@[0; 89)
IMPL_ITEM@[0; 88) IMPL_BLOCK@[0; 88)
IMPL_KW@[0; 4) IMPL_KW@[0; 4)
WHITESPACE@[4; 5) WHITESPACE@[4; 5)
PATH_TYPE@[5; 6) PATH_TYPE@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 27) SOURCE_FILE@[0; 27)
IMPL_ITEM@[0; 26) IMPL_BLOCK@[0; 26)
UNSAFE_KW@[0; 6) UNSAFE_KW@[0; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
DEFAULT_KW@[7; 14) DEFAULT_KW@[7; 14)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 20) SOURCE_FILE@[0; 20)
IMPL_ITEM@[0; 19) IMPL_BLOCK@[0; 19)
IMPL_KW@[0; 4) IMPL_KW@[0; 4)
WHITESPACE@[4; 5) WHITESPACE@[4; 5)
EXCL@[5; 6) EXCL@[5; 6)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 12) SOURCE_FILE@[0; 12)
IMPL_ITEM@[0; 11) IMPL_BLOCK@[0; 11)
IMPL_KW@[0; 4) IMPL_KW@[0; 4)
WHITESPACE@[4; 5) WHITESPACE@[4; 5)
PATH_TYPE@[5; 8) PATH_TYPE@[5; 8)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 19) SOURCE_FILE@[0; 19)
IMPL_ITEM@[0; 18) IMPL_BLOCK@[0; 18)
UNSAFE_KW@[0; 6) UNSAFE_KW@[0; 6)
WHITESPACE@[6; 7) WHITESPACE@[6; 7)
IMPL_KW@[7; 11) IMPL_KW@[7; 11)

View file

@ -1,5 +1,5 @@
SOURCE_FILE@[0; 20) SOURCE_FILE@[0; 20)
IMPL_ITEM@[0; 19) IMPL_BLOCK@[0; 19)
DEFAULT_KW@[0; 7) DEFAULT_KW@[0; 7)
WHITESPACE@[7; 8) WHITESPACE@[7; 8)
IMPL_KW@[8; 12) IMPL_KW@[8; 12)

View file

@ -14,4 +14,3 @@ SOURCE_FILE@[0; 93)
ITEM_LIST@[91; 93) ITEM_LIST@[91; 93)
L_CURLY@[91; 92) L_CURLY@[91; 92)
R_CURLY@[92; 93) R_CURLY@[92; 93)