66// FIXME: this badly needs rename/rewrite (matklad, 2020-02-06).
77
88use hir:: {
9- Adt , AssocItem , HasSource , ImplBlock , InFile , Local , MacroDef , Module , ModuleDef , SourceBinder ,
9+ Adt , HasSource , ImplBlock , InFile , Local , MacroDef , Module , ModuleDef , SourceBinder ,
1010 StructField , TypeParam , VariantDef ,
1111} ;
1212use ra_prof:: profile;
@@ -20,9 +20,8 @@ use crate::RootDatabase;
2020#[ derive( Debug , PartialEq , Eq ) ]
2121pub enum NameKind {
2222 Macro ( MacroDef ) ,
23- Field ( StructField ) ,
24- AssocItem ( AssocItem ) ,
25- Def ( ModuleDef ) ,
23+ StructField ( StructField ) ,
24+ ModuleDef ( ModuleDef ) ,
2625 SelfType ( ImplBlock ) ,
2726 Local ( Local ) ,
2827 TypeParam ( TypeParam ) ,
@@ -92,29 +91,17 @@ pub fn classify_name(
9291 ast:: FnDef ( it) => {
9392 let src = name. with_value( it) ;
9493 let def: hir:: Function = sb. to_def( src) ?;
95- if parent. parent( ) . and_then( ast:: ItemList :: cast) . map_or( false , |it| it. syntax( ) . parent( ) . and_then( ast:: Module :: cast) . is_none( ) ) {
96- Some ( from_assoc_item( sb. db, def. into( ) ) )
97- } else {
98- Some ( from_module_def( sb. db, def. into( ) , None ) )
99- }
94+ Some ( from_module_def( sb. db, def. into( ) , None ) )
10095 } ,
10196 ast:: ConstDef ( it) => {
10297 let src = name. with_value( it) ;
10398 let def: hir:: Const = sb. to_def( src) ?;
104- if parent. parent( ) . and_then( ast:: ItemList :: cast) . is_some( ) {
105- Some ( from_assoc_item( sb. db, def. into( ) ) )
106- } else {
107- Some ( from_module_def( sb. db, def. into( ) , None ) )
108- }
99+ Some ( from_module_def( sb. db, def. into( ) , None ) )
109100 } ,
110101 ast:: TypeAliasDef ( it) => {
111102 let src = name. with_value( it) ;
112103 let def: hir:: TypeAlias = sb. to_def( src) ?;
113- if parent. parent( ) . and_then( ast:: ItemList :: cast) . is_some( ) {
114- Some ( from_assoc_item( sb. db, def. into( ) ) )
115- } else {
116- Some ( from_module_def( sb. db, def. into( ) , None ) )
117- }
104+ Some ( from_module_def( sb. db, def. into( ) , None ) )
118105 } ,
119106 ast:: MacroCall ( it) => {
120107 let src = name. with_value( it) ;
@@ -142,19 +129,8 @@ pub fn classify_name(
142129 }
143130}
144131
145- pub fn from_assoc_item ( db : & RootDatabase , item : AssocItem ) -> NameDefinition {
146- let container = item. module ( db) ;
147- let visibility = match item {
148- AssocItem :: Function ( f) => f. source ( db) . value . visibility ( ) ,
149- AssocItem :: Const ( c) => c. source ( db) . value . visibility ( ) ,
150- AssocItem :: TypeAlias ( a) => a. source ( db) . value . visibility ( ) ,
151- } ;
152- let kind = NameKind :: AssocItem ( item) ;
153- NameDefinition { kind, container, visibility }
154- }
155-
156132pub fn from_struct_field ( db : & RootDatabase , field : StructField ) -> NameDefinition {
157- let kind = NameKind :: Field ( field) ;
133+ let kind = NameKind :: StructField ( field) ;
158134 let parent = field. parent_def ( db) ;
159135 let container = parent. module ( db) ;
160136 let visibility = match parent {
@@ -170,7 +146,7 @@ pub fn from_module_def(
170146 def : ModuleDef ,
171147 module : Option < Module > ,
172148) -> NameDefinition {
173- let kind = NameKind :: Def ( def) ;
149+ let kind = NameKind :: ModuleDef ( def) ;
174150 let ( container, visibility) = match def {
175151 ModuleDef :: Module ( it) => {
176152 let container = it. parent ( db) . or_else ( || Some ( it) ) . unwrap ( ) ;
0 commit comments