From 18bf2e5af5875f036b321bcf9e07e9904c02510e Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Fri, 1 Jan 2021 10:07:01 +0100 Subject: Add ConstParams to the ide layer --- crates/ide_db/src/defs.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'crates/ide_db/src') diff --git a/crates/ide_db/src/defs.rs b/crates/ide_db/src/defs.rs index d33a6cb86..cc5078bf0 100644 --- a/crates/ide_db/src/defs.rs +++ b/crates/ide_db/src/defs.rs @@ -6,8 +6,8 @@ // FIXME: this badly needs rename/rewrite (matklad, 2020-02-06). use hir::{ - db::HirDatabase, Crate, Field, HasVisibility, Impl, Label, LifetimeParam, Local, MacroDef, - Module, ModuleDef, Name, PathResolution, Semantics, TypeParam, Visibility, + db::HirDatabase, ConstParam, Crate, Field, HasVisibility, Impl, Label, LifetimeParam, Local, + MacroDef, Module, ModuleDef, Name, PathResolution, Semantics, TypeParam, Visibility, }; use syntax::{ ast::{self, AstNode}, @@ -26,6 +26,7 @@ pub enum Definition { Local(Local), TypeParam(TypeParam), LifetimeParam(LifetimeParam), + ConstParam(ConstParam), Label(Label), } @@ -39,6 +40,7 @@ impl Definition { Definition::Local(it) => Some(it.module(db)), Definition::TypeParam(it) => Some(it.module(db)), Definition::LifetimeParam(it) => Some(it.module(db)), + Definition::ConstParam(it) => Some(it.module(db)), Definition::Label(it) => Some(it.module(db)), } } @@ -52,6 +54,7 @@ impl Definition { Definition::Local(_) => None, Definition::TypeParam(_) => None, Definition::LifetimeParam(_) => None, + Definition::ConstParam(_) => None, Definition::Label(_) => None, } } @@ -79,6 +82,7 @@ impl Definition { Definition::Local(it) => it.name(db)?, Definition::TypeParam(it) => it.name(db), Definition::LifetimeParam(it) => it.name(db), + Definition::ConstParam(it) => it.name(db), Definition::Label(it) => it.name(db), }; Some(name) @@ -233,6 +237,10 @@ impl NameClass { let def = sema.to_def(&it)?; Some(NameClass::Definition(Definition::TypeParam(def))) }, + ast::ConstParam(it) => { + let def = sema.to_def(&it)?; + Some(NameClass::Definition(Definition::ConstParam(def))) + }, _ => None, } } @@ -417,6 +425,7 @@ impl From for Definition { PathResolution::TypeParam(par) => Definition::TypeParam(par), PathResolution::Macro(def) => Definition::Macro(def), PathResolution::SelfType(impl_def) => Definition::SelfType(impl_def), + PathResolution::ConstParam(par) => Definition::ConstParam(par), } } } -- cgit v1.2.3