|
6 | 6 | // FIXME: this badly needs rename/rewrite (matklad, 2020-02-06).
|
7 | 7 |
|
8 | 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 | 10 | Semantics, TypeParam, Visibility,
|
11 | 11 | };
|
12 | 12 | use ra_prof::profile;
|
@@ -42,21 +42,10 @@ impl Definition {
|
42 | 42 | }
|
43 | 43 |
|
44 | 44 | pub fn visibility(&self, db: &RootDatabase) -> Option<Visibility> {
|
45 |
| - let module = self.module(db); |
46 |
| - |
47 | 45 | match self {
|
48 | 46 | Definition::Macro(_) => None,
|
49 | 47 | Definition::Field(sf) => Some(sf.visibility(db)),
|
50 |
| - Definition::ModuleDef(def) => match def { |
51 |
| - ModuleDef::EnumVariant(id) => { |
52 |
| - let parent = id.parent_enum(db); |
53 |
| - module?.visibility_of(db, &ModuleDef::Adt(Adt::Enum(parent))) |
54 |
| - } |
55 |
| - ModuleDef::Function(f) => Some(f.visibility(db)), |
56 |
| - ModuleDef::Const(c) => Some(c.visibility(db)), |
57 |
| - ModuleDef::TypeAlias(t) => Some(t.visibility(db)), |
58 |
| - _ => module?.visibility_of(db, def), |
59 |
| - }, |
| 48 | + Definition::ModuleDef(def) => def.definition_visibility(db), |
60 | 49 | Definition::SelfType(_) => None,
|
61 | 50 | Definition::Local(_) => None,
|
62 | 51 | Definition::TypeParam(_) => None,
|
|
0 commit comments