diff options
Diffstat (limited to 'crates/ra_hir_def/src/nameres/tests.rs')
-rw-r--r-- | crates/ra_hir_def/src/nameres/tests.rs | 53 |
1 files changed, 40 insertions, 13 deletions
diff --git a/crates/ra_hir_def/src/nameres/tests.rs b/crates/ra_hir_def/src/nameres/tests.rs index 87fcd617c..ff474b53b 100644 --- a/crates/ra_hir_def/src/nameres/tests.rs +++ b/crates/ra_hir_def/src/nameres/tests.rs | |||
@@ -32,27 +32,22 @@ fn render_crate_def_map(map: &CrateDefMap) -> String { | |||
32 | *buf += path; | 32 | *buf += path; |
33 | *buf += "\n"; | 33 | *buf += "\n"; |
34 | 34 | ||
35 | let mut entries = map.modules[module] | 35 | let mut entries = map.modules[module].scope.collect_resolutions(); |
36 | .scope | 36 | entries.sort_by_key(|(name, _)| name.clone()); |
37 | .items | 37 | |
38 | .iter() | 38 | for (name, def) in entries { |
39 | .map(|(name, res)| (name, res.def)) | ||
40 | .collect::<Vec<_>>(); | ||
41 | entries.sort_by_key(|(name, _)| *name); | ||
42 | |||
43 | for (name, res) in entries { | ||
44 | *buf += &format!("{}:", name); | 39 | *buf += &format!("{}:", name); |
45 | 40 | ||
46 | if res.types.is_some() { | 41 | if def.types.is_some() { |
47 | *buf += " t"; | 42 | *buf += " t"; |
48 | } | 43 | } |
49 | if res.values.is_some() { | 44 | if def.values.is_some() { |
50 | *buf += " v"; | 45 | *buf += " v"; |
51 | } | 46 | } |
52 | if res.macros.is_some() { | 47 | if def.macros.is_some() { |
53 | *buf += " m"; | 48 | *buf += " m"; |
54 | } | 49 | } |
55 | if res.is_none() { | 50 | if def.is_none() { |
56 | *buf += " _"; | 51 | *buf += " _"; |
57 | } | 52 | } |
58 | 53 | ||
@@ -558,3 +553,35 @@ fn cfg_test() { | |||
558 | ⋮Foo: t v | 553 | ⋮Foo: t v |
559 | "###); | 554 | "###); |
560 | } | 555 | } |
556 | |||
557 | #[test] | ||
558 | fn infer_multiple_namespace() { | ||
559 | let map = def_map( | ||
560 | r#" | ||
561 | //- /main.rs | ||
562 | mod a { | ||
563 | pub type T = (); | ||
564 | pub use crate::b::*; | ||
565 | } | ||
566 | |||
567 | use crate::a::T; | ||
568 | |||
569 | mod b { | ||
570 | pub const T: () = (); | ||
571 | } | ||
572 | "#, | ||
573 | ); | ||
574 | |||
575 | assert_snapshot!(map, @r###" | ||
576 | ⋮crate | ||
577 | ⋮T: t v | ||
578 | ⋮a: t | ||
579 | ⋮b: t | ||
580 | ⋮ | ||
581 | ⋮crate::b | ||
582 | ⋮T: v | ||
583 | ⋮ | ||
584 | ⋮crate::a | ||
585 | ⋮T: t v | ||
586 | "###); | ||
587 | } | ||