Skip to content

Commit 8ac4595

Browse files
Merge #11436
11436: fix: renaming modules does not change references by super r=Veykril a=TheDoctor314 Fixes #11289. Co-authored-by: TheDoctor314 <[email protected]>
2 parents 9b1978a + 10e7e18 commit 8ac4595

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

crates/ide/src/rename.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1108,6 +1108,31 @@ pub mod foo$0;
11081108
);
11091109
}
11101110

1111+
#[test]
1112+
fn test_rename_mod_ref_by_super() {
1113+
check(
1114+
"baz",
1115+
r#"
1116+
mod $0foo {
1117+
struct X;
1118+
1119+
mod bar {
1120+
use super::X;
1121+
}
1122+
}
1123+
"#,
1124+
r#"
1125+
mod baz {
1126+
struct X;
1127+
1128+
mod bar {
1129+
use super::X;
1130+
}
1131+
}
1132+
"#,
1133+
)
1134+
}
1135+
11111136
#[test]
11121137
fn test_enum_variant_from_module_1() {
11131138
cov_mark::check!(rename_non_local);

crates/ide_db/src/rename.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,10 @@ fn source_edit_from_name_ref(
343343
new_name: &str,
344344
def: Definition,
345345
) -> bool {
346+
if name_ref.super_token().is_some() {
347+
return true;
348+
}
349+
346350
if let Some(record_field) = ast::RecordExprField::for_name_ref(name_ref) {
347351
let rcf_name_ref = record_field.name_ref();
348352
let rcf_expr = record_field.expr();

0 commit comments

Comments
 (0)