diff options
Diffstat (limited to 'crates/ra_hir_ty/src/test_db.rs')
-rw-r--r-- | crates/ra_hir_ty/src/test_db.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/crates/ra_hir_ty/src/test_db.rs b/crates/ra_hir_ty/src/test_db.rs index 208096aab..3a4d58bf9 100644 --- a/crates/ra_hir_ty/src/test_db.rs +++ b/crates/ra_hir_ty/src/test_db.rs | |||
@@ -105,8 +105,9 @@ impl TestDB { | |||
105 | } | 105 | } |
106 | 106 | ||
107 | // FIXME: don't duplicate this | 107 | // FIXME: don't duplicate this |
108 | pub fn diagnostics(&self) -> String { | 108 | pub fn diagnostics(&self) -> (String, u32) { |
109 | let mut buf = String::new(); | 109 | let mut buf = String::new(); |
110 | let mut count = 0; | ||
110 | let crate_graph = self.crate_graph(); | 111 | let crate_graph = self.crate_graph(); |
111 | for krate in crate_graph.iter() { | 112 | for krate in crate_graph.iter() { |
112 | let crate_def_map = self.crate_def_map(krate); | 113 | let crate_def_map = self.crate_def_map(krate); |
@@ -133,13 +134,14 @@ impl TestDB { | |||
133 | let infer = self.infer(f.into()); | 134 | let infer = self.infer(f.into()); |
134 | let mut sink = DiagnosticSink::new(|d| { | 135 | let mut sink = DiagnosticSink::new(|d| { |
135 | format_to!(buf, "{:?}: {}\n", d.syntax_node(self).text(), d.message()); | 136 | format_to!(buf, "{:?}: {}\n", d.syntax_node(self).text(), d.message()); |
137 | count += 1; | ||
136 | }); | 138 | }); |
137 | infer.add_diagnostics(self, f, &mut sink); | 139 | infer.add_diagnostics(self, f, &mut sink); |
138 | let mut validator = ExprValidator::new(f, infer, &mut sink); | 140 | let mut validator = ExprValidator::new(f, infer, &mut sink); |
139 | validator.validate_body(self); | 141 | validator.validate_body(self); |
140 | } | 142 | } |
141 | } | 143 | } |
142 | buf | 144 | (buf, count) |
143 | } | 145 | } |
144 | } | 146 | } |
145 | 147 | ||