]> git.lizzy.rs Git - rust.git/commitdiff
Finalize const&static grammar
authorAleksey Kladov <aleksey.kladov@gmail.com>
Thu, 30 Jul 2020 16:02:20 +0000 (18:02 +0200)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Thu, 30 Jul 2020 16:02:20 +0000 (18:02 +0200)
39 files changed:
crates/ra_assists/src/handlers/add_missing_impl_members.rs
crates/ra_assists/src/handlers/change_visibility.rs
crates/ra_assists/src/utils.rs
crates/ra_hir/src/has_source.rs
crates/ra_hir/src/semantics.rs
crates/ra_hir/src/semantics/source_to_def.rs
crates/ra_hir_def/src/body/lower.rs
crates/ra_hir_def/src/item_tree.rs
crates/ra_hir_def/src/item_tree/lower.rs
crates/ra_hir_def/src/item_tree/tests.rs
crates/ra_hir_def/src/keys.rs
crates/ra_ide/src/completion/complete_trait_impl.rs
crates/ra_ide/src/display.rs
crates/ra_ide/src/display/navigation_target.rs
crates/ra_ide/src/display/short_label.rs
crates/ra_ide/src/file_structure.rs
crates/ra_ide/src/syntax_highlighting.rs
crates/ra_ide_db/src/defs.rs
crates/ra_ide_db/src/symbol_index.rs
crates/ra_parser/src/grammar/items/consts.rs
crates/ra_parser/src/syntax_kind/generated.rs
crates/ra_syntax/src/ast.rs
crates/ra_syntax/src/ast/generated/nodes.rs
crates/ra_syntax/src/ast/node_ext.rs
crates/ra_syntax/src/parsing/text_tree_sink.rs
crates/ra_syntax/src/validation.rs
crates/ra_syntax/test_data/parser/err/0037_visibility_in_traits.rast
crates/ra_syntax/test_data/parser/err/0043_default_const.rast
crates/ra_syntax/test_data/parser/inline/err/0010_wrong_order_fns.rast
crates/ra_syntax/test_data/parser/inline/err/0013_static_underscore.rast
crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast
crates/ra_syntax/test_data/parser/ok/0023_static_items.rast
crates/ra_syntax/test_data/parser/ok/0024_const_item.rast
crates/ra_syntax/test_data/parser/ok/0066_default_const.rast
crates/rust-analyzer/src/to_proto.rs
xtask/src/ast_src.rs
xtask/src/codegen/rust.ungram

index 1e4d4748c2a9acad268c74098712269a37dbd9e9..1ab176c26128d83b71239cc563743832bf8759e6 100644 (file)
@@ -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 {
index 44f3e8ee307d696bce02022cc0ee5c4934186c91..76144d7d248006a4c4d3bbc2959efbfcfb757fa9 100644 (file)
@@ -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;
index 748be011b57f8b7f2ed62893361f4963201c03a2..337e3474f8c6497e492d995fe24dea5c2bb8e397 100644 (file)
@@ -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());
                     }
index 1c57475816d929cfc5a4be4f3e14cb9d5d7d6f83..9581552e57259245fd21b8f48552f48d5bdcb894 100644 (file)
@@ -87,14 +87,14 @@ fn source(self, db: &dyn HirDatabase) -> InFile<ast::Fn> {
     }
 }
 impl HasSource for Const {
-    type Ast = ast::ConstDef;
-    fn source(self, db: &dyn HirDatabase) -> InFile<ast::ConstDef> {
+    type Ast = ast::Const;
+    fn source(self, db: &dyn HirDatabase) -> InFile<ast::Const> {
         self.id.lookup(db.upcast()).source(db.upcast())
     }
 }
 impl HasSource for Static {
-    type Ast = ast::StaticDef;
-    fn source(self, db: &dyn HirDatabase) -> InFile<ast::StaticDef> {
+    type Ast = ast::Static;
+    fn source(self, db: &dyn HirDatabase) -> InFile<ast::Static> {
         self.id.lookup(db.upcast()).source(db.upcast())
     }
 }
index e18df25371574f0fbd3a70f1f6f8057659f5af2d..32a60b7896f6878fd2ea546f44e613771bccb6da 100644 (file)
@@ -586,8 +586,8 @@ fn to_def(sema: &SemanticsImpl, src: InFile<Self>) -> Option<Self::Def> {
     (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),
index b85a126801400160a898a7dac8fbe05bff1450a4..782a03f9e2485888c64ae2eedd46cdb4845a9bd5 100644 (file)
@@ -83,10 +83,10 @@ pub(super) fn enum_to_def(&mut self, src: InFile<ast::Enum>) -> Option<EnumId> {
     pub(super) fn union_to_def(&mut self, src: InFile<ast::Union>) -> Option<UnionId> {
         self.to_def(src, keys::UNION)
     }
-    pub(super) fn static_to_def(&mut self, src: InFile<ast::StaticDef>) -> Option<StaticId> {
+    pub(super) fn static_to_def(&mut self, src: InFile<ast::Static>) -> Option<StaticId> {
         self.to_def(src, keys::STATIC)
     }
-    pub(super) fn const_to_def(&mut self, src: InFile<ast::ConstDef>) -> Option<ConstId> {
+    pub(super) fn const_to_def(&mut self, src: InFile<ast::Const>) -> Option<ConstId> {
         self.to_def(src, keys::CONST)
     }
     pub(super) fn type_alias_to_def(&mut self, src: InFile<ast::TypeAlias>) -> Option<TypeAliasId> {
@@ -178,11 +178,11 @@ pub(super) fn find_container(&mut self, src: InFile<&SyntaxNode>) -> Option<Chil
                         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 @@ fn find_pat_container(&mut self, src: InFile<&SyntaxNode>) -> Option<DefWithBody
         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,
                 }
index 105299f704bbf48ee5e65b03c61bbd90bb326b9d..4a26e6397e996e1168678af5cd93f3e5c9e95bce 100644 (file)
@@ -641,14 +641,14 @@ fn collect_block_items(&mut self, block: &ast::BlockExpr) {
                             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())
                     }
index 24ad4118700f29009c786aae80c158b1f5d70788..c478a9909dcb3db6ba45e06e52e7c532cc1ce38f 100644 (file)
@@ -417,8 +417,8 @@ fn index(&self, index: Idx<$typ>) -> &Self::Output {
     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<Name>,
     pub visibility: RawVisibilityId,
     pub type_ref: TypeRef,
-    pub ast_id: FileAstId<ast::ConstDef>,
+    pub ast_id: FileAstId<ast::Const>,
 }
 
 #[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<ast::StaticDef>,
+    pub ast_id: FileAstId<ast::Static>,
 }
 
 #[derive(Debug, Clone, Eq, PartialEq)]
index 6d963c85225535266b71cea82785bf813faba9ab..a94548e5d584c52016586d7ef7e87660f13062d8 100644 (file)
@@ -83,8 +83,8 @@ fn lower_mod_item(&mut self, item: &ast::Item, inner: bool) -> Option<ModItems>
             | 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 @@ fn lower_mod_item(&mut self, item: &ast::Item, inner: bool) -> Option<ModItems>
             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 @@ fn lower_assoc_item(&mut self, item: &ast::AssocItem) -> Option<AssocItem> {
         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 @@ fn lower_type_alias(
         Some(id(self.data().type_aliases.alloc(res)))
     }
 
-    fn lower_static(&mut self, static_: &ast::StaticDef) -> Option<FileItemTreeId<Static>> {
+    fn lower_static(&mut self, static_: &ast::Static) -> Option<FileItemTreeId<Static>> {
         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 @@ fn lower_static(&mut self, static_: &ast::StaticDef) -> Option<FileItemTreeId<St
         Some(id(self.data().statics.alloc(res)))
     }
 
-    fn lower_const(&mut self, konst: &ast::ConstDef) -> FileItemTreeId<Const> {
+    fn lower_const(&mut self, konst: &ast::Const) -> FileItemTreeId<Const> {
         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 @@ fn lower_extern_block(&mut self, block: &ast::ExternBlock) -> Vec<ModItem> {
                             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()
                         }
index bf3474c518c0bd6639531a53750ec721f0205888..e61ce58bcc58f9d86cb1cb53cb3bb304ea33b671 100644 (file)
@@ -238,7 +238,7 @@ union Un {
             > #[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::<ra_syntax::ast::generated::nodes::TypeAlias>(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::<ra_syntax::ast::generated::nodes::ConstDef>(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::<ra_syntax::ast::generated::nodes::Const>(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::<ra_syntax::ast::generated::nodes::Fn>(10) }
             > #[Attrs { entries: Some([Attr { path: ModPath { kind: Plain, segments: [Name(Text("assoc_dfl_method"))] }, input: None }]) }]
index c2a03dfedae7b90559bd09151d870181ef42b920..f75e3bb50f4c0aa2eeaf646ce2875738fbd1a1d5 100644 (file)
@@ -15,8 +15,8 @@
 pub type Key<K, V> = crate::dyn_map::Key<InFile<K>, V, AstPtrPolicy<K, V>>;
 
 pub const FUNCTION: Key<ast::Fn, FunctionId> = Key::new();
-pub const CONST: Key<ast::ConstDef, ConstId> = Key::new();
-pub const STATIC: Key<ast::StaticDef, StaticId> = Key::new();
+pub const CONST: Key<ast::Const, ConstId> = Key::new();
+pub const STATIC: Key<ast::Static, StaticId> = Key::new();
 pub const TYPE_ALIAS: Key<ast::TypeAlias, TypeAliasId> = Key::new();
 pub const IMPL: Key<ast::ImplDef, ImplId> = Key::new();
 pub const TRAIT: Key<ast::TraitDef, TraitId> = Key::new();
index 7d9050a6b6540700b80f70830f7b2c8405b79706..88679f3bd91acdd99532a7d57c06a4313344999f 100644 (file)
@@ -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();
index e81e8436f7e16f00bbd62f1ac9fa741c6815652d..3efca06496ce84f7ac414296abb942a328f99669 100644 (file)
@@ -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()
index c30b91fe0aa1131a64dd0454575d173382bfa03a..9e2c012456cde4b29ad8af11ff7abacb61bed2e2 100644 (file)
@@ -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,
index ddf1059eecda196287e9744be1d2341962df8cd5..282f362f297220b585b2bb5670b9cae87d4ca5af 100644 (file)
@@ -53,13 +53,13 @@ fn short_label(&self) -> Option<String> {
     }
 }
 
-impl ShortLabel for ast::ConstDef {
+impl ShortLabel for ast::Const {
     fn short_label(&self) -> Option<String> {
         short_label_from_ascribed_node(self, "const ")
     }
 }
 
-impl ShortLabel for ast::StaticDef {
+impl ShortLabel for ast::Static {
     fn short_label(&self) -> Option<String> {
         short_label_from_ascribed_node(self, "static ")
     }
index 43202499d7ae05edaab707fc63bf477770b2d6b9..77384b6ecc915c1efe9398c20d60514a709f17a8 100644 (file)
@@ -137,8 +137,8 @@ fn collapse_ws(node: &SyntaxNode, output: &mut String) {
                 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",
                         ),
index ce890c81677957429317a6152454b3463b9c678e..19ec73d2ab34574c52933b9d0e1e93d7b558aa5f 100644 (file)
@@ -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,
index 635cf706c2eeb07b032dc8ce59c1440acc9b2899..b908bd741b3131464bdc3560e6a5c79251e2402f 100644 (file)
@@ -166,7 +166,7 @@ pub fn classify_name(sema: &Semantics<RootDatabase>, 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<RootDatabase>, 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())))
             },
index 646d338aec39e82f27917c1d7b7ee87edc59e3e9..41b8d07f4d26eab542645ab096d5eb3fa545be87 100644 (file)
@@ -403,8 +403,8 @@ fn decl<N: NameOwner>(node: N) -> 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)
index 742a7e0562acf6b1483925b09906bd48e9990fc2..35ad766dcee8882f6bec5aa007182bb8a5590400 100644 (file)
@@ -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) {
index 3b82347f388460e9a5d3d14ea3a274eb167bf124..64889676eb4b48fd96599522940448dedc878c6a 100644 (file)
@@ -131,8 +131,8 @@ pub enum SyntaxKind {
     EXTERN_CRATE,
     MODULE,
     USE,
-    STATIC_DEF,
-    CONST_DEF,
+    STATIC,
+    CONST,
     TRAIT_DEF,
     IMPL_DEF,
     TYPE_ALIAS,
index b69b6e85e98307eae02d88ac3ab2e44551c0c6b0..fd426ece9d0306f6c3d8a6f51508326201a4f0e0 100644 (file)
@@ -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());
 }
 
index 6613b54ba59ab0c8c90bf8ed95f98f1973ed57cd..00a70fce0973172d74dc7da3177eb4c18003baa4 100644 (file)
@@ -28,16 +28,17 @@ pub fn input(&self) -> Option<AttrInput> { support::child(&self.syntax) }
     pub fn r_brack_token(&self) -> Option<SyntaxToken> { 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<SyntaxToken> { support::token(&self.syntax, T![default]) }
     pub fn const_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![const]) }
+    pub fn underscore_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![_]) }
     pub fn colon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![:]) }
     pub fn eq_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![=]) }
     pub fn body(&self) -> Option<Expr> { support::child(&self.syntax) }
@@ -139,14 +140,14 @@ pub fn item_list(&self) -> Option<ItemList> { support::child(&self.syntax) }
     pub fn semicolon_token(&self) -> Option<SyntaxToken> { 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<SyntaxToken> { support::token(&self.syntax, T![static]) }
     pub fn mut_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![mut]) }
     pub fn colon_token(&self) -> Option<SyntaxToken> { support::token(&self.syntax, T![:]) }
@@ -1272,7 +1273,7 @@ pub fn nested_meta_items(&self) -> AstChildren<MetaItem> { support::children(&se
 }
 #[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 @@ fn cast(syntax: SyntaxNode) -> Option<Self> {
     }
     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<Self> {
         if Self::can_cast(syntax.kind()) {
             Some(Self { syntax })
@@ -1509,8 +1510,8 @@ fn cast(syntax: SyntaxNode) -> Option<Self> {
     }
     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<Self> {
         if Self::can_cast(syntax.kind()) {
             Some(Self { syntax })
@@ -2774,8 +2775,8 @@ fn cast(syntax: SyntaxNode) -> Option<Self> {
     }
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
-impl From<ConstDef> for Item {
-    fn from(node: ConstDef) -> Item { Item::ConstDef(node) }
+impl From<Const> for Item {
+    fn from(node: Const) -> Item { Item::Const(node) }
 }
 impl From<Enum> for Item {
     fn from(node: Enum) -> Item { Item::Enum(node) }
@@ -2798,8 +2799,8 @@ fn from(node: MacroCall) -> Item { Item::MacroCall(node) }
 impl From<Module> for Item {
     fn from(node: Module) -> Item { Item::Module(node) }
 }
-impl From<StaticDef> for Item {
-    fn from(node: StaticDef) -> Item { Item::StaticDef(node) }
+impl From<Static> for Item {
+    fn from(node: Static) -> Item { Item::Static(node) }
 }
 impl From<Struct> for Item {
     fn from(node: Struct) -> Item { Item::Struct(node) }
@@ -2819,14 +2820,14 @@ fn from(node: Use) -> Item { Item::Use(node) }
 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<Self> {
         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 @@ fn cast(syntax: SyntaxNode) -> Option<Self> {
             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 @@ fn cast(syntax: SyntaxNode) -> Option<Self> {
     }
     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 @@ fn syntax(&self) -> &SyntaxNode {
             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 @@ fn from(node: Fn) -> AssocItem { AssocItem::Fn(node) }
 impl From<TypeAlias> for AssocItem {
     fn from(node: TypeAlias) -> AssocItem { AssocItem::TypeAlias(node) }
 }
-impl From<ConstDef> for AssocItem {
-    fn from(node: ConstDef) -> AssocItem { AssocItem::ConstDef(node) }
+impl From<Const> for AssocItem {
+    fn from(node: Const) -> AssocItem { AssocItem::Const(node) }
 }
 impl From<MacroCall> for AssocItem {
     fn from(node: MacroCall) -> AssocItem { AssocItem::MacroCall(node) }
@@ -3265,7 +3266,7 @@ fn from(node: MacroCall) -> AssocItem { AssocItem::MacroCall(node) }
 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 @@ fn cast(syntax: SyntaxNode) -> Option<Self> {
         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 @@ fn syntax(&self) -> &SyntaxNode {
         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 @@ fn syntax(&self) -> &SyntaxNode {
 impl From<Fn> for ExternItem {
     fn from(node: Fn) -> ExternItem { ExternItem::Fn(node) }
 }
-impl From<StaticDef> for ExternItem {
-    fn from(node: StaticDef) -> ExternItem { ExternItem::StaticDef(node) }
+impl From<Static> 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<Self> {
         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 @@ fn cast(syntax: SyntaxNode) -> Option<Self> {
     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 @@ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         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 @@ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
         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)
     }
index 05ec49cecf75cd6916de3bf1e4605b2fcb68dbc8..4da1d5c113f7939e1ee02715268b2fde310a6018 100644 (file)
@@ -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 {}
index c586dc320a9791565718eb80e42bad38cd95c1d5..f7edd86ce6eaf5b511a5e032315ee2e88d9a1f20 100644 (file)
@@ -146,8 +146,8 @@ fn n_attached_trivias<'a>(
     trivias: impl Iterator<Item = (SyntaxKind, &'a str)>,
 ) -> 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();
 
index 5b4e14676e345f1267b0b65577aff3d469455c77..a666b18db2021c60693c8a5595077a88a93ec7c3 100644 (file)
@@ -4,7 +4,7 @@
 
 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<SyntaxError>) {
         None => return,
     };
     match parent.kind() {
-        FN | CONST_DEF | TYPE_ALIAS => (),
+        FN | CONST | TYPE_ALIAS => (),
         _ => return,
     }
 
index c0ba4fba91aacac11c3ddf933058276dcc6ea61d..b1400aa5f7115de8e61f44b8c3ed90399542d303 100644 (file)
@@ -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 "("
index 6ca1a4870049fb2fed23256b0889edf60c2cd91c..f041fa6f7932e391d3c98845075bda04d727ae6c 100644 (file)
@@ -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
index d2a18330fabf36e17d30416d970212b7fe93c331..a6e6552a99e44eaaa95a9140dee417b5ccdcc512 100644 (file)
@@ -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"
index ebcc26e0d61453938fab8ac572f83995d51cb427..8d761b9074144d7c1a3d7531080042dfd43ad40f 100644 (file)
@@ -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
index a62ce23e6a155758b35febdef5d60f7841bca8c0..955e00dde3b0ffdf215ca519ab93a4947128a9ef 100644 (file)
@@ -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
index 3ae870e17aecd82e89b3fc1f1fed715379a153a5..52181ca0c32edd744f90a1f28353682b15114ad1 100644 (file)
@@ -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
index 3c00a26477670b24fe14ce9b119ace335c544e32..0c35bf2b7cd0244715c67705b82b7c9180974fb4 100644 (file)
@@ -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
index 97d90dc756fba2ceced4f53b5cca0c9a1f856116..9374cf5e965d1f915856c72f7cf70a06c74b1a77 100644 (file)
@@ -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"
index d241f034c79e25dc4edb987e9f0a34fa3dd87dec..dd1b9c9a0a4215c6138cc5533431e1633ff635ce 100644 (file)
@@ -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"
index 584b2faf104f29dc5cc192828ee6e755714e0059..485efe20cf323567d573a32c6ce4673ac8ec84f8 100644 (file)
@@ -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"
index dcd81da6ec20ae92a867b69b21f288d196ea7def..fd51233019980f28716c936b6c0881b3e06bf916 100644 (file)
@@ -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,
     }
index 94f4d17aa49623685517256fdb34eef9c1077e1a..56e3f4b0a468a1665e2962598625937bac3b55a7 100644 (file)
@@ -101,8 +101,8 @@ pub(crate) struct KindsSrc<'a> {
         "EXTERN_CRATE",
         "MODULE",
         "USE",
-        "STATIC_DEF",
-        "CONST_DEF",
+        "STATIC",
+        "CONST",
         "TRAIT_DEF",
         "IMPL_DEF",
         "TYPE_ALIAS",
index b653c14a7fcf8e6c890ca67feef84188f0c0079b..ef7c3e50e28765b819233313fbe3b7e76371b7b2 100644 (file)
@@ -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