diff options
Diffstat (limited to 'crates/ra_hir/src/nameres/tests.rs')
-rw-r--r-- | crates/ra_hir/src/nameres/tests.rs | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/crates/ra_hir/src/nameres/tests.rs b/crates/ra_hir/src/nameres/tests.rs index 4ff897ca5..bc4b47b70 100644 --- a/crates/ra_hir/src/nameres/tests.rs +++ b/crates/ra_hir/src/nameres/tests.rs | |||
@@ -12,8 +12,7 @@ use test_utils::covers; | |||
12 | 12 | ||
13 | use crate::{ | 13 | use crate::{ |
14 | mock::{CrateGraphFixture, MockDatabase}, | 14 | mock::{CrateGraphFixture, MockDatabase}, |
15 | nameres::Resolution, | 15 | Crate, |
16 | Crate, Either, | ||
17 | }; | 16 | }; |
18 | 17 | ||
19 | use super::*; | 18 | use super::*; |
@@ -37,35 +36,38 @@ fn render_crate_def_map(map: &CrateDefMap) -> String { | |||
37 | *buf += path; | 36 | *buf += path; |
38 | *buf += "\n"; | 37 | *buf += "\n"; |
39 | 38 | ||
40 | let items = map.modules[module].scope.items.iter().map(|(name, it)| (name, Either::A(it))); | 39 | let mut entries = map.modules[module] |
41 | let macros = map.modules[module].scope.macros.iter().map(|(name, m)| (name, Either::B(m))); | 40 | .scope |
42 | let mut entries = items.chain(macros).collect::<Vec<_>>(); | 41 | .items |
43 | 42 | .iter() | |
43 | .map(|(name, res)| (name, res.def)) | ||
44 | .collect::<Vec<_>>(); | ||
44 | entries.sort_by_key(|(name, _)| *name); | 45 | entries.sort_by_key(|(name, _)| *name); |
46 | |||
45 | for (name, res) in entries { | 47 | for (name, res) in entries { |
46 | match res { | 48 | *buf += &format!("{}:", name); |
47 | Either::A(it) => { | 49 | |
48 | *buf += &format!("{}: {}\n", name, dump_resolution(it)); | 50 | if res.types.is_some() { |
49 | } | 51 | *buf += " t"; |
50 | Either::B(_) => { | 52 | } |
51 | *buf += &format!("{}: m\n", name); | 53 | if res.values.is_some() { |
52 | } | 54 | *buf += " v"; |
55 | } | ||
56 | if res.macros.is_some() { | ||
57 | *buf += " m"; | ||
58 | } | ||
59 | if res.is_none() { | ||
60 | *buf += " _"; | ||
53 | } | 61 | } |
62 | |||
63 | *buf += "\n"; | ||
54 | } | 64 | } |
65 | |||
55 | for (name, child) in map.modules[module].children.iter() { | 66 | for (name, child) in map.modules[module].children.iter() { |
56 | let path = path.to_string() + &format!("::{}", name); | 67 | let path = path.to_string() + &format!("::{}", name); |
57 | go(buf, map, &path, *child); | 68 | go(buf, map, &path, *child); |
58 | } | 69 | } |
59 | } | 70 | } |
60 | |||
61 | fn dump_resolution(resolution: &Resolution) -> &'static str { | ||
62 | match (resolution.def.types.is_some(), resolution.def.values.is_some()) { | ||
63 | (true, true) => "t v", | ||
64 | (true, false) => "t", | ||
65 | (false, true) => "v", | ||
66 | (false, false) => "_", | ||
67 | } | ||
68 | } | ||
69 | } | 71 | } |
70 | 72 | ||
71 | fn def_map(fixtute: &str) -> String { | 73 | fn def_map(fixtute: &str) -> String { |