From afd02461bcb9bccd9372352dc9115209753fee4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lauren=C8=9Biu=20Nicola?= Date: Thu, 30 Jul 2020 17:17:59 +0300 Subject: [PATCH 1/5] Update sysroot crates --- crates/ra_project_model/src/sysroot.rs | 48 +++++++++----------------- 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/crates/ra_project_model/src/sysroot.rs b/crates/ra_project_model/src/sysroot.rs index 9e23b5805a1..a10ade3757a 100644 --- a/crates/ra_project_model/src/sysroot.rs +++ b/crates/ra_project_model/src/sysroot.rs @@ -146,42 +146,28 @@ impl SysrootCrateData { } const SYSROOT_CRATES: &str = " -std -core alloc -collections -libc -proc_macro -rustc_unicode -std_unicode -test -alloc_jemalloc -alloc_system -compiler_builtins -getopts -panic_unwind +core panic_abort -rand +panic_unwind +proc_macro +profiler_builtins +rtstartup +std +stdarch term -unwind -build_helper -rustc_asan -rustc_lsan -rustc_msan -rustc_tsan -syntax"; +test +unwind"; const STD_DEPS: &str = " alloc -alloc_jemalloc -alloc_system core panic_abort -rand -compiler_builtins -unwind -rustc_asan -rustc_lsan -rustc_msan -rustc_tsan -build_helper"; +panic_unwind +profiler_builtins +rtstartup +proc_macro +stdarch +term +test +unwind"; From 1766aae145c6925a33e427f2fe6ef2a56c301665 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 30 Jul 2020 17:56:53 +0200 Subject: [PATCH 2/5] Rename EnumVariant -> Variant --- .../extract_struct_from_enum_variant.rs | 2 +- .../handlers/generate_from_impl_for_enum.rs | 4 +-- crates/ra_hir/src/has_source.rs | 4 +-- crates/ra_hir/src/semantics.rs | 2 +- crates/ra_hir/src/semantics/source_to_def.rs | 4 +-- crates/ra_hir_def/src/adt.rs | 4 +-- crates/ra_hir_def/src/child_by_source.rs | 2 +- crates/ra_hir_def/src/item_tree/lower.rs | 4 +-- crates/ra_hir_def/src/keys.rs | 2 +- .../ra_ide/src/display/navigation_target.rs | 4 +-- crates/ra_ide/src/display/short_label.rs | 2 +- crates/ra_ide/src/extend_selection.rs | 2 +- crates/ra_ide/src/file_structure.rs | 6 ++-- crates/ra_ide/src/folding_ranges.rs | 2 +- crates/ra_ide/src/references.rs | 2 +- crates/ra_ide/src/syntax_highlighting.rs | 2 +- crates/ra_ide_db/src/defs.rs | 2 +- crates/ra_parser/src/grammar.rs | 2 +- crates/ra_parser/src/grammar/items/adt.rs | 4 +-- crates/ra_parser/src/syntax_kind/generated.rs | 4 +-- crates/ra_syntax/src/ast/generated/nodes.rs | 30 +++++++++---------- crates/ra_syntax/src/ast/node_ext.rs | 4 +-- .../ra_syntax/src/parsing/text_tree_sink.rs | 2 +- .../test_data/parser/err/0025_nope.rast | 20 ++++++------- .../inline/ok/0118_impl_inner_attributes.rast | 2 +- .../ok/0134_nocontentexpr_after_item.rast | 6 ++-- .../inline/ok/0157_variant_discriminant.rast | 4 +-- .../test_data/parser/ok/0019_enums.rast | 26 ++++++++-------- .../ok/0047_minus_in_inner_pattern.rast | 4 +-- crates/rust-analyzer/src/to_proto.rs | 2 +- xtask/src/ast_src.rs | 4 +-- xtask/src/codegen/rust.ungram | 8 ++--- 32 files changed, 86 insertions(+), 86 deletions(-) diff --git a/crates/ra_assists/src/handlers/extract_struct_from_enum_variant.rs b/crates/ra_assists/src/handlers/extract_struct_from_enum_variant.rs index 2b8e273b3e2..ccec688caee 100644 --- a/crates/ra_assists/src/handlers/extract_struct_from_enum_variant.rs +++ b/crates/ra_assists/src/handlers/extract_struct_from_enum_variant.rs @@ -31,7 +31,7 @@ pub(crate) fn extract_struct_from_enum_variant( acc: &mut Assists, ctx: &AssistContext, ) -> Option<()> { - let variant = ctx.find_node_at_offset::()?; + let variant = ctx.find_node_at_offset::()?; let field_list = match variant.kind() { ast::StructKind::Tuple(field_list) => field_list, _ => return None, diff --git a/crates/ra_assists/src/handlers/generate_from_impl_for_enum.rs b/crates/ra_assists/src/handlers/generate_from_impl_for_enum.rs index a347e3c2efe..5b282a30ac4 100644 --- a/crates/ra_assists/src/handlers/generate_from_impl_for_enum.rs +++ b/crates/ra_assists/src/handlers/generate_from_impl_for_enum.rs @@ -22,7 +22,7 @@ use crate::{utils::FamousDefs, AssistContext, AssistId, AssistKind, Assists}; // } // ``` pub(crate) fn generate_from_impl_for_enum(acc: &mut Assists, ctx: &AssistContext) -> Option<()> { - let variant = ctx.find_node_at_offset::()?; + let variant = ctx.find_node_at_offset::()?; let variant_name = variant.name()?; let enum_name = variant.parent_enum().name()?; let field_list = match variant.kind() { @@ -69,7 +69,7 @@ impl From<{0}> for {1} {{ fn existing_from_impl( sema: &'_ hir::Semantics<'_, RootDatabase>, - variant: &ast::EnumVariant, + variant: &ast::Variant, ) -> Option<()> { let variant = sema.to_def(variant)?; let enum_ = variant.parent_enum(sema.db); diff --git a/crates/ra_hir/src/has_source.rs b/crates/ra_hir/src/has_source.rs index 88399f7247f..1c57475816d 100644 --- a/crates/ra_hir/src/has_source.rs +++ b/crates/ra_hir/src/has_source.rs @@ -75,8 +75,8 @@ impl HasSource for Enum { } } impl HasSource for EnumVariant { - type Ast = ast::EnumVariant; - fn source(self, db: &dyn HirDatabase) -> InFile { + type Ast = ast::Variant; + fn source(self, db: &dyn HirDatabase) -> InFile { self.parent.id.child_source(db.upcast()).map(|map| map[self.id].clone()) } } diff --git a/crates/ra_hir/src/semantics.rs b/crates/ra_hir/src/semantics.rs index f8e70fe2748..e18df253715 100644 --- a/crates/ra_hir/src/semantics.rs +++ b/crates/ra_hir/src/semantics.rs @@ -591,7 +591,7 @@ to_def_impls![ (crate::Function, ast::Fn, fn_to_def), (crate::Field, ast::RecordField, record_field_to_def), (crate::Field, ast::TupleField, tuple_field_to_def), - (crate::EnumVariant, ast::EnumVariant, enum_variant_to_def), + (crate::EnumVariant, ast::Variant, enum_variant_to_def), (crate::TypeParam, ast::TypeParam, type_param_to_def), (crate::MacroDef, ast::MacroCall, macro_call_to_def), // this one is dubious, not all calls are macros (crate::Local, ast::BindPat, bind_pat_to_def), diff --git a/crates/ra_hir/src/semantics/source_to_def.rs b/crates/ra_hir/src/semantics/source_to_def.rs index 9f81b952f97..b85a1268014 100644 --- a/crates/ra_hir/src/semantics/source_to_def.rs +++ b/crates/ra_hir/src/semantics/source_to_def.rs @@ -100,9 +100,9 @@ impl SourceToDefCtx<'_, '_> { } pub(super) fn enum_variant_to_def( &mut self, - src: InFile, + src: InFile, ) -> Option { - self.to_def(src, keys::ENUM_VARIANT) + self.to_def(src, keys::VARIANT) } pub(super) fn bind_pat_to_def( &mut self, diff --git a/crates/ra_hir_def/src/adt.rs b/crates/ra_hir_def/src/adt.rs index df98ded62db..231c1dfab8e 100644 --- a/crates/ra_hir_def/src/adt.rs +++ b/crates/ra_hir_def/src/adt.rs @@ -112,7 +112,7 @@ impl EnumData { impl HasChildSource for EnumId { type ChildId = LocalEnumVariantId; - type Value = ast::EnumVariant; + type Value = ast::Variant; fn child_source(&self, db: &dyn DefDatabase) -> InFile> { let src = self.lookup(db).source(db); let mut trace = Trace::new_for_map(); @@ -123,7 +123,7 @@ impl HasChildSource for EnumId { fn lower_enum( db: &dyn DefDatabase, - trace: &mut Trace, + trace: &mut Trace, ast: &InFile, module_id: ModuleId, ) { diff --git a/crates/ra_hir_def/src/child_by_source.rs b/crates/ra_hir_def/src/child_by_source.rs index a885ec96d6b..dcb00a1d9a0 100644 --- a/crates/ra_hir_def/src/child_by_source.rs +++ b/crates/ra_hir_def/src/child_by_source.rs @@ -162,7 +162,7 @@ impl ChildBySource for EnumId { let arena_map = arena_map.as_ref(); for (local_id, source) in arena_map.value.iter() { let id = EnumVariantId { parent: *self, local_id }; - res[keys::ENUM_VARIANT].insert(arena_map.with_value(source.clone()), id) + res[keys::VARIANT].insert(arena_map.with_value(source.clone()), id) } res diff --git a/crates/ra_hir_def/src/item_tree/lower.rs b/crates/ra_hir_def/src/item_tree/lower.rs index da72384166a..6d963c85225 100644 --- a/crates/ra_hir_def/src/item_tree/lower.rs +++ b/crates/ra_hir_def/src/item_tree/lower.rs @@ -259,7 +259,7 @@ impl Ctx { Some(id(self.data().enums.alloc(res))) } - fn lower_variants(&mut self, variants: &ast::EnumVariantList) -> IdRange { + fn lower_variants(&mut self, variants: &ast::VariantList) -> IdRange { let start = self.next_variant_idx(); for variant in variants.variants() { if let Some(data) = self.lower_variant(&variant) { @@ -271,7 +271,7 @@ impl Ctx { IdRange::new(start..end) } - fn lower_variant(&mut self, variant: &ast::EnumVariant) -> Option { + fn lower_variant(&mut self, variant: &ast::Variant) -> Option { let name = variant.name()?.as_name(); let fields = self.lower_fields(&variant.kind()); let res = Variant { name, fields }; diff --git a/crates/ra_hir_def/src/keys.rs b/crates/ra_hir_def/src/keys.rs index 2695e8c24d2..c2a03dfedae 100644 --- a/crates/ra_hir_def/src/keys.rs +++ b/crates/ra_hir_def/src/keys.rs @@ -24,7 +24,7 @@ pub const STRUCT: Key = Key::new(); pub const UNION: Key = Key::new(); pub const ENUM: Key = Key::new(); -pub const ENUM_VARIANT: Key = Key::new(); +pub const VARIANT: Key = Key::new(); pub const TUPLE_FIELD: Key = Key::new(); pub const RECORD_FIELD: Key = Key::new(); pub const TYPE_PARAM: Key = Key::new(); diff --git a/crates/ra_ide/src/display/navigation_target.rs b/crates/ra_ide/src/display/navigation_target.rs index 02fefd6bb2a..c30b91fe0aa 100644 --- a/crates/ra_ide/src/display/navigation_target.rs +++ b/crates/ra_ide/src/display/navigation_target.rs @@ -388,7 +388,7 @@ pub(crate) fn docs_from_symbol(db: &RootDatabase, symbol: &FileSymbol) -> Option ast::ConstDef(it) => it.doc_comment_text(), ast::StaticDef(it) => it.doc_comment_text(), ast::RecordField(it) => it.doc_comment_text(), - ast::EnumVariant(it) => it.doc_comment_text(), + ast::Variant(it) => it.doc_comment_text(), ast::MacroCall(it) => it.doc_comment_text(), _ => None, } @@ -413,7 +413,7 @@ pub(crate) fn description_from_symbol(db: &RootDatabase, symbol: &FileSymbol) -> ast::ConstDef(it) => it.short_label(), ast::StaticDef(it) => it.short_label(), ast::RecordField(it) => it.short_label(), - ast::EnumVariant(it) => it.short_label(), + ast::Variant(it) => it.short_label(), _ => None, } } diff --git a/crates/ra_ide/src/display/short_label.rs b/crates/ra_ide/src/display/short_label.rs index 5bf70937fa7..ddf1059eecd 100644 --- a/crates/ra_ide/src/display/short_label.rs +++ b/crates/ra_ide/src/display/short_label.rs @@ -71,7 +71,7 @@ impl ShortLabel for ast::RecordField { } } -impl ShortLabel for ast::EnumVariant { +impl ShortLabel for ast::Variant { fn short_label(&self) -> Option { Some(self.name()?.text().to_string()) } diff --git a/crates/ra_ide/src/extend_selection.rs b/crates/ra_ide/src/extend_selection.rs index 04a7f0ac4bd..fc81b48ccef 100644 --- a/crates/ra_ide/src/extend_selection.rs +++ b/crates/ra_ide/src/extend_selection.rs @@ -42,7 +42,7 @@ fn try_extend_selection( RECORD_FIELD_LIST, TUPLE_FIELD_LIST, RECORD_EXPR_FIELD_LIST, - ENUM_VARIANT_LIST, + VARIANT_LIST, USE_TREE_LIST, GENERIC_PARAM_LIST, TYPE_ARG_LIST, diff --git a/crates/ra_ide/src/file_structure.rs b/crates/ra_ide/src/file_structure.rs index c909f96aa49..43202499d7a 100644 --- a/crates/ra_ide/src/file_structure.rs +++ b/crates/ra_ide/src/file_structure.rs @@ -129,7 +129,7 @@ fn structure_node(node: &SyntaxNode) -> Option { ast::Struct(it) => decl(it), ast::Union(it) => decl(it), ast::Enum(it) => decl(it), - ast::EnumVariant(it) => decl(it), + ast::Variant(it) => decl(it), ast::TraitDef(it) => decl(it), ast::Module(it) => decl(it), ast::TypeAlias(it) => { @@ -319,7 +319,7 @@ fn very_obsolete() {} label: "X", navigation_range: 169..170, node_range: 169..170, - kind: ENUM_VARIANT, + kind: VARIANT, detail: None, deprecated: false, }, @@ -330,7 +330,7 @@ fn very_obsolete() {} label: "Y", navigation_range: 172..173, node_range: 172..178, - kind: ENUM_VARIANT, + kind: VARIANT, detail: None, deprecated: false, }, diff --git a/crates/ra_ide/src/folding_ranges.rs b/crates/ra_ide/src/folding_ranges.rs index 8dcce9f56f9..5a6e17936f9 100644 --- a/crates/ra_ide/src/folding_ranges.rs +++ b/crates/ra_ide/src/folding_ranges.rs @@ -93,7 +93,7 @@ fn fold_kind(kind: SyntaxKind) -> Option { | USE_TREE_LIST | BLOCK_EXPR | MATCH_ARM_LIST - | ENUM_VARIANT_LIST + | VARIANT_LIST | TOKEN_TREE => Some(FoldKind::Block), _ => None, } diff --git a/crates/ra_ide/src/references.rs b/crates/ra_ide/src/references.rs index 2a62dab6cb1..519e4bf1a25 100644 --- a/crates/ra_ide/src/references.rs +++ b/crates/ra_ide/src/references.rs @@ -390,7 +390,7 @@ enum Foo { } "#, ); - check_result(refs, "B ENUM_VARIANT FileId(1) 22..23 22..23 Other", &[]); + check_result(refs, "B VARIANT FileId(1) 22..23 22..23 Other", &[]); } #[test] diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index 7e2833bd5e2..ce890c81677 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -716,7 +716,7 @@ fn highlight_name_by_syntax(name: ast::Name) -> Highlight { FN => HighlightTag::Function, CONST_DEF => HighlightTag::Constant, STATIC_DEF => HighlightTag::Static, - ENUM_VARIANT => HighlightTag::EnumVariant, + VARIANT => HighlightTag::EnumVariant, BIND_PAT => HighlightTag::Local, _ => default, }; diff --git a/crates/ra_ide_db/src/defs.rs b/crates/ra_ide_db/src/defs.rs index 586b3d75098..635cf706c2e 100644 --- a/crates/ra_ide_db/src/defs.rs +++ b/crates/ra_ide_db/src/defs.rs @@ -170,7 +170,7 @@ pub fn classify_name(sema: &Semantics, name: &ast::Name) -> Option let def: hir::Static = sema.to_def(&it)?; Some(NameClass::Definition(Definition::ModuleDef(def.into()))) }, - ast::EnumVariant(it) => { + ast::Variant(it) => { let def: hir::EnumVariant = sema.to_def(&it)?; Some(NameClass::Definition(Definition::ModuleDef(def.into()))) }, diff --git a/crates/ra_parser/src/grammar.rs b/crates/ra_parser/src/grammar.rs index 03041d1108e..22a7acdf31c 100644 --- a/crates/ra_parser/src/grammar.rs +++ b/crates/ra_parser/src/grammar.rs @@ -144,7 +144,7 @@ pub(crate) fn reparser( BLOCK_EXPR => expressions::block_expr, RECORD_FIELD_LIST => items::record_field_def_list, RECORD_EXPR_FIELD_LIST => items::record_field_list, - ENUM_VARIANT_LIST => items::enum_variant_list, + VARIANT_LIST => items::enum_variant_list, MATCH_ARM_LIST => items::match_arm_list, USE_TREE_LIST => items::use_tree_list, EXTERN_ITEM_LIST => items::extern_item_list, diff --git a/crates/ra_parser/src/grammar/items/adt.rs b/crates/ra_parser/src/grammar/items/adt.rs index aeb7ce86b9d..addfb59d4b1 100644 --- a/crates/ra_parser/src/grammar/items/adt.rs +++ b/crates/ra_parser/src/grammar/items/adt.rs @@ -91,7 +91,7 @@ pub(crate) fn enum_variant_list(p: &mut Parser) { if p.eat(T![=]) { expressions::expr(p); } - var.complete(p, ENUM_VARIANT); + var.complete(p, VARIANT); } else { var.abandon(p); p.err_and_bump("expected enum variant"); @@ -101,7 +101,7 @@ pub(crate) fn enum_variant_list(p: &mut Parser) { } } p.expect(T!['}']); - m.complete(p, ENUM_VARIANT_LIST); + m.complete(p, VARIANT_LIST); } pub(crate) fn record_field_def_list(p: &mut Parser) { diff --git a/crates/ra_parser/src/syntax_kind/generated.rs b/crates/ra_parser/src/syntax_kind/generated.rs index fde9e55f1ef..3b82347f388 100644 --- a/crates/ra_parser/src/syntax_kind/generated.rs +++ b/crates/ra_parser/src/syntax_kind/generated.rs @@ -206,12 +206,12 @@ pub enum SyntaxKind { BIN_EXPR, EXTERN_BLOCK, EXTERN_ITEM_LIST, - ENUM_VARIANT, + VARIANT, RECORD_FIELD_LIST, RECORD_FIELD, TUPLE_FIELD_LIST, TUPLE_FIELD, - ENUM_VARIANT_LIST, + VARIANT_LIST, ITEM_LIST, ASSOC_ITEM_LIST, ATTR, diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs index 1d1452546f7..6613b54ba59 100644 --- a/crates/ra_syntax/src/ast/generated/nodes.rs +++ b/crates/ra_syntax/src/ast/generated/nodes.rs @@ -53,7 +53,7 @@ impl ast::VisibilityOwner for Enum {} impl ast::GenericParamsOwner for Enum {} impl Enum { pub fn enum_token(&self) -> Option { support::token(&self.syntax, T![enum]) } - pub fn variant_list(&self) -> Option { support::child(&self.syntax) } + pub fn variant_list(&self) -> Option { support::child(&self.syntax) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct ExternBlock { @@ -427,22 +427,22 @@ impl TupleField { pub fn type_ref(&self) -> Option { support::child(&self.syntax) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct EnumVariantList { +pub struct VariantList { pub(crate) syntax: SyntaxNode, } -impl EnumVariantList { +impl VariantList { pub fn l_curly_token(&self) -> Option { support::token(&self.syntax, T!['{']) } - pub fn variants(&self) -> AstChildren { support::children(&self.syntax) } + pub fn variants(&self) -> AstChildren { support::children(&self.syntax) } pub fn r_curly_token(&self) -> Option { support::token(&self.syntax, T!['}']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct EnumVariant { +pub struct Variant { pub(crate) syntax: SyntaxNode, } -impl ast::AttrsOwner for EnumVariant {} -impl ast::NameOwner for EnumVariant {} -impl ast::VisibilityOwner for EnumVariant {} -impl EnumVariant { +impl ast::AttrsOwner for Variant {} +impl ast::NameOwner for Variant {} +impl ast::VisibilityOwner for Variant {} +impl Variant { pub fn field_list(&self) -> Option { support::child(&self.syntax) } pub fn eq_token(&self) -> Option { support::token(&self.syntax, T![=]) } pub fn expr(&self) -> Option { support::child(&self.syntax) } @@ -1806,8 +1806,8 @@ impl AstNode for TupleField { } fn syntax(&self) -> &SyntaxNode { &self.syntax } } -impl AstNode for EnumVariantList { - fn can_cast(kind: SyntaxKind) -> bool { kind == ENUM_VARIANT_LIST } +impl AstNode for VariantList { + fn can_cast(kind: SyntaxKind) -> bool { kind == VARIANT_LIST } fn cast(syntax: SyntaxNode) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) @@ -1817,8 +1817,8 @@ impl AstNode for EnumVariantList { } fn syntax(&self) -> &SyntaxNode { &self.syntax } } -impl AstNode for EnumVariant { - fn can_cast(kind: SyntaxKind) -> bool { kind == ENUM_VARIANT } +impl AstNode for Variant { + fn can_cast(kind: SyntaxKind) -> bool { kind == VARIANT } fn cast(syntax: SyntaxNode) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) @@ -3640,12 +3640,12 @@ impl std::fmt::Display for TupleField { std::fmt::Display::fmt(self.syntax(), f) } } -impl std::fmt::Display for EnumVariantList { +impl std::fmt::Display for VariantList { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(self.syntax(), f) } } -impl std::fmt::Display for EnumVariant { +impl std::fmt::Display for Variant { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(self.syntax(), f) } diff --git a/crates/ra_syntax/src/ast/node_ext.rs b/crates/ra_syntax/src/ast/node_ext.rs index 02e6e52c243..05ec49cecf7 100644 --- a/crates/ra_syntax/src/ast/node_ext.rs +++ b/crates/ra_syntax/src/ast/node_ext.rs @@ -247,7 +247,7 @@ impl ast::RecordFieldPat { } } -impl ast::EnumVariant { +impl ast::Variant { pub fn parent_enum(&self) -> ast::Enum { self.syntax() .parent() @@ -480,7 +480,7 @@ impl ast::DocCommentsOwner for ast::Union {} impl ast::DocCommentsOwner for ast::RecordField {} impl ast::DocCommentsOwner for ast::TupleField {} impl ast::DocCommentsOwner for ast::Enum {} -impl ast::DocCommentsOwner for ast::EnumVariant {} +impl ast::DocCommentsOwner for ast::Variant {} impl ast::DocCommentsOwner for ast::TraitDef {} impl ast::DocCommentsOwner for ast::Module {} impl ast::DocCommentsOwner for ast::StaticDef {} diff --git a/crates/ra_syntax/src/parsing/text_tree_sink.rs b/crates/ra_syntax/src/parsing/text_tree_sink.rs index faffd0d32b8..c586dc320a9 100644 --- a/crates/ra_syntax/src/parsing/text_tree_sink.rs +++ b/crates/ra_syntax/src/parsing/text_tree_sink.rs @@ -146,7 +146,7 @@ fn n_attached_trivias<'a>( trivias: impl Iterator, ) -> usize { match kind { - MACRO_CALL | CONST_DEF | TYPE_ALIAS | STRUCT | ENUM | ENUM_VARIANT | FN | TRAIT_DEF + MACRO_CALL | CONST_DEF | TYPE_ALIAS | STRUCT | ENUM | VARIANT | FN | TRAIT_DEF | MODULE | RECORD_FIELD | STATIC_DEF => { let mut res = 0; let mut trivias = trivias.enumerate().peekable(); diff --git a/crates/ra_syntax/test_data/parser/err/0025_nope.rast b/crates/ra_syntax/test_data/parser/err/0025_nope.rast index 94456e48ca4..fca64655730 100644 --- a/crates/ra_syntax/test_data/parser/err/0025_nope.rast +++ b/crates/ra_syntax/test_data/parser/err/0025_nope.rast @@ -17,15 +17,15 @@ SOURCE_FILE@0..575 NAME@21..25 IDENT@21..25 "Test" WHITESPACE@25..26 " " - ENUM_VARIANT_LIST@26..152 + VARIANT_LIST@26..152 L_CURLY@26..27 "{" WHITESPACE@27..36 "\n " - ENUM_VARIANT@36..40 + VARIANT@36..40 NAME@36..40 IDENT@36..40 "Var1" COMMA@40..41 "," WHITESPACE@41..50 "\n " - ENUM_VARIANT@50..62 + VARIANT@50..62 NAME@50..54 IDENT@50..54 "Var2" TUPLE_FIELD_LIST@54..62 @@ -39,7 +39,7 @@ SOURCE_FILE@0..575 R_PAREN@61..62 ")" COMMA@62..63 "," WHITESPACE@63..72 "\n " - ENUM_VARIANT@72..145 + VARIANT@72..145 NAME@72..76 IDENT@72..76 "Var3" WHITESPACE@76..77 " " @@ -85,10 +85,10 @@ SOURCE_FILE@0..575 NAME@196..201 IDENT@196..201 "Test2" WHITESPACE@201..202 " " - ENUM_VARIANT_LIST@202..223 + VARIANT_LIST@202..223 L_CURLY@202..203 "{" WHITESPACE@203..212 "\n " - ENUM_VARIANT@212..216 + VARIANT@212..216 NAME@212..216 IDENT@212..216 "Fine" COMMA@216..217 "," @@ -101,10 +101,10 @@ SOURCE_FILE@0..575 NAME@234..239 IDENT@234..239 "Test3" WHITESPACE@239..240 " " - ENUM_VARIANT_LIST@240..300 + VARIANT_LIST@240..300 L_CURLY@240..241 "{" WHITESPACE@241..250 "\n " - ENUM_VARIANT@250..293 + VARIANT@250..293 NAME@250..259 IDENT@250..259 "StillFine" WHITESPACE@259..260 " " @@ -140,10 +140,10 @@ SOURCE_FILE@0..575 NAME@343..348 IDENT@343..348 "Test4" WHITESPACE@348..349 " " - ENUM_VARIANT_LIST@349..453 + VARIANT_LIST@349..453 L_CURLY@349..350 "{" WHITESPACE@350..363 "\n " - ENUM_VARIANT@363..372 + VARIANT@363..372 NAME@363..367 IDENT@363..367 "Nope" TUPLE_FIELD_LIST@367..372 diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast b/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast index 25e6cc1701e..f2561abd69b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast @@ -4,7 +4,7 @@ SOURCE_FILE@0..94 WHITESPACE@4..5 " " NAME@5..6 IDENT@5..6 "F" - ENUM_VARIANT_LIST@6..8 + VARIANT_LIST@6..8 L_CURLY@6..7 "{" R_CURLY@7..8 "}" WHITESPACE@8..9 "\n" diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast index 9cc8172e074..429a0506e1a 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast @@ -17,15 +17,15 @@ SOURCE_FILE@0..111 NAME@32..41 IDENT@32..41 "LocalEnum" WHITESPACE@41..42 " " - ENUM_VARIANT_LIST@42..75 + VARIANT_LIST@42..75 L_CURLY@42..43 "{" WHITESPACE@43..52 "\n " - ENUM_VARIANT@52..55 + VARIANT@52..55 NAME@52..55 IDENT@52..55 "One" COMMA@55..56 "," WHITESPACE@56..65 "\n " - ENUM_VARIANT@65..68 + VARIANT@65..68 NAME@65..68 IDENT@65..68 "Two" COMMA@68..69 "," diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast b/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast index 0331558d29e..a2e05eb2e2a 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast @@ -5,10 +5,10 @@ SOURCE_FILE@0..23 NAME@5..6 IDENT@5..6 "E" WHITESPACE@6..7 " " - ENUM_VARIANT_LIST@7..22 + VARIANT_LIST@7..22 L_CURLY@7..8 "{" WHITESPACE@8..9 " " - ENUM_VARIANT@9..20 + VARIANT@9..20 NAME@9..10 IDENT@9..10 "X" TUPLE_FIELD_LIST@10..15 diff --git a/crates/ra_syntax/test_data/parser/ok/0019_enums.rast b/crates/ra_syntax/test_data/parser/ok/0019_enums.rast index 1ffcffc1a04..c3df008146d 100644 --- a/crates/ra_syntax/test_data/parser/ok/0019_enums.rast +++ b/crates/ra_syntax/test_data/parser/ok/0019_enums.rast @@ -5,7 +5,7 @@ SOURCE_FILE@0..182 NAME@5..7 IDENT@5..7 "E1" WHITESPACE@7..8 " " - ENUM_VARIANT_LIST@8..11 + VARIANT_LIST@8..11 L_CURLY@8..9 "{" WHITESPACE@9..10 "\n" R_CURLY@10..11 "}" @@ -22,7 +22,7 @@ SOURCE_FILE@0..182 IDENT@21..22 "T" R_ANGLE@22..23 ">" WHITESPACE@23..24 " " - ENUM_VARIANT_LIST@24..27 + VARIANT_LIST@24..27 L_CURLY@24..25 "{" WHITESPACE@25..26 "\n" R_CURLY@26..27 "}" @@ -33,10 +33,10 @@ SOURCE_FILE@0..182 NAME@34..36 IDENT@34..36 "E3" WHITESPACE@36..37 " " - ENUM_VARIANT_LIST@37..46 + VARIANT_LIST@37..46 L_CURLY@37..38 "{" WHITESPACE@38..43 "\n " - ENUM_VARIANT@43..44 + VARIANT@43..44 NAME@43..44 IDENT@43..44 "X" WHITESPACE@44..45 "\n" @@ -48,10 +48,10 @@ SOURCE_FILE@0..182 NAME@53..55 IDENT@53..55 "E4" WHITESPACE@55..56 " " - ENUM_VARIANT_LIST@56..66 + VARIANT_LIST@56..66 L_CURLY@56..57 "{" WHITESPACE@57..62 "\n " - ENUM_VARIANT@62..63 + VARIANT@62..63 NAME@62..63 IDENT@62..63 "X" COMMA@63..64 "," @@ -64,15 +64,15 @@ SOURCE_FILE@0..182 NAME@73..75 IDENT@73..75 "E5" WHITESPACE@75..76 " " - ENUM_VARIANT_LIST@76..181 + VARIANT_LIST@76..181 L_CURLY@76..77 "{" WHITESPACE@77..82 "\n " - ENUM_VARIANT@82..83 + VARIANT@82..83 NAME@82..83 IDENT@82..83 "A" COMMA@83..84 "," WHITESPACE@84..89 "\n " - ENUM_VARIANT@89..95 + VARIANT@89..95 NAME@89..90 IDENT@89..90 "B" WHITESPACE@90..91 " " @@ -82,7 +82,7 @@ SOURCE_FILE@0..182 INT_NUMBER@93..95 "92" COMMA@95..96 "," WHITESPACE@96..101 "\n " - ENUM_VARIANT@101..146 + VARIANT@101..146 NAME@101..102 IDENT@101..102 "C" WHITESPACE@102..103 " " @@ -119,7 +119,7 @@ SOURCE_FILE@0..182 R_CURLY@145..146 "}" COMMA@146..147 "," WHITESPACE@147..152 "\n " - ENUM_VARIANT@152..156 + VARIANT@152..156 NAME@152..153 IDENT@152..153 "F" WHITESPACE@153..154 " " @@ -128,7 +128,7 @@ SOURCE_FILE@0..182 R_CURLY@155..156 "}" COMMA@156..157 "," WHITESPACE@157..162 "\n " - ENUM_VARIANT@162..169 + VARIANT@162..169 NAME@162..163 IDENT@162..163 "D" TUPLE_FIELD_LIST@163..169 @@ -143,7 +143,7 @@ SOURCE_FILE@0..182 R_PAREN@168..169 ")" COMMA@169..170 "," WHITESPACE@170..175 "\n " - ENUM_VARIANT@175..178 + VARIANT@175..178 NAME@175..176 IDENT@175..176 "E" TUPLE_FIELD_LIST@176..178 diff --git a/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast b/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast index 9db4f0aa101..7a54fa11320 100644 --- a/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast +++ b/crates/ra_syntax/test_data/parser/ok/0047_minus_in_inner_pattern.rast @@ -262,10 +262,10 @@ SOURCE_FILE@0..395 NAME@348..349 IDENT@348..349 "A" WHITESPACE@349..350 " " - ENUM_VARIANT_LIST@350..367 + VARIANT_LIST@350..367 L_CURLY@350..351 "{" WHITESPACE@351..356 "\n " - ENUM_VARIANT@356..365 + VARIANT@356..365 NAME@356..357 IDENT@356..357 "B" TUPLE_FIELD_LIST@357..365 diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs index 62acbfb9189..dcd81da6ec2 100644 --- a/crates/rust-analyzer/src/to_proto.rs +++ b/crates/rust-analyzer/src/to_proto.rs @@ -34,7 +34,7 @@ pub(crate) fn symbol_kind(syntax_kind: SyntaxKind) -> lsp_types::SymbolKind { SyntaxKind::FN => lsp_types::SymbolKind::Function, SyntaxKind::STRUCT => lsp_types::SymbolKind::Struct, SyntaxKind::ENUM => lsp_types::SymbolKind::Enum, - SyntaxKind::ENUM_VARIANT => lsp_types::SymbolKind::EnumMember, + SyntaxKind::VARIANT => lsp_types::SymbolKind::EnumMember, SyntaxKind::TRAIT_DEF => lsp_types::SymbolKind::Interface, SyntaxKind::MACRO_CALL => lsp_types::SymbolKind::Function, SyntaxKind::MODULE => lsp_types::SymbolKind::Module, diff --git a/xtask/src/ast_src.rs b/xtask/src/ast_src.rs index fe8381e4172..94f4d17aa49 100644 --- a/xtask/src/ast_src.rs +++ b/xtask/src/ast_src.rs @@ -179,12 +179,12 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc { "BIN_EXPR", "EXTERN_BLOCK", "EXTERN_ITEM_LIST", - "ENUM_VARIANT", + "VARIANT", "RECORD_FIELD_LIST", "RECORD_FIELD", "TUPLE_FIELD_LIST", "TUPLE_FIELD", - "ENUM_VARIANT_LIST", + "VARIANT_LIST", "ITEM_LIST", "ASSOC_ITEM_LIST", "ATTR", diff --git a/xtask/src/codegen/rust.ungram b/xtask/src/codegen/rust.ungram index 9c6797cb765..48d4f4b4a04 100644 --- a/xtask/src/codegen/rust.ungram +++ b/xtask/src/codegen/rust.ungram @@ -100,12 +100,12 @@ FieldList = Enum = Attr* Visibility? 'enum' Name GenericParamList? WhereClause? - variant_list:EnumVariantList + VariantList -EnumVariantList = - '{' variants:EnumVariant* '}' +VariantList = + '{' Variant* '}' -EnumVariant = +Variant = Attr* Visibility? Name FieldList ('=' Expr)? Union = From 6b25f640a6ad8e2322b5cc0664223b742459336d Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 30 Jul 2020 17:57:58 +0200 Subject: [PATCH 3/5] Finalize Enum grammar --- xtask/src/codegen/rust.ungram | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xtask/src/codegen/rust.ungram b/xtask/src/codegen/rust.ungram index 48d4f4b4a04..b653c14a7fc 100644 --- a/xtask/src/codegen/rust.ungram +++ b/xtask/src/codegen/rust.ungram @@ -103,7 +103,7 @@ Enum = VariantList VariantList = - '{' Variant* '}' + '{' (Variant (',' Variant)* ','?)? '}' Variant = Attr* Visibility? Name FieldList ('=' Expr)? From 3cd4112bdc924c132cb0eab9d064511a215421ec Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 30 Jul 2020 18:02:20 +0200 Subject: [PATCH 4/5] Finalize const&static grammar --- .../src/handlers/add_missing_impl_members.rs | 4 +- .../src/handlers/change_visibility.rs | 4 +- crates/ra_assists/src/utils.rs | 2 +- crates/ra_hir/src/has_source.rs | 8 +- crates/ra_hir/src/semantics.rs | 4 +- crates/ra_hir/src/semantics/source_to_def.rs | 12 +-- crates/ra_hir_def/src/body/lower.rs | 4 +- crates/ra_hir_def/src/item_tree.rs | 8 +- crates/ra_hir_def/src/item_tree/lower.rs | 16 ++-- crates/ra_hir_def/src/item_tree/tests.rs | 2 +- crates/ra_hir_def/src/keys.rs | 4 +- .../src/completion/complete_trait_impl.rs | 8 +- crates/ra_ide/src/display.rs | 2 +- .../ra_ide/src/display/navigation_target.rs | 8 +- crates/ra_ide/src/display/short_label.rs | 4 +- crates/ra_ide/src/file_structure.rs | 8 +- crates/ra_ide/src/syntax_highlighting.rs | 4 +- crates/ra_ide_db/src/defs.rs | 4 +- crates/ra_ide_db/src/symbol_index.rs | 4 +- crates/ra_parser/src/grammar/items/consts.rs | 4 +- crates/ra_parser/src/syntax_kind/generated.rs | 4 +- crates/ra_syntax/src/ast.rs | 2 +- crates/ra_syntax/src/ast/generated/nodes.rs | 85 ++++++++++--------- crates/ra_syntax/src/ast/node_ext.rs | 4 +- .../ra_syntax/src/parsing/text_tree_sink.rs | 4 +- crates/ra_syntax/src/validation.rs | 4 +- .../parser/err/0037_visibility_in_traits.rast | 2 +- .../parser/err/0043_default_const.rast | 2 +- .../inline/err/0010_wrong_order_fns.rast | 2 +- .../inline/err/0013_static_underscore.rast | 2 +- .../inline/ok/0001_trait_item_list.rast | 2 +- .../parser/inline/ok/0021_impl_item_list.rast | 2 +- .../parser/inline/ok/0150_array_attrs.rast | 2 +- .../parser/ok/0023_static_items.rast | 4 +- .../test_data/parser/ok/0024_const_item.rast | 6 +- .../parser/ok/0066_default_const.rast | 2 +- crates/rust-analyzer/src/to_proto.rs | 4 +- xtask/src/ast_src.rs | 4 +- xtask/src/codegen/rust.ungram | 24 +++--- 39 files changed, 138 insertions(+), 137 deletions(-) diff --git a/crates/ra_assists/src/handlers/add_missing_impl_members.rs b/crates/ra_assists/src/handlers/add_missing_impl_members.rs index 1e4d4748c2a..1ab176c2612 100644 --- a/crates/ra_assists/src/handlers/add_missing_impl_members.rs +++ b/crates/ra_assists/src/handlers/add_missing_impl_members.rs @@ -120,7 +120,7 @@ fn add_missing_impl_members_inner( match item { ast::AssocItem::Fn(def) => def.name(), ast::AssocItem::TypeAlias(def) => def.name(), - ast::AssocItem::ConstDef(def) => def.name(), + ast::AssocItem::Const(def) => def.name(), ast::AssocItem::MacroCall(_) => None, } .map(|it| it.text().clone()) @@ -131,7 +131,7 @@ fn add_missing_impl_members_inner( .map(|i| match i { hir::AssocItem::Function(i) => ast::AssocItem::Fn(i.source(ctx.db()).value), hir::AssocItem::TypeAlias(i) => ast::AssocItem::TypeAlias(i.source(ctx.db()).value), - hir::AssocItem::Const(i) => ast::AssocItem::ConstDef(i.source(ctx.db()).value), + hir::AssocItem::Const(i) => ast::AssocItem::Const(i.source(ctx.db()).value), }) .filter(|t| def_name(&t).is_some()) .filter(|t| match t { diff --git a/crates/ra_assists/src/handlers/change_visibility.rs b/crates/ra_assists/src/handlers/change_visibility.rs index 44f3e8ee307..76144d7d248 100644 --- a/crates/ra_assists/src/handlers/change_visibility.rs +++ b/crates/ra_assists/src/handlers/change_visibility.rs @@ -1,7 +1,7 @@ use ra_syntax::{ ast::{self, NameOwner, VisibilityOwner}, AstNode, - SyntaxKind::{CONST_DEF, ENUM, FN, MODULE, STATIC_DEF, STRUCT, TRAIT_DEF, VISIBILITY}, + SyntaxKind::{CONST, ENUM, FN, MODULE, STATIC, STRUCT, TRAIT_DEF, VISIBILITY}, T, }; use test_utils::mark; @@ -36,7 +36,7 @@ fn add_vis(acc: &mut Assists, ctx: &AssistContext) -> Option<()> { let (offset, target) = if let Some(keyword) = item_keyword { let parent = keyword.parent(); - let def_kws = vec![CONST_DEF, STATIC_DEF, FN, MODULE, STRUCT, ENUM, TRAIT_DEF]; + let def_kws = vec![CONST, STATIC, FN, MODULE, STRUCT, ENUM, TRAIT_DEF]; // Parent is not a definition, can't add visibility if !def_kws.iter().any(|&def_kw| def_kw == parent.kind()) { return None; diff --git a/crates/ra_assists/src/utils.rs b/crates/ra_assists/src/utils.rs index 748be011b57..337e3474f8c 100644 --- a/crates/ra_assists/src/utils.rs +++ b/crates/ra_assists/src/utils.rs @@ -78,7 +78,7 @@ pub fn get_missing_assoc_items( } } - ast::AssocItem::ConstDef(c) => { + ast::AssocItem::Const(c) => { if let Some(n) = c.name() { impl_fns_consts.insert(n.syntax().to_string()); } diff --git a/crates/ra_hir/src/has_source.rs b/crates/ra_hir/src/has_source.rs index 1c57475816d..9581552e572 100644 --- a/crates/ra_hir/src/has_source.rs +++ b/crates/ra_hir/src/has_source.rs @@ -87,14 +87,14 @@ impl HasSource for Function { } } impl HasSource for Const { - type Ast = ast::ConstDef; - fn source(self, db: &dyn HirDatabase) -> InFile { + type Ast = ast::Const; + fn source(self, db: &dyn HirDatabase) -> InFile { self.id.lookup(db.upcast()).source(db.upcast()) } } impl HasSource for Static { - type Ast = ast::StaticDef; - fn source(self, db: &dyn HirDatabase) -> InFile { + type Ast = ast::Static; + fn source(self, db: &dyn HirDatabase) -> InFile { self.id.lookup(db.upcast()).source(db.upcast()) } } diff --git a/crates/ra_hir/src/semantics.rs b/crates/ra_hir/src/semantics.rs index e18df253715..32a60b7896f 100644 --- a/crates/ra_hir/src/semantics.rs +++ b/crates/ra_hir/src/semantics.rs @@ -586,8 +586,8 @@ to_def_impls![ (crate::Trait, ast::TraitDef, trait_to_def), (crate::ImplDef, ast::ImplDef, impl_to_def), (crate::TypeAlias, ast::TypeAlias, type_alias_to_def), - (crate::Const, ast::ConstDef, const_to_def), - (crate::Static, ast::StaticDef, static_to_def), + (crate::Const, ast::Const, const_to_def), + (crate::Static, ast::Static, static_to_def), (crate::Function, ast::Fn, fn_to_def), (crate::Field, ast::RecordField, record_field_to_def), (crate::Field, ast::TupleField, tuple_field_to_def), diff --git a/crates/ra_hir/src/semantics/source_to_def.rs b/crates/ra_hir/src/semantics/source_to_def.rs index b85a1268014..782a03f9e24 100644 --- a/crates/ra_hir/src/semantics/source_to_def.rs +++ b/crates/ra_hir/src/semantics/source_to_def.rs @@ -83,10 +83,10 @@ impl SourceToDefCtx<'_, '_> { pub(super) fn union_to_def(&mut self, src: InFile) -> Option { self.to_def(src, keys::UNION) } - pub(super) fn static_to_def(&mut self, src: InFile) -> Option { + pub(super) fn static_to_def(&mut self, src: InFile) -> Option { self.to_def(src, keys::STATIC) } - pub(super) fn const_to_def(&mut self, src: InFile) -> Option { + pub(super) fn const_to_def(&mut self, src: InFile) -> Option { self.to_def(src, keys::CONST) } pub(super) fn type_alias_to_def(&mut self, src: InFile) -> Option { @@ -178,11 +178,11 @@ impl SourceToDefCtx<'_, '_> { let def = self.union_to_def(container.with_value(it))?; VariantId::from(def).into() }, - ast::StaticDef(it) => { + ast::Static(it) => { let def = self.static_to_def(container.with_value(it))?; DefWithBodyId::from(def).into() }, - ast::ConstDef(it) => { + ast::Const(it) => { let def = self.const_to_def(container.with_value(it))?; DefWithBodyId::from(def).into() }, @@ -222,8 +222,8 @@ impl SourceToDefCtx<'_, '_> { for container in src.cloned().ancestors_with_macros(self.db.upcast()).skip(1) { let res: DefWithBodyId = match_ast! { match (container.value) { - ast::ConstDef(it) => self.const_to_def(container.with_value(it))?.into(), - ast::StaticDef(it) => self.static_to_def(container.with_value(it))?.into(), + ast::Const(it) => self.const_to_def(container.with_value(it))?.into(), + ast::Static(it) => self.static_to_def(container.with_value(it))?.into(), ast::Fn(it) => self.fn_to_def(container.with_value(it))?.into(), _ => continue, } diff --git a/crates/ra_hir_def/src/body/lower.rs b/crates/ra_hir_def/src/body/lower.rs index 105299f704b..4a26e6397e9 100644 --- a/crates/ra_hir_def/src/body/lower.rs +++ b/crates/ra_hir_def/src/body/lower.rs @@ -641,14 +641,14 @@ impl ExprCollector<'_> { def.name(), ) } - ast::Item::ConstDef(def) => { + ast::Item::Const(def) => { let id = self.find_inner_item(&def)?; ( ConstLoc { container: container.into(), id }.intern(self.db).into(), def.name(), ) } - ast::Item::StaticDef(def) => { + ast::Item::Static(def) => { let id = self.find_inner_item(&def)?; (StaticLoc { container, id }.intern(self.db).into(), def.name()) } diff --git a/crates/ra_hir_def/src/item_tree.rs b/crates/ra_hir_def/src/item_tree.rs index 24ad4118700..c478a9909dc 100644 --- a/crates/ra_hir_def/src/item_tree.rs +++ b/crates/ra_hir_def/src/item_tree.rs @@ -417,8 +417,8 @@ mod_items! { Struct in structs -> ast::Struct, Union in unions -> ast::Union, Enum in enums -> ast::Enum, - Const in consts -> ast::ConstDef, - Static in statics -> ast::StaticDef, + Const in consts -> ast::Const, + Static in statics -> ast::Static, Trait in traits -> ast::TraitDef, Impl in impls -> ast::ImplDef, TypeAlias in type_aliases -> ast::TypeAlias, @@ -552,7 +552,7 @@ pub struct Const { pub name: Option, pub visibility: RawVisibilityId, pub type_ref: TypeRef, - pub ast_id: FileAstId, + pub ast_id: FileAstId, } #[derive(Debug, Clone, Eq, PartialEq)] @@ -561,7 +561,7 @@ pub struct Static { pub visibility: RawVisibilityId, pub mutable: bool, pub type_ref: TypeRef, - pub ast_id: FileAstId, + pub ast_id: FileAstId, } #[derive(Debug, Clone, Eq, PartialEq)] diff --git a/crates/ra_hir_def/src/item_tree/lower.rs b/crates/ra_hir_def/src/item_tree/lower.rs index 6d963c85225..a94548e5d58 100644 --- a/crates/ra_hir_def/src/item_tree/lower.rs +++ b/crates/ra_hir_def/src/item_tree/lower.rs @@ -83,8 +83,8 @@ impl Ctx { | ast::Item::Enum(_) | ast::Item::Fn(_) | ast::Item::TypeAlias(_) - | ast::Item::ConstDef(_) - | ast::Item::StaticDef(_) + | ast::Item::Const(_) + | ast::Item::Static(_) | ast::Item::MacroCall(_) => { // Skip this if we're already collecting inner items. We'll descend into all nodes // already. @@ -108,8 +108,8 @@ impl Ctx { ast::Item::Enum(ast) => self.lower_enum(ast).map(Into::into), ast::Item::Fn(ast) => self.lower_function(ast).map(Into::into), ast::Item::TypeAlias(ast) => self.lower_type_alias(ast).map(Into::into), - ast::Item::StaticDef(ast) => self.lower_static(ast).map(Into::into), - ast::Item::ConstDef(ast) => Some(self.lower_const(ast).into()), + ast::Item::Static(ast) => self.lower_static(ast).map(Into::into), + ast::Item::Const(ast) => Some(self.lower_const(ast).into()), ast::Item::Module(ast) => self.lower_module(ast).map(Into::into), ast::Item::TraitDef(ast) => self.lower_trait(ast).map(Into::into), ast::Item::ImplDef(ast) => self.lower_impl(ast).map(Into::into), @@ -160,7 +160,7 @@ impl Ctx { match item { ast::AssocItem::Fn(ast) => self.lower_function(ast).map(Into::into), ast::AssocItem::TypeAlias(ast) => self.lower_type_alias(ast).map(Into::into), - ast::AssocItem::ConstDef(ast) => Some(self.lower_const(ast).into()), + ast::AssocItem::Const(ast) => Some(self.lower_const(ast).into()), ast::AssocItem::MacroCall(ast) => self.lower_macro_call(ast).map(Into::into), } } @@ -368,7 +368,7 @@ impl Ctx { Some(id(self.data().type_aliases.alloc(res))) } - fn lower_static(&mut self, static_: &ast::StaticDef) -> Option> { + fn lower_static(&mut self, static_: &ast::Static) -> Option> { let name = static_.name()?.as_name(); let type_ref = self.lower_type_ref_opt(static_.ascribed_type()); let visibility = self.lower_visibility(static_); @@ -378,7 +378,7 @@ impl Ctx { Some(id(self.data().statics.alloc(res))) } - fn lower_const(&mut self, konst: &ast::ConstDef) -> FileItemTreeId { + fn lower_const(&mut self, konst: &ast::Const) -> FileItemTreeId { let name = konst.name().map(|it| it.as_name()); let type_ref = self.lower_type_ref_opt(konst.ascribed_type()); let visibility = self.lower_visibility(konst); @@ -553,7 +553,7 @@ impl Ctx { self.data().functions[func.index].is_unsafe = true; func.into() } - ast::ExternItem::StaticDef(ast) => { + ast::ExternItem::Static(ast) => { let statik = self.lower_static(&ast)?; statik.into() } diff --git a/crates/ra_hir_def/src/item_tree/tests.rs b/crates/ra_hir_def/src/item_tree/tests.rs index bf3474c518c..e61ce58bcc5 100644 --- a/crates/ra_hir_def/src/item_tree/tests.rs +++ b/crates/ra_hir_def/src/item_tree/tests.rs @@ -238,7 +238,7 @@ fn smoke() { > #[Attrs { entries: Some([Attr { path: ModPath { kind: Plain, segments: [Name(Text("assoc_ty"))] }, input: None }]) }] > TypeAlias { name: Name(Text("AssocTy")), visibility: RawVisibilityId("pub(self)"), bounds: [Path(Path { type_anchor: None, mod_path: ModPath { kind: Plain, segments: [Name(Text("Tr"))] }, generic_args: [Some(GenericArgs { args: [Type(Tuple([]))], has_self_type: false, bindings: [] })] })], generic_params: GenericParamsId(4294967295), type_ref: None, ast_id: FileAstId::(8) } > #[Attrs { entries: Some([Attr { path: ModPath { kind: Plain, segments: [Name(Text("assoc_const"))] }, input: None }]) }] - > Const { name: Some(Name(Text("CONST"))), visibility: RawVisibilityId("pub(self)"), type_ref: Path(Path { type_anchor: None, mod_path: ModPath { kind: Plain, segments: [Name(Text("u8"))] }, generic_args: [None] }), ast_id: FileAstId::(9) } + > Const { name: Some(Name(Text("CONST"))), visibility: RawVisibilityId("pub(self)"), type_ref: Path(Path { type_anchor: None, mod_path: ModPath { kind: Plain, segments: [Name(Text("u8"))] }, generic_args: [None] }), ast_id: FileAstId::(9) } > #[Attrs { entries: Some([Attr { path: ModPath { kind: Plain, segments: [Name(Text("assoc_method"))] }, input: None }]) }] > Function { name: Name(Text("method")), visibility: RawVisibilityId("pub(self)"), generic_params: GenericParamsId(4294967295), has_self_param: true, is_unsafe: false, params: [Reference(Path(Path { type_anchor: None, mod_path: ModPath { kind: Plain, segments: [Name(Text("Self"))] }, generic_args: [None] }), Shared)], is_varargs: false, ret_type: Tuple([]), ast_id: FileAstId::(10) } > #[Attrs { entries: Some([Attr { path: ModPath { kind: Plain, segments: [Name(Text("assoc_dfl_method"))] }, input: None }]) }] diff --git a/crates/ra_hir_def/src/keys.rs b/crates/ra_hir_def/src/keys.rs index c2a03dfedae..f75e3bb50f4 100644 --- a/crates/ra_hir_def/src/keys.rs +++ b/crates/ra_hir_def/src/keys.rs @@ -15,8 +15,8 @@ use crate::{ pub type Key = crate::dyn_map::Key, V, AstPtrPolicy>; pub const FUNCTION: Key = Key::new(); -pub const CONST: Key = Key::new(); -pub const STATIC: Key = Key::new(); +pub const CONST: Key = Key::new(); +pub const STATIC: Key = Key::new(); pub const TYPE_ALIAS: Key = Key::new(); pub const IMPL: Key = Key::new(); pub const TRAIT: Key = Key::new(); diff --git a/crates/ra_ide/src/completion/complete_trait_impl.rs b/crates/ra_ide/src/completion/complete_trait_impl.rs index 7d9050a6b65..88679f3bd91 100644 --- a/crates/ra_ide/src/completion/complete_trait_impl.rs +++ b/crates/ra_ide/src/completion/complete_trait_impl.rs @@ -2,7 +2,7 @@ //! //! This module adds the completion items related to implementing associated //! items within a `impl Trait for Struct` block. The current context node -//! must be within either a `FN`, `TYPE_ALIAS`, or `CONST_DEF` node +//! must be within either a `FN`, `TYPE_ALIAS`, or `CONST` node //! and an direct child of an `IMPL_DEF`. //! //! # Examples @@ -87,7 +87,7 @@ pub(crate) fn complete_trait_impl(acc: &mut Completions, ctx: &CompletionContext } } - SyntaxKind::CONST_DEF => { + SyntaxKind::CONST => { for missing_fn in get_missing_assoc_items(&ctx.sema, &impl_def) .into_iter() .filter_map(|item| match item { @@ -108,7 +108,7 @@ fn completion_match(ctx: &CompletionContext) -> Option<(SyntaxNode, ImplDef)> { let (trigger, impl_def_offset) = ctx.token.ancestors().find_map(|p| match p.kind() { SyntaxKind::FN | SyntaxKind::TYPE_ALIAS - | SyntaxKind::CONST_DEF + | SyntaxKind::CONST | SyntaxKind::BLOCK_EXPR => Some((p, 2)), SyntaxKind::NAME_REF => Some((p, 5)), _ => None, @@ -201,7 +201,7 @@ fn add_const_impl( } } -fn make_const_compl_syntax(const_: &ast::ConstDef) -> String { +fn make_const_compl_syntax(const_: &ast::Const) -> String { let const_ = edit::remove_attrs_and_docs(const_); let const_start = const_.syntax().text_range().start(); diff --git a/crates/ra_ide/src/display.rs b/crates/ra_ide/src/display.rs index e81e8436f7e..3efca06496c 100644 --- a/crates/ra_ide/src/display.rs +++ b/crates/ra_ide/src/display.rs @@ -54,7 +54,7 @@ pub(crate) fn function_declaration(node: &ast::Fn) -> String { buf } -pub(crate) fn const_label(node: &ast::ConstDef) -> String { +pub(crate) fn const_label(node: &ast::Const) -> String { let label: String = node .syntax() .children_with_tokens() diff --git a/crates/ra_ide/src/display/navigation_target.rs b/crates/ra_ide/src/display/navigation_target.rs index c30b91fe0aa..9e2c012456c 100644 --- a/crates/ra_ide/src/display/navigation_target.rs +++ b/crates/ra_ide/src/display/navigation_target.rs @@ -385,8 +385,8 @@ pub(crate) fn docs_from_symbol(db: &RootDatabase, symbol: &FileSymbol) -> Option ast::TraitDef(it) => it.doc_comment_text(), ast::Module(it) => it.doc_comment_text(), ast::TypeAlias(it) => it.doc_comment_text(), - ast::ConstDef(it) => it.doc_comment_text(), - ast::StaticDef(it) => it.doc_comment_text(), + ast::Const(it) => it.doc_comment_text(), + ast::Static(it) => it.doc_comment_text(), ast::RecordField(it) => it.doc_comment_text(), ast::Variant(it) => it.doc_comment_text(), ast::MacroCall(it) => it.doc_comment_text(), @@ -410,8 +410,8 @@ pub(crate) fn description_from_symbol(db: &RootDatabase, symbol: &FileSymbol) -> ast::TraitDef(it) => it.short_label(), ast::Module(it) => it.short_label(), ast::TypeAlias(it) => it.short_label(), - ast::ConstDef(it) => it.short_label(), - ast::StaticDef(it) => it.short_label(), + ast::Const(it) => it.short_label(), + ast::Static(it) => it.short_label(), ast::RecordField(it) => it.short_label(), ast::Variant(it) => it.short_label(), _ => None, diff --git a/crates/ra_ide/src/display/short_label.rs b/crates/ra_ide/src/display/short_label.rs index ddf1059eecd..282f362f297 100644 --- a/crates/ra_ide/src/display/short_label.rs +++ b/crates/ra_ide/src/display/short_label.rs @@ -53,13 +53,13 @@ impl ShortLabel for ast::TypeAlias { } } -impl ShortLabel for ast::ConstDef { +impl ShortLabel for ast::Const { fn short_label(&self) -> Option { short_label_from_ascribed_node(self, "const ") } } -impl ShortLabel for ast::StaticDef { +impl ShortLabel for ast::Static { fn short_label(&self) -> Option { short_label_from_ascribed_node(self, "static ") } diff --git a/crates/ra_ide/src/file_structure.rs b/crates/ra_ide/src/file_structure.rs index 43202499d7a..77384b6ecc9 100644 --- a/crates/ra_ide/src/file_structure.rs +++ b/crates/ra_ide/src/file_structure.rs @@ -137,8 +137,8 @@ fn structure_node(node: &SyntaxNode) -> Option { decl_with_type_ref(it, ty) }, ast::RecordField(it) => decl_with_ascription(it), - ast::ConstDef(it) => decl_with_ascription(it), - ast::StaticDef(it) => decl_with_ascription(it), + ast::Const(it) => decl_with_ascription(it), + ast::Static(it) => decl_with_ascription(it), ast::ImplDef(it) => { let target_type = it.target_type()?; let target_trait = it.target_trait(); @@ -350,7 +350,7 @@ fn very_obsolete() {} label: "S", navigation_range: 201..202, node_range: 194..213, - kind: STATIC_DEF, + kind: STATIC, detail: Some( "i32", ), @@ -361,7 +361,7 @@ fn very_obsolete() {} label: "C", navigation_range: 220..221, node_range: 214..232, - kind: CONST_DEF, + kind: CONST, detail: Some( "i32", ), diff --git a/crates/ra_ide/src/syntax_highlighting.rs b/crates/ra_ide/src/syntax_highlighting.rs index ce890c81677..19ec73d2ab3 100644 --- a/crates/ra_ide/src/syntax_highlighting.rs +++ b/crates/ra_ide/src/syntax_highlighting.rs @@ -714,8 +714,8 @@ fn highlight_name_by_syntax(name: ast::Name) -> Highlight { RECORD_FIELD => HighlightTag::Field, MODULE => HighlightTag::Module, FN => HighlightTag::Function, - CONST_DEF => HighlightTag::Constant, - STATIC_DEF => HighlightTag::Static, + CONST => HighlightTag::Constant, + STATIC => HighlightTag::Static, VARIANT => HighlightTag::EnumVariant, BIND_PAT => HighlightTag::Local, _ => default, diff --git a/crates/ra_ide_db/src/defs.rs b/crates/ra_ide_db/src/defs.rs index 635cf706c2e..b908bd741b3 100644 --- a/crates/ra_ide_db/src/defs.rs +++ b/crates/ra_ide_db/src/defs.rs @@ -166,7 +166,7 @@ pub fn classify_name(sema: &Semantics, name: &ast::Name) -> Option let def: hir::Trait = sema.to_def(&it)?; Some(NameClass::Definition(Definition::ModuleDef(def.into()))) }, - ast::StaticDef(it) => { + ast::Static(it) => { let def: hir::Static = sema.to_def(&it)?; Some(NameClass::Definition(Definition::ModuleDef(def.into()))) }, @@ -178,7 +178,7 @@ pub fn classify_name(sema: &Semantics, name: &ast::Name) -> Option let def: hir::Function = sema.to_def(&it)?; Some(NameClass::Definition(Definition::ModuleDef(def.into()))) }, - ast::ConstDef(it) => { + ast::Const(it) => { let def: hir::Const = sema.to_def(&it)?; Some(NameClass::Definition(Definition::ModuleDef(def.into()))) }, diff --git a/crates/ra_ide_db/src/symbol_index.rs b/crates/ra_ide_db/src/symbol_index.rs index 646d338aec3..41b8d07f4d2 100644 --- a/crates/ra_ide_db/src/symbol_index.rs +++ b/crates/ra_ide_db/src/symbol_index.rs @@ -403,8 +403,8 @@ fn to_symbol(node: &SyntaxNode) -> Option<(SmolStr, SyntaxNodePtr, TextRange)> { ast::TraitDef(it) => decl(it), ast::Module(it) => decl(it), ast::TypeAlias(it) => decl(it), - ast::ConstDef(it) => decl(it), - ast::StaticDef(it) => decl(it), + ast::Const(it) => decl(it), + ast::Static(it) => decl(it), ast::MacroCall(it) => { if it.is_macro_rules().is_some() { decl(it) diff --git a/crates/ra_parser/src/grammar/items/consts.rs b/crates/ra_parser/src/grammar/items/consts.rs index 742a7e0562a..35ad766dcee 100644 --- a/crates/ra_parser/src/grammar/items/consts.rs +++ b/crates/ra_parser/src/grammar/items/consts.rs @@ -3,11 +3,11 @@ use super::*; pub(super) fn static_def(p: &mut Parser, m: Marker) { - const_or_static(p, m, T![static], STATIC_DEF) + const_or_static(p, m, T![static], STATIC) } pub(super) fn const_def(p: &mut Parser, m: Marker) { - const_or_static(p, m, T![const], CONST_DEF) + const_or_static(p, m, T![const], CONST) } fn const_or_static(p: &mut Parser, m: Marker, kw: SyntaxKind, def: SyntaxKind) { diff --git a/crates/ra_parser/src/syntax_kind/generated.rs b/crates/ra_parser/src/syntax_kind/generated.rs index 3b82347f388..64889676eb4 100644 --- a/crates/ra_parser/src/syntax_kind/generated.rs +++ b/crates/ra_parser/src/syntax_kind/generated.rs @@ -131,8 +131,8 @@ pub enum SyntaxKind { EXTERN_CRATE, MODULE, USE, - STATIC_DEF, - CONST_DEF, + STATIC, + CONST, TRAIT_DEF, IMPL_DEF, TYPE_ALIAS, diff --git a/crates/ra_syntax/src/ast.rs b/crates/ra_syntax/src/ast.rs index b69b6e85e98..fd426ece9d0 100644 --- a/crates/ra_syntax/src/ast.rs +++ b/crates/ra_syntax/src/ast.rs @@ -139,7 +139,7 @@ fn test_doc_comment_of_statics() { ) .ok() .unwrap(); - let st = file.syntax().descendants().find_map(StaticDef::cast).unwrap(); + let st = file.syntax().descendants().find_map(Static::cast).unwrap(); assert_eq!("Number of levels", st.doc_comment_text().unwrap()); } diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs index 6613b54ba59..00a70fce097 100644 --- a/crates/ra_syntax/src/ast/generated/nodes.rs +++ b/crates/ra_syntax/src/ast/generated/nodes.rs @@ -28,16 +28,17 @@ impl Attr { pub fn r_brack_token(&self) -> Option { support::token(&self.syntax, T![']']) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct ConstDef { +pub struct Const { pub(crate) syntax: SyntaxNode, } -impl ast::AttrsOwner for ConstDef {} -impl ast::NameOwner for ConstDef {} -impl ast::VisibilityOwner for ConstDef {} -impl ast::TypeAscriptionOwner for ConstDef {} -impl ConstDef { +impl ast::AttrsOwner for Const {} +impl ast::NameOwner for Const {} +impl ast::VisibilityOwner for Const {} +impl ast::TypeAscriptionOwner for Const {} +impl Const { pub fn default_token(&self) -> Option { support::token(&self.syntax, T![default]) } pub fn const_token(&self) -> Option { support::token(&self.syntax, T![const]) } + pub fn underscore_token(&self) -> Option { support::token(&self.syntax, T![_]) } pub fn colon_token(&self) -> Option { support::token(&self.syntax, T![:]) } pub fn eq_token(&self) -> Option { support::token(&self.syntax, T![=]) } pub fn body(&self) -> Option { support::child(&self.syntax) } @@ -139,14 +140,14 @@ impl Module { pub fn semicolon_token(&self) -> Option { support::token(&self.syntax, T![;]) } } #[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct StaticDef { +pub struct Static { pub(crate) syntax: SyntaxNode, } -impl ast::AttrsOwner for StaticDef {} -impl ast::NameOwner for StaticDef {} -impl ast::VisibilityOwner for StaticDef {} -impl ast::TypeAscriptionOwner for StaticDef {} -impl StaticDef { +impl ast::AttrsOwner for Static {} +impl ast::NameOwner for Static {} +impl ast::VisibilityOwner for Static {} +impl ast::TypeAscriptionOwner for Static {} +impl Static { pub fn static_token(&self) -> Option { support::token(&self.syntax, T![static]) } pub fn mut_token(&self) -> Option { support::token(&self.syntax, T![mut]) } pub fn colon_token(&self) -> Option { support::token(&self.syntax, T![:]) } @@ -1272,7 +1273,7 @@ impl MetaItem { } #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub enum Item { - ConstDef(ConstDef), + Const(Const), Enum(Enum), ExternBlock(ExternBlock), ExternCrate(ExternCrate), @@ -1280,7 +1281,7 @@ pub enum Item { ImplDef(ImplDef), MacroCall(MacroCall), Module(Module), - StaticDef(StaticDef), + Static(Static), Struct(Struct), TraitDef(TraitDef), TypeAlias(TypeAlias), @@ -1365,7 +1366,7 @@ pub enum Expr { pub enum AssocItem { Fn(Fn), TypeAlias(TypeAlias), - ConstDef(ConstDef), + Const(Const), MacroCall(MacroCall), } impl ast::AttrsOwner for AssocItem {} @@ -1384,7 +1385,7 @@ pub enum AttrInput { #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub enum ExternItem { Fn(Fn), - StaticDef(StaticDef), + Static(Static), } impl ast::AttrsOwner for ExternItem {} impl ast::NameOwner for ExternItem {} @@ -1421,8 +1422,8 @@ impl AstNode for Attr { } fn syntax(&self) -> &SyntaxNode { &self.syntax } } -impl AstNode for ConstDef { - fn can_cast(kind: SyntaxKind) -> bool { kind == CONST_DEF } +impl AstNode for Const { + fn can_cast(kind: SyntaxKind) -> bool { kind == CONST } fn cast(syntax: SyntaxNode) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) @@ -1509,8 +1510,8 @@ impl AstNode for Module { } fn syntax(&self) -> &SyntaxNode { &self.syntax } } -impl AstNode for StaticDef { - fn can_cast(kind: SyntaxKind) -> bool { kind == STATIC_DEF } +impl AstNode for Static { + fn can_cast(kind: SyntaxKind) -> bool { kind == STATIC } fn cast(syntax: SyntaxNode) -> Option { if Self::can_cast(syntax.kind()) { Some(Self { syntax }) @@ -2774,8 +2775,8 @@ impl AstNode for MetaItem { } fn syntax(&self) -> &SyntaxNode { &self.syntax } } -impl From for Item { - fn from(node: ConstDef) -> Item { Item::ConstDef(node) } +impl From for Item { + fn from(node: Const) -> Item { Item::Const(node) } } impl From for Item { fn from(node: Enum) -> Item { Item::Enum(node) } @@ -2798,8 +2799,8 @@ impl From for Item { impl From for Item { fn from(node: Module) -> Item { Item::Module(node) } } -impl From for Item { - fn from(node: StaticDef) -> Item { Item::StaticDef(node) } +impl From for Item { + fn from(node: Static) -> Item { Item::Static(node) } } impl From for Item { fn from(node: Struct) -> Item { Item::Struct(node) } @@ -2819,14 +2820,14 @@ impl From for Item { impl AstNode for Item { fn can_cast(kind: SyntaxKind) -> bool { match kind { - CONST_DEF | ENUM | EXTERN_BLOCK | EXTERN_CRATE | FN | IMPL_DEF | MACRO_CALL - | MODULE | STATIC_DEF | STRUCT | TRAIT_DEF | TYPE_ALIAS | UNION | USE => true, + CONST | ENUM | EXTERN_BLOCK | EXTERN_CRATE | FN | IMPL_DEF | MACRO_CALL | MODULE + | STATIC | STRUCT | TRAIT_DEF | TYPE_ALIAS | UNION | USE => true, _ => false, } } fn cast(syntax: SyntaxNode) -> Option { let res = match syntax.kind() { - CONST_DEF => Item::ConstDef(ConstDef { syntax }), + CONST => Item::Const(Const { syntax }), ENUM => Item::Enum(Enum { syntax }), EXTERN_BLOCK => Item::ExternBlock(ExternBlock { syntax }), EXTERN_CRATE => Item::ExternCrate(ExternCrate { syntax }), @@ -2834,7 +2835,7 @@ impl AstNode for Item { IMPL_DEF => Item::ImplDef(ImplDef { syntax }), MACRO_CALL => Item::MacroCall(MacroCall { syntax }), MODULE => Item::Module(Module { syntax }), - STATIC_DEF => Item::StaticDef(StaticDef { syntax }), + STATIC => Item::Static(Static { syntax }), STRUCT => Item::Struct(Struct { syntax }), TRAIT_DEF => Item::TraitDef(TraitDef { syntax }), TYPE_ALIAS => Item::TypeAlias(TypeAlias { syntax }), @@ -2846,7 +2847,7 @@ impl AstNode for Item { } fn syntax(&self) -> &SyntaxNode { match self { - Item::ConstDef(it) => &it.syntax, + Item::Const(it) => &it.syntax, Item::Enum(it) => &it.syntax, Item::ExternBlock(it) => &it.syntax, Item::ExternCrate(it) => &it.syntax, @@ -2854,7 +2855,7 @@ impl AstNode for Item { Item::ImplDef(it) => &it.syntax, Item::MacroCall(it) => &it.syntax, Item::Module(it) => &it.syntax, - Item::StaticDef(it) => &it.syntax, + Item::Static(it) => &it.syntax, Item::Struct(it) => &it.syntax, Item::TraitDef(it) => &it.syntax, Item::TypeAlias(it) => &it.syntax, @@ -3256,8 +3257,8 @@ impl From for AssocItem { impl From for AssocItem { fn from(node: TypeAlias) -> AssocItem { AssocItem::TypeAlias(node) } } -impl From for AssocItem { - fn from(node: ConstDef) -> AssocItem { AssocItem::ConstDef(node) } +impl From for AssocItem { + fn from(node: Const) -> AssocItem { AssocItem::Const(node) } } impl From for AssocItem { fn from(node: MacroCall) -> AssocItem { AssocItem::MacroCall(node) } @@ -3265,7 +3266,7 @@ impl From for AssocItem { impl AstNode for AssocItem { fn can_cast(kind: SyntaxKind) -> bool { match kind { - FN | TYPE_ALIAS | CONST_DEF | MACRO_CALL => true, + FN | TYPE_ALIAS | CONST | MACRO_CALL => true, _ => false, } } @@ -3273,7 +3274,7 @@ impl AstNode for AssocItem { let res = match syntax.kind() { FN => AssocItem::Fn(Fn { syntax }), TYPE_ALIAS => AssocItem::TypeAlias(TypeAlias { syntax }), - CONST_DEF => AssocItem::ConstDef(ConstDef { syntax }), + CONST => AssocItem::Const(Const { syntax }), MACRO_CALL => AssocItem::MacroCall(MacroCall { syntax }), _ => return None, }; @@ -3283,7 +3284,7 @@ impl AstNode for AssocItem { match self { AssocItem::Fn(it) => &it.syntax, AssocItem::TypeAlias(it) => &it.syntax, - AssocItem::ConstDef(it) => &it.syntax, + AssocItem::Const(it) => &it.syntax, AssocItem::MacroCall(it) => &it.syntax, } } @@ -3347,20 +3348,20 @@ impl AstNode for AttrInput { impl From for ExternItem { fn from(node: Fn) -> ExternItem { ExternItem::Fn(node) } } -impl From for ExternItem { - fn from(node: StaticDef) -> ExternItem { ExternItem::StaticDef(node) } +impl From for ExternItem { + fn from(node: Static) -> ExternItem { ExternItem::Static(node) } } impl AstNode for ExternItem { fn can_cast(kind: SyntaxKind) -> bool { match kind { - FN | STATIC_DEF => true, + FN | STATIC => true, _ => false, } } fn cast(syntax: SyntaxNode) -> Option { let res = match syntax.kind() { FN => ExternItem::Fn(Fn { syntax }), - STATIC_DEF => ExternItem::StaticDef(StaticDef { syntax }), + STATIC => ExternItem::Static(Static { syntax }), _ => return None, }; Some(res) @@ -3368,7 +3369,7 @@ impl AstNode for ExternItem { fn syntax(&self) -> &SyntaxNode { match self { ExternItem::Fn(it) => &it.syntax, - ExternItem::StaticDef(it) => &it.syntax, + ExternItem::Static(it) => &it.syntax, } } } @@ -3465,7 +3466,7 @@ impl std::fmt::Display for Attr { std::fmt::Display::fmt(self.syntax(), f) } } -impl std::fmt::Display for ConstDef { +impl std::fmt::Display for Const { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(self.syntax(), f) } @@ -3505,7 +3506,7 @@ impl std::fmt::Display for Module { std::fmt::Display::fmt(self.syntax(), f) } } -impl std::fmt::Display for StaticDef { +impl std::fmt::Display for Static { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(self.syntax(), f) } diff --git a/crates/ra_syntax/src/ast/node_ext.rs b/crates/ra_syntax/src/ast/node_ext.rs index 05ec49cecf7..4da1d5c113f 100644 --- a/crates/ra_syntax/src/ast/node_ext.rs +++ b/crates/ra_syntax/src/ast/node_ext.rs @@ -483,8 +483,8 @@ impl ast::DocCommentsOwner for ast::Enum {} impl ast::DocCommentsOwner for ast::Variant {} impl ast::DocCommentsOwner for ast::TraitDef {} impl ast::DocCommentsOwner for ast::Module {} -impl ast::DocCommentsOwner for ast::StaticDef {} -impl ast::DocCommentsOwner for ast::ConstDef {} +impl ast::DocCommentsOwner for ast::Static {} +impl ast::DocCommentsOwner for ast::Const {} impl ast::DocCommentsOwner for ast::TypeAlias {} impl ast::DocCommentsOwner for ast::ImplDef {} impl ast::DocCommentsOwner for ast::MacroCall {} diff --git a/crates/ra_syntax/src/parsing/text_tree_sink.rs b/crates/ra_syntax/src/parsing/text_tree_sink.rs index c586dc320a9..f7edd86ce6e 100644 --- a/crates/ra_syntax/src/parsing/text_tree_sink.rs +++ b/crates/ra_syntax/src/parsing/text_tree_sink.rs @@ -146,8 +146,8 @@ fn n_attached_trivias<'a>( trivias: impl Iterator, ) -> usize { match kind { - MACRO_CALL | CONST_DEF | TYPE_ALIAS | STRUCT | ENUM | VARIANT | FN | TRAIT_DEF - | MODULE | RECORD_FIELD | STATIC_DEF => { + MACRO_CALL | CONST | TYPE_ALIAS | STRUCT | ENUM | VARIANT | FN | TRAIT_DEF + | MODULE | RECORD_FIELD | STATIC => { let mut res = 0; let mut trivias = trivias.enumerate().peekable(); diff --git a/crates/ra_syntax/src/validation.rs b/crates/ra_syntax/src/validation.rs index 5b4e14676e3..a666b18db20 100644 --- a/crates/ra_syntax/src/validation.rs +++ b/crates/ra_syntax/src/validation.rs @@ -4,7 +4,7 @@ mod block; use crate::{ ast, match_ast, AstNode, SyntaxError, - SyntaxKind::{BYTE, BYTE_STRING, CHAR, CONST_DEF, FN, INT_NUMBER, STRING, TYPE_ALIAS}, + SyntaxKind::{BYTE, BYTE_STRING, CHAR, CONST, FN, INT_NUMBER, STRING, TYPE_ALIAS}, SyntaxNode, SyntaxToken, TextSize, T, }; use rustc_lexer::unescape::{ @@ -200,7 +200,7 @@ fn validate_visibility(vis: ast::Visibility, errors: &mut Vec) { None => return, }; match parent.kind() { - FN | CONST_DEF | TYPE_ALIAS => (), + FN | CONST | TYPE_ALIAS => (), _ => return, } diff --git a/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast b/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast index c0ba4fba91a..b1400aa5f71 100644 --- a/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast +++ b/crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast @@ -65,7 +65,7 @@ SOURCE_FILE@0..118 R_PAREN@79..80 ")" SEMICOLON@80..81 ";" WHITESPACE@81..86 "\n " - CONST_DEF@86..115 + CONST@86..115 VISIBILITY@86..96 PUB_KW@86..89 "pub" L_PAREN@89..90 "(" diff --git a/crates/ra_syntax/test_data/parser/err/0043_default_const.rast b/crates/ra_syntax/test_data/parser/err/0043_default_const.rast index 6ca1a487004..f041fa6f793 100644 --- a/crates/ra_syntax/test_data/parser/err/0043_default_const.rast +++ b/crates/ra_syntax/test_data/parser/err/0043_default_const.rast @@ -14,7 +14,7 @@ SOURCE_FILE@0..39 NAME_REF@12..19 IDENT@12..19 "default" WHITESPACE@19..20 " " - CONST_DEF@20..36 + CONST@20..36 CONST_KW@20..25 "const" WHITESPACE@25..26 " " NAME@26..27 diff --git a/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast b/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast index d2a18330fab..a6e6552a99e 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast @@ -17,7 +17,7 @@ SOURCE_FILE@0..50 L_CURLY@22..23 "{" R_CURLY@23..24 "}" WHITESPACE@24..25 "\n" - CONST_DEF@25..46 + CONST@25..46 UNSAFE_KW@25..31 "unsafe" WHITESPACE@31..32 " " CONST_KW@32..37 "const" diff --git a/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast b/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast index ebcc26e0d61..8d761b90741 100644 --- a/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast +++ b/crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast @@ -1,5 +1,5 @@ SOURCE_FILE@0..19 - STATIC_DEF@0..18 + STATIC@0..18 STATIC_KW@0..6 "static" WHITESPACE@6..7 " " ERROR@7..8 diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast index a62ce23e6a1..955e00dde3b 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast @@ -27,7 +27,7 @@ SOURCE_FILE@0..83 IDENT@21..26 "Clone" SEMICOLON@26..27 ";" WHITESPACE@27..32 "\n " - CONST_DEF@32..45 + CONST@32..45 CONST_KW@32..37 "const" WHITESPACE@37..38 " " NAME@38..39 diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast index 3ae870e17ae..52181ca0c32 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast @@ -26,7 +26,7 @@ SOURCE_FILE@0..89 IDENT@22..25 "i32" SEMICOLON@25..26 ";" WHITESPACE@26..31 "\n " - CONST_DEF@31..49 + CONST@31..49 CONST_KW@31..36 "const" WHITESPACE@36..37 " " NAME@37..38 diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast b/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast index 3c00a264776..0c35bf2b7cd 100644 --- a/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast +++ b/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast @@ -1,5 +1,5 @@ SOURCE_FILE@0..40 - CONST_DEF@0..39 + CONST@0..39 CONST_KW@0..5 "const" WHITESPACE@5..6 " " NAME@6..7 diff --git a/crates/ra_syntax/test_data/parser/ok/0023_static_items.rast b/crates/ra_syntax/test_data/parser/ok/0023_static_items.rast index 97d90dc756f..9374cf5e965 100644 --- a/crates/ra_syntax/test_data/parser/ok/0023_static_items.rast +++ b/crates/ra_syntax/test_data/parser/ok/0023_static_items.rast @@ -1,5 +1,5 @@ SOURCE_FILE@0..47 - STATIC_DEF@0..20 + STATIC@0..20 STATIC_KW@0..6 "static" WHITESPACE@6..7 " " NAME@7..10 @@ -18,7 +18,7 @@ SOURCE_FILE@0..47 INT_NUMBER@18..19 "1" SEMICOLON@19..20 ";" WHITESPACE@20..21 "\n" - STATIC_DEF@21..46 + STATIC@21..46 STATIC_KW@21..27 "static" WHITESPACE@27..28 " " MUT_KW@28..31 "mut" diff --git a/crates/ra_syntax/test_data/parser/ok/0024_const_item.rast b/crates/ra_syntax/test_data/parser/ok/0024_const_item.rast index d241f034c79..dd1b9c9a0a4 100644 --- a/crates/ra_syntax/test_data/parser/ok/0024_const_item.rast +++ b/crates/ra_syntax/test_data/parser/ok/0024_const_item.rast @@ -1,5 +1,5 @@ SOURCE_FILE@0..64 - CONST_DEF@0..17 + CONST@0..17 CONST_KW@0..5 "const" WHITESPACE@5..6 " " UNDERSCORE@6..7 "_" @@ -17,7 +17,7 @@ SOURCE_FILE@0..64 INT_NUMBER@15..16 "0" SEMICOLON@16..17 ";" WHITESPACE@17..18 "\n" - CONST_DEF@18..38 + CONST@18..38 CONST_KW@18..23 "const" WHITESPACE@23..24 " " NAME@24..27 @@ -36,7 +36,7 @@ SOURCE_FILE@0..64 INT_NUMBER@35..37 "92" SEMICOLON@37..38 ";" WHITESPACE@38..39 "\n" - CONST_DEF@39..63 + CONST@39..63 CONST_KW@39..44 "const" WHITESPACE@44..45 " " MUT_KW@45..48 "mut" diff --git a/crates/ra_syntax/test_data/parser/ok/0066_default_const.rast b/crates/ra_syntax/test_data/parser/ok/0066_default_const.rast index 584b2faf104..485efe20cf3 100644 --- a/crates/ra_syntax/test_data/parser/ok/0066_default_const.rast +++ b/crates/ra_syntax/test_data/parser/ok/0066_default_const.rast @@ -19,7 +19,7 @@ SOURCE_FILE@0..46 ASSOC_ITEM_LIST@15..45 L_CURLY@15..16 "{" WHITESPACE@16..19 "\n " - CONST_DEF@19..43 + CONST@19..43 DEFAULT_KW@19..26 "default" WHITESPACE@26..27 " " CONST_KW@27..32 "const" diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs index dcd81da6ec2..fd512330199 100644 --- a/crates/rust-analyzer/src/to_proto.rs +++ b/crates/rust-analyzer/src/to_proto.rs @@ -40,8 +40,8 @@ pub(crate) fn symbol_kind(syntax_kind: SyntaxKind) -> lsp_types::SymbolKind { SyntaxKind::MODULE => lsp_types::SymbolKind::Module, SyntaxKind::TYPE_ALIAS => lsp_types::SymbolKind::TypeParameter, SyntaxKind::RECORD_FIELD => lsp_types::SymbolKind::Field, - SyntaxKind::STATIC_DEF => lsp_types::SymbolKind::Constant, - SyntaxKind::CONST_DEF => lsp_types::SymbolKind::Constant, + SyntaxKind::STATIC => lsp_types::SymbolKind::Constant, + SyntaxKind::CONST => lsp_types::SymbolKind::Constant, SyntaxKind::IMPL_DEF => lsp_types::SymbolKind::Object, _ => lsp_types::SymbolKind::Variable, } diff --git a/xtask/src/ast_src.rs b/xtask/src/ast_src.rs index 94f4d17aa49..56e3f4b0a46 100644 --- a/xtask/src/ast_src.rs +++ b/xtask/src/ast_src.rs @@ -101,8 +101,8 @@ pub(crate) const KINDS_SRC: KindsSrc = KindsSrc { "EXTERN_CRATE", "MODULE", "USE", - "STATIC_DEF", - "CONST_DEF", + "STATIC", + "CONST", "TRAIT_DEF", "IMPL_DEF", "TYPE_ALIAS", diff --git a/xtask/src/codegen/rust.ungram b/xtask/src/codegen/rust.ungram index b653c14a7fc..ef7c3e50e28 100644 --- a/xtask/src/codegen/rust.ungram +++ b/xtask/src/codegen/rust.ungram @@ -4,7 +4,7 @@ SourceFile = Item* Item = - ConstDef + Const | Enum | ExternBlock | ExternCrate @@ -12,7 +12,7 @@ Item = | ImplDef | MacroCall | Module -| StaticDef +| Static | Struct | TraitDef | TypeAlias @@ -112,6 +112,14 @@ Union = Attr* Visibility? 'union' Name GenericParamList? WhereClause? RecordFieldList +Const = + Attr* Visibility? 'default'? 'const' (Name | '_') ':' ascribed_type:TypeRef + '=' body:Expr ';' + +Static = + Attr* Visibility? 'static'? 'mut'? Name ':' ascribed_type:TypeRef + '=' body:Expr ';' + TraitDef = Attr* Visibility? 'unsafe'? 'auto'? 'trait' Name GenericParamList (':' TypeBoundList?)? WhereClause @@ -120,14 +128,6 @@ TraitDef = AssocItemList = '{' AssocItem* '}' -ConstDef = - Attr* Visibility? 'default'? 'const' Name ':' ascribed_type:TypeRef - '=' body:Expr ';' - -StaticDef = - Attr* Visibility? 'static'? 'mut'? 'static' Name ':' ascribed_type:TypeRef - '=' body:Expr ';' - ImplDef = Attr* Visibility? 'const'? 'default'? 'unsafe'? 'impl' GenericParamList? '!'? 'for' WhereClause? @@ -475,11 +475,11 @@ TypeRef = AssocItem = Fn | TypeAlias -| ConstDef +| Const | MacroCall ExternItem = - Fn | StaticDef + Fn | Static AttrInput = Literal From ba71f05438a93991aff6970488a720c90774d35b Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 30 Jul 2020 18:10:07 +0200 Subject: [PATCH 5/5] fmt --- crates/ra_ide/src/completion/complete_trait_impl.rs | 7 +++---- crates/ra_syntax/src/parsing/text_tree_sink.rs | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/crates/ra_ide/src/completion/complete_trait_impl.rs b/crates/ra_ide/src/completion/complete_trait_impl.rs index 88679f3bd91..87221d964e7 100644 --- a/crates/ra_ide/src/completion/complete_trait_impl.rs +++ b/crates/ra_ide/src/completion/complete_trait_impl.rs @@ -106,10 +106,9 @@ pub(crate) fn complete_trait_impl(acc: &mut Completions, ctx: &CompletionContext fn completion_match(ctx: &CompletionContext) -> Option<(SyntaxNode, ImplDef)> { let (trigger, impl_def_offset) = ctx.token.ancestors().find_map(|p| match p.kind() { - SyntaxKind::FN - | SyntaxKind::TYPE_ALIAS - | SyntaxKind::CONST - | SyntaxKind::BLOCK_EXPR => Some((p, 2)), + SyntaxKind::FN | SyntaxKind::TYPE_ALIAS | SyntaxKind::CONST | SyntaxKind::BLOCK_EXPR => { + Some((p, 2)) + } SyntaxKind::NAME_REF => Some((p, 5)), _ => None, })?; diff --git a/crates/ra_syntax/src/parsing/text_tree_sink.rs b/crates/ra_syntax/src/parsing/text_tree_sink.rs index f7edd86ce6e..95581a84b80 100644 --- a/crates/ra_syntax/src/parsing/text_tree_sink.rs +++ b/crates/ra_syntax/src/parsing/text_tree_sink.rs @@ -146,8 +146,8 @@ fn n_attached_trivias<'a>( trivias: impl Iterator, ) -> usize { match kind { - MACRO_CALL | CONST | TYPE_ALIAS | STRUCT | ENUM | VARIANT | FN | TRAIT_DEF - | MODULE | RECORD_FIELD | STATIC => { + MACRO_CALL | CONST | TYPE_ALIAS | STRUCT | ENUM | VARIANT | FN | TRAIT_DEF | MODULE + | RECORD_FIELD | STATIC => { let mut res = 0; let mut trivias = trivias.enumerate().peekable();