diff options
| author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2022-02-08 23:19:07 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-08 23:19:07 +0000 |
| commit | 8ac459501ea74bf19ad664b4df135cf340c889ba (patch) | |
| tree | 8847f870437ccf9e019eab9212615582597db736 | |
| parent | 9b1978a3ed405c2a5ec34703914ec1878b599e14 (diff) | |
| parent | 10e7e18dc6401dd57b13479c75362c681ee078ca (diff) | |
| download | rust-8ac459501ea74bf19ad664b4df135cf340c889ba.tar.gz rust-8ac459501ea74bf19ad664b4df135cf340c889ba.zip | |
Merge #11436
11436: fix: renaming modules does not change references by super r=Veykril a=TheDoctor314 Fixes #11289. Co-authored-by: TheDoctor314 <64731940+TheDoctor314@users.noreply.github.com>
| -rw-r--r-- | crates/ide/src/rename.rs | 25 | ||||
| -rw-r--r-- | crates/ide_db/src/rename.rs | 4 |
2 files changed, 29 insertions, 0 deletions
diff --git a/crates/ide/src/rename.rs b/crates/ide/src/rename.rs index f9f9c0832cd..971bcede5ac 100644 --- a/crates/ide/src/rename.rs +++ b/crates/ide/src/rename.rs @@ -1109,6 +1109,31 @@ pub mod foo$0; } #[test] + fn test_rename_mod_ref_by_super() { + check( + "baz", + r#" + mod $0foo { + struct X; + + mod bar { + use super::X; + } + } + "#, + r#" + mod baz { + struct X; + + mod bar { + use super::X; + } + } + "#, + ) + } + + #[test] fn test_enum_variant_from_module_1() { cov_mark::check!(rename_non_local); check( diff --git a/crates/ide_db/src/rename.rs b/crates/ide_db/src/rename.rs index 188499db72c..4392ae3e5ab 100644 --- a/crates/ide_db/src/rename.rs +++ b/crates/ide_db/src/rename.rs @@ -343,6 +343,10 @@ fn source_edit_from_name_ref( new_name: &str, def: Definition, ) -> bool { + if name_ref.super_token().is_some() { + return true; + } + if let Some(record_field) = ast::RecordExprField::for_name_ref(name_ref) { let rcf_name_ref = record_field.name_ref(); let rcf_expr = record_field.expr(); |
