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) {
|
let path = match attr_path.map(SmolStr::as_str) {
|
||||||
None => {
|
None => {
|
||||||
let mut path = self.dir_path.clone();
|
let mut path = self.dir_path.clone();
|
||||||
path.push(&name.to_smol_str());
|
path.push(&name.unescaped().to_smol_str());
|
||||||
path
|
path
|
||||||
}
|
}
|
||||||
Some(attr_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]
|
#[test]
|
||||||
fn module_resolution_decl_path() {
|
fn module_resolution_decl_path() {
|
||||||
check(
|
check(
|
||||||
|
Loading…
Reference in New Issue
Block a user