Fix renaming associated trait items with colliding names

This commit is contained in:
Lukas Wirth 2021-06-25 03:45:41 +02:00
parent 9239943b84
commit 942eeb2f55
2 changed files with 22 additions and 1 deletions

View File

@ -1716,6 +1716,25 @@ impl Foo for () {
);
}
#[test]
fn test_rename_trait_method_prefix_of_second() {
check(
"qux",
r#"
trait Foo {
fn foo$0() {}
fn foobar() {}
}
"#,
r#"
trait Foo {
fn qux() {}
fn foobar() {}
}
"#,
);
}
#[test]
fn test_rename_trait_const() {
let res = r"

View File

@ -544,7 +544,9 @@ impl<'a> FindUsages<'a> {
let trait_ = mod_def
.as_assoc_item(self.sema.db)?
.containing_trait_or_trait_impl(self.sema.db)?;
(trait_ == this_trait).then(|| {
(trait_ == this_trait
&& self.def.name(self.sema.db) == mod_def.name(self.sema.db))
.then(|| {
let FileRange { file_id, range } = self.sema.original_range(name.syntax());
let reference = FileReference {
range,