diff options
Diffstat (limited to 'crates/ra_ide_db')
| -rw-r--r-- | crates/ra_ide_db/src/defs.rs | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/crates/ra_ide_db/src/defs.rs b/crates/ra_ide_db/src/defs.rs index f990e3bb9..60c11178e 100644 --- a/crates/ra_ide_db/src/defs.rs +++ b/crates/ra_ide_db/src/defs.rs | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | // FIXME: this badly needs rename/rewrite (matklad, 2020-02-06). | 6 | // FIXME: this badly needs rename/rewrite (matklad, 2020-02-06). |
| 7 | 7 | ||
| 8 | use hir::{ | 8 | use hir::{ |
| 9 | Adt, Field, HasVisibility, ImplDef, Local, MacroDef, Module, ModuleDef, Name, PathResolution, | 9 | Field, HasVisibility, ImplDef, Local, MacroDef, Module, ModuleDef, Name, PathResolution, |
| 10 | Semantics, TypeParam, Visibility, | 10 | Semantics, TypeParam, Visibility, |
| 11 | }; | 11 | }; |
| 12 | use ra_prof::profile; | 12 | use ra_prof::profile; |
| @@ -42,18 +42,10 @@ impl Definition { | |||
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | pub fn visibility(&self, db: &RootDatabase) -> Option<Visibility> { | 44 | pub fn visibility(&self, db: &RootDatabase) -> Option<Visibility> { |
| 45 | let module = self.module(db); | ||
| 46 | |||
| 47 | match self { | 45 | match self { |
| 48 | Definition::Macro(_) => None, | 46 | Definition::Macro(_) => None, |
| 49 | Definition::Field(sf) => Some(sf.visibility(db)), | 47 | Definition::Field(sf) => Some(sf.visibility(db)), |
| 50 | Definition::ModuleDef(def) => match def { | 48 | Definition::ModuleDef(def) => def.definition_visibility(db), |
| 51 | ModuleDef::EnumVariant(id) => { | ||
| 52 | let parent = id.parent_enum(db); | ||
| 53 | module?.visibility_of(db, &ModuleDef::Adt(Adt::Enum(parent))) | ||
| 54 | } | ||
| 55 | _ => module?.visibility_of(db, def), | ||
| 56 | }, | ||
| 57 | Definition::SelfType(_) => None, | 49 | Definition::SelfType(_) => None, |
| 58 | Definition::Local(_) => None, | 50 | Definition::Local(_) => None, |
| 59 | Definition::TypeParam(_) => None, | 51 | Definition::TypeParam(_) => None, |
