Auto merge of #13890 - lowr:fix/unescape-inline-mod-name, r=Veykril
fix: unescape inline module names in module resolution Fixes #13884
This commit is contained in:
commit
e125bee055
@ -34,7 +34,7 @@ pub(super) fn descend_into_definition(
|
||||
let path = match attr_path.map(SmolStr::as_str) {
|
||||
None => {
|
||||
let mut path = self.dir_path.clone();
|
||||
path.push(&name.to_smol_str());
|
||||
path.push(&name.unescaped().to_smol_str());
|
||||
path
|
||||
}
|
||||
Some(attr_path) => {
|
||||
|
@ -156,6 +156,43 @@ fn module_resolution_works_for_raw_modules() {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn module_resolution_works_for_inline_raw_modules() {
|
||||
check(
|
||||
r#"
|
||||
//- /lib.rs
|
||||
mod r#async {
|
||||
pub mod a;
|
||||
pub mod r#async;
|
||||
}
|
||||
use self::r#async::a::Foo;
|
||||
use self::r#async::r#async::Bar;
|
||||
|
||||
//- /async/a.rs
|
||||
pub struct Foo;
|
||||
|
||||
//- /async/async.rs
|
||||
pub struct Bar;
|
||||
"#,
|
||||
expect![[r#"
|
||||
crate
|
||||
Bar: t v
|
||||
Foo: t v
|
||||
r#async: t
|
||||
|
||||
crate::r#async
|
||||
a: t
|
||||
r#async: t
|
||||
|
||||
crate::r#async::a
|
||||
Foo: t v
|
||||
|
||||
crate::r#async::r#async
|
||||
Bar: t v
|
||||
"#]],
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn module_resolution_decl_path() {
|
||||
check(
|
||||
|
Loading…
Reference in New Issue
Block a user