Skip to content

Commit df94a87

Browse files
committed
Auto merge of #16139 - jimmyhmiller:master, r=Veykril
Make functions in impl have a container name fixes #16015
2 parents 7040cef + b67b352 commit df94a87

File tree

3 files changed

+115
-44
lines changed

3 files changed

+115
-44
lines changed

crates/hir/src/symbols.rs

+7-4
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use hir_def::{
99
TraitId,
1010
};
1111
use hir_expand::{HirFileId, InFile};
12-
use hir_ty::db::HirDatabase;
12+
use hir_ty::{db::HirDatabase, display::HirDisplay};
1313
use syntax::{ast::HasName, AstNode, AstPtr, SmolStr, SyntaxNode, SyntaxNodePtr};
1414

1515
use crate::{Module, ModuleDef, Semantics};
@@ -231,9 +231,12 @@ impl<'a> SymbolCollector<'a> {
231231

232232
fn collect_from_impl(&mut self, impl_id: ImplId) {
233233
let impl_data = self.db.impl_data(impl_id);
234-
for &assoc_item_id in &impl_data.items {
235-
self.push_assoc_item(assoc_item_id)
236-
}
234+
let impl_name = Some(SmolStr::new(impl_data.self_ty.display(self.db).to_string()));
235+
self.with_container_name(impl_name, |s| {
236+
for &assoc_item_id in &impl_data.items {
237+
s.push_assoc_item(assoc_item_id)
238+
}
239+
})
237240
}
238241

239242
fn collect_from_trait(&mut self, trait_id: TraitId) {

crates/ide-db/src/symbol_index.rs

+6
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,12 @@ impl Struct {
414414
fn impl_fn() {}
415415
}
416416
417+
struct StructT<T>;
418+
419+
impl <T> StructT<T> {
420+
fn generic_impl_fn() {}
421+
}
422+
417423
trait Trait {
418424
fn trait_fn(&self);
419425
}

0 commit comments

Comments
 (0)