@@ -23,6 +23,7 @@ pub struct FileSymbol {
23
23
pub loc : DeclarationLocation ,
24
24
pub container_name : Option < SmolStr > ,
25
25
pub is_alias : bool ,
26
+ pub is_assoc : bool ,
26
27
}
27
28
28
29
#[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
@@ -121,34 +122,34 @@ impl<'a> SymbolCollector<'a> {
121
122
match module_def_id {
122
123
ModuleDefId :: ModuleId ( id) => self . push_module ( id) ,
123
124
ModuleDefId :: FunctionId ( id) => {
124
- self . push_decl ( id) ;
125
+ self . push_decl ( id, false ) ;
125
126
self . collect_from_body ( id) ;
126
127
}
127
- ModuleDefId :: AdtId ( AdtId :: StructId ( id) ) => self . push_decl ( id) ,
128
- ModuleDefId :: AdtId ( AdtId :: EnumId ( id) ) => self . push_decl ( id) ,
129
- ModuleDefId :: AdtId ( AdtId :: UnionId ( id) ) => self . push_decl ( id) ,
128
+ ModuleDefId :: AdtId ( AdtId :: StructId ( id) ) => self . push_decl ( id, false ) ,
129
+ ModuleDefId :: AdtId ( AdtId :: EnumId ( id) ) => self . push_decl ( id, false ) ,
130
+ ModuleDefId :: AdtId ( AdtId :: UnionId ( id) ) => self . push_decl ( id, false ) ,
130
131
ModuleDefId :: ConstId ( id) => {
131
- self . push_decl ( id) ;
132
+ self . push_decl ( id, false ) ;
132
133
self . collect_from_body ( id) ;
133
134
}
134
135
ModuleDefId :: StaticId ( id) => {
135
- self . push_decl ( id) ;
136
+ self . push_decl ( id, false ) ;
136
137
self . collect_from_body ( id) ;
137
138
}
138
139
ModuleDefId :: TraitId ( id) => {
139
- self . push_decl ( id) ;
140
+ self . push_decl ( id, false ) ;
140
141
self . collect_from_trait ( id) ;
141
142
}
142
143
ModuleDefId :: TraitAliasId ( id) => {
143
- self . push_decl ( id) ;
144
+ self . push_decl ( id, false ) ;
144
145
}
145
146
ModuleDefId :: TypeAliasId ( id) => {
146
- self . push_decl ( id) ;
147
+ self . push_decl ( id, false ) ;
147
148
}
148
149
ModuleDefId :: MacroId ( id) => match id {
149
- MacroId :: Macro2Id ( id) => self . push_decl ( id) ,
150
- MacroId :: MacroRulesId ( id) => self . push_decl ( id) ,
151
- MacroId :: ProcMacroId ( id) => self . push_decl ( id) ,
150
+ MacroId :: Macro2Id ( id) => self . push_decl ( id, false ) ,
151
+ MacroId :: MacroRulesId ( id) => self . push_decl ( id, false ) ,
152
+ MacroId :: ProcMacroId ( id) => self . push_decl ( id, false ) ,
152
153
} ,
153
154
// Don't index these.
154
155
ModuleDefId :: BuiltinType ( _) => { }
@@ -190,6 +191,7 @@ impl<'a> SymbolCollector<'a> {
190
191
container_name : self . current_container_name . clone ( ) ,
191
192
loc : dec_loc,
192
193
is_alias : false ,
194
+ is_assoc : false ,
193
195
} ) ;
194
196
} ) ;
195
197
}
@@ -202,9 +204,9 @@ impl<'a> SymbolCollector<'a> {
202
204
for & id in id {
203
205
if id. module ( self . db . upcast ( ) ) == module_id {
204
206
match id {
205
- MacroId :: Macro2Id ( id) => self . push_decl ( id) ,
206
- MacroId :: MacroRulesId ( id) => self . push_decl ( id) ,
207
- MacroId :: ProcMacroId ( id) => self . push_decl ( id) ,
207
+ MacroId :: Macro2Id ( id) => self . push_decl ( id, false ) ,
208
+ MacroId :: MacroRulesId ( id) => self . push_decl ( id, false ) ,
209
+ MacroId :: ProcMacroId ( id) => self . push_decl ( id, false ) ,
208
210
}
209
211
}
210
212
}
@@ -266,13 +268,13 @@ impl<'a> SymbolCollector<'a> {
266
268
267
269
fn push_assoc_item ( & mut self , assoc_item_id : AssocItemId ) {
268
270
match assoc_item_id {
269
- AssocItemId :: FunctionId ( id) => self . push_decl ( id) ,
270
- AssocItemId :: ConstId ( id) => self . push_decl ( id) ,
271
- AssocItemId :: TypeAliasId ( id) => self . push_decl ( id) ,
271
+ AssocItemId :: FunctionId ( id) => self . push_decl ( id, true ) ,
272
+ AssocItemId :: ConstId ( id) => self . push_decl ( id, true ) ,
273
+ AssocItemId :: TypeAliasId ( id) => self . push_decl ( id, true ) ,
272
274
}
273
275
}
274
276
275
- fn push_decl < L > ( & mut self , id : L )
277
+ fn push_decl < L > ( & mut self , id : L , is_assoc : bool )
276
278
where
277
279
L : Lookup + Into < ModuleDefId > ,
278
280
<L as Lookup >:: Data : HasSource ,
@@ -296,6 +298,7 @@ impl<'a> SymbolCollector<'a> {
296
298
loc : dec_loc. clone ( ) ,
297
299
container_name : self . current_container_name . clone ( ) ,
298
300
is_alias : true ,
301
+ is_assoc,
299
302
} ) ;
300
303
}
301
304
}
@@ -306,6 +309,7 @@ impl<'a> SymbolCollector<'a> {
306
309
container_name : self . current_container_name . clone ( ) ,
307
310
loc : dec_loc,
308
311
is_alias : false ,
312
+ is_assoc,
309
313
} ) ;
310
314
}
311
315
@@ -331,6 +335,7 @@ impl<'a> SymbolCollector<'a> {
331
335
loc : dec_loc. clone ( ) ,
332
336
container_name : self . current_container_name . clone ( ) ,
333
337
is_alias : true ,
338
+ is_assoc : false ,
334
339
} ) ;
335
340
}
336
341
}
@@ -341,6 +346,7 @@ impl<'a> SymbolCollector<'a> {
341
346
container_name : self . current_container_name . clone ( ) ,
342
347
loc : dec_loc,
343
348
is_alias : false ,
349
+ is_assoc : false ,
344
350
} ) ;
345
351
}
346
352
}
0 commit comments