diff options
Diffstat (limited to 'crates/ra_hir/src/nameres')
-rw-r--r-- | crates/ra_hir/src/nameres/collector.rs | 9 | ||||
-rw-r--r-- | crates/ra_hir/src/nameres/tests.rs | 27 |
2 files changed, 27 insertions, 9 deletions
diff --git a/crates/ra_hir/src/nameres/collector.rs b/crates/ra_hir/src/nameres/collector.rs index e11198e02..ef4d1ed70 100644 --- a/crates/ra_hir/src/nameres/collector.rs +++ b/crates/ra_hir/src/nameres/collector.rs | |||
@@ -643,7 +643,6 @@ fn resolve_submodule( | |||
643 | let mod_name = path.file_stem().unwrap_or("unknown"); | 643 | let mod_name = path.file_stem().unwrap_or("unknown"); |
644 | let is_dir_owner = is_root || mod_name == "mod"; | 644 | let is_dir_owner = is_root || mod_name == "mod"; |
645 | 645 | ||
646 | let name = resolve_mod_name(name.to_string()); | ||
647 | let file_mod = dir_path.join(format!("{}.rs", name)); | 646 | let file_mod = dir_path.join(format!("{}.rs", name)); |
648 | let dir_mod = dir_path.join(format!("{}/mod.rs", name)); | 647 | let dir_mod = dir_path.join(format!("{}/mod.rs", name)); |
649 | let file_dir_mod = dir_path.join(format!("{}/{}.rs", mod_name, name)); | 648 | let file_dir_mod = dir_path.join(format!("{}/{}.rs", mod_name, name)); |
@@ -663,14 +662,6 @@ fn resolve_submodule( | |||
663 | } | 662 | } |
664 | } | 663 | } |
665 | 664 | ||
666 | fn resolve_mod_name(name: String) -> String { | ||
667 | if name.starts_with("r#") { | ||
668 | name.replace("r#", "") | ||
669 | } else { | ||
670 | name | ||
671 | } | ||
672 | } | ||
673 | |||
674 | #[cfg(test)] | 665 | #[cfg(test)] |
675 | mod tests { | 666 | mod tests { |
676 | use ra_db::SourceDatabase; | 667 | use ra_db::SourceDatabase; |
diff --git a/crates/ra_hir/src/nameres/tests.rs b/crates/ra_hir/src/nameres/tests.rs index adac814d9..78332ce7c 100644 --- a/crates/ra_hir/src/nameres/tests.rs +++ b/crates/ra_hir/src/nameres/tests.rs | |||
@@ -339,6 +339,33 @@ fn module_resolution_works_for_non_standard_filenames() { | |||
339 | } | 339 | } |
340 | 340 | ||
341 | #[test] | 341 | #[test] |
342 | fn module_resolution_works_for_raw_modules() { | ||
343 | let map = def_map_with_crate_graph( | ||
344 | " | ||
345 | //- /library.rs | ||
346 | mod r#async; | ||
347 | use self::r#async::Bar; | ||
348 | |||
349 | //- /async.rs | ||
350 | pub struct Bar; | ||
351 | ", | ||
352 | crate_graph! { | ||
353 | "library": ("/library.rs", []), | ||
354 | }, | ||
355 | ); | ||
356 | |||
357 | assert_snapshot_matches!(map, @r###" | ||
358 | ⋮crate | ||
359 | ⋮Bar: t v | ||
360 | ⋮async: t | ||
361 | ⋮ | ||
362 | ⋮crate::async | ||
363 | ⋮Bar: t v | ||
364 | "###); | ||
365 | |||
366 | } | ||
367 | |||
368 | #[test] | ||
342 | fn name_res_works_for_broken_modules() { | 369 | fn name_res_works_for_broken_modules() { |
343 | covers!(name_res_works_for_broken_modules); | 370 | covers!(name_res_works_for_broken_modules); |
344 | let map = def_map( | 371 | let map = def_map( |