diff options
| author | bors <bors@rust-lang.org> | 2022-08-31 08:15:31 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-08-31 08:15:31 +0000 |
| commit | b6138965cdfc2d6b9b32fe0cc5cef9482975dc94 (patch) | |
| tree | dfb3e69e7d121d25996d4a89a75ab944fc8c49fe | |
| parent | ef27641f56d8783226e8f9283c4cc533dc5534f8 (diff) | |
| parent | 662ab0cd8eb6784e764903325da30418a2095307 (diff) | |
| download | rust-b6138965cdfc2d6b9b32fe0cc5cef9482975dc94.tar.gz rust-b6138965cdfc2d6b9b32fe0cc5cef9482975dc94.zip | |
Auto merge of #13149 - lowr:fix/unescape-raw-ident-module-path, r=Veykril
fix: unescape all occurrences of module name in module resolution Fixes #13141
| -rw-r--r-- | crates/hir-def/src/nameres/mod_resolution.rs | 3 | ||||
| -rw-r--r-- | crates/hir-def/src/nameres/tests/mod_resolution.rs | 16 |
2 files changed, 17 insertions, 2 deletions
diff --git a/crates/hir-def/src/nameres/mod_resolution.rs b/crates/hir-def/src/nameres/mod_resolution.rs index 99f7f1b549e..ca7bcc814e8 100644 --- a/crates/hir-def/src/nameres/mod_resolution.rs +++ b/crates/hir-def/src/nameres/mod_resolution.rs @@ -65,6 +65,7 @@ impl ModDir { name: &Name, attr_path: Option<&SmolStr>, ) -> Result<(FileId, bool, ModDir), Box<[String]>> { + let name = name.unescaped(); let orig_file_id = file_id.original_file(db.upcast()); let mut candidate_files = ArrayVec::<_, 2>::new(); @@ -73,12 +74,10 @@ impl ModDir { candidate_files.push(self.dir_path.join_attr(attr_path, self.root_non_dir_owner)) } None if file_id.is_include_macro(db.upcast()) => { - let name = name.unescaped(); candidate_files.push(format!("{}.rs", name)); candidate_files.push(format!("{}/mod.rs", name)); } None => { - let name = name.unescaped(); candidate_files.push(format!("{}{}.rs", self.dir_path.0, name)); candidate_files.push(format!("{}{}/mod.rs", self.dir_path.0, name)); } diff --git a/crates/hir-def/src/nameres/tests/mod_resolution.rs b/crates/hir-def/src/nameres/tests/mod_resolution.rs index 3fa585574de..ba3bf8b5a5c 100644 --- a/crates/hir-def/src/nameres/tests/mod_resolution.rs +++ b/crates/hir-def/src/nameres/tests/mod_resolution.rs @@ -127,7 +127,15 @@ mod r#async; use self::r#async::Bar; //- /async.rs +mod foo; +mod r#async; pub struct Bar; + +//- /async/foo.rs +pub struct Foo; + +//- /async/async.rs +pub struct Baz; "#, expect![[r#" crate @@ -136,6 +144,14 @@ pub struct Bar; crate::r#async Bar: t v + foo: t + r#async: t + + crate::r#async::foo + Foo: t v + + crate::r#async::r#async + Baz: t v "#]], ); } |
