diff options
47 files changed, 54 insertions, 425 deletions
diff --git a/Cargo.lock b/Cargo.lock index bc9a989fe..ad7760d98 100644 --- a/Cargo.lock +++ b/Cargo.lock | |||
@@ -345,12 +345,13 @@ dependencies = [ | |||
345 | ] | 345 | ] |
346 | 346 | ||
347 | [[package]] | 347 | [[package]] |
348 | name = "expect" | 348 | name = "expect-test" |
349 | version = "0.0.0" | 349 | version = "0.1.0" |
350 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
351 | checksum = "a3e383741ea1982866572109d1a8c807bd36aad91fca701489fdca56ef92b3b8" | ||
350 | dependencies = [ | 352 | dependencies = [ |
351 | "difference", | 353 | "difference", |
352 | "once_cell", | 354 | "once_cell", |
353 | "stdx", | ||
354 | ] | 355 | ] |
355 | 356 | ||
356 | [[package]] | 357 | [[package]] |
@@ -508,7 +509,7 @@ dependencies = [ | |||
508 | "cfg", | 509 | "cfg", |
509 | "drop_bomb", | 510 | "drop_bomb", |
510 | "either", | 511 | "either", |
511 | "expect", | 512 | "expect-test", |
512 | "fst", | 513 | "fst", |
513 | "hir_expand", | 514 | "hir_expand", |
514 | "indexmap", | 515 | "indexmap", |
@@ -553,7 +554,7 @@ dependencies = [ | |||
553 | "chalk-recursive", | 554 | "chalk-recursive", |
554 | "chalk-solve", | 555 | "chalk-solve", |
555 | "ena", | 556 | "ena", |
556 | "expect", | 557 | "expect-test", |
557 | "hir_def", | 558 | "hir_def", |
558 | "hir_expand", | 559 | "hir_expand", |
559 | "itertools", | 560 | "itertools", |
@@ -587,7 +588,7 @@ dependencies = [ | |||
587 | "base_db", | 588 | "base_db", |
588 | "cfg", | 589 | "cfg", |
589 | "either", | 590 | "either", |
590 | "expect", | 591 | "expect-test", |
591 | "hir", | 592 | "hir", |
592 | "ide_db", | 593 | "ide_db", |
593 | "indexmap", | 594 | "indexmap", |
@@ -1225,7 +1226,7 @@ dependencies = [ | |||
1225 | "cfg", | 1226 | "cfg", |
1226 | "crossbeam-channel", | 1227 | "crossbeam-channel", |
1227 | "env_logger", | 1228 | "env_logger", |
1228 | "expect", | 1229 | "expect-test", |
1229 | "flycheck", | 1230 | "flycheck", |
1230 | "hir", | 1231 | "hir", |
1231 | "hir_def", | 1232 | "hir_def", |
@@ -1452,7 +1453,7 @@ name = "ssr" | |||
1452 | version = "0.0.0" | 1453 | version = "0.0.0" |
1453 | dependencies = [ | 1454 | dependencies = [ |
1454 | "base_db", | 1455 | "base_db", |
1455 | "expect", | 1456 | "expect-test", |
1456 | "hir", | 1457 | "hir", |
1457 | "ide_db", | 1458 | "ide_db", |
1458 | "itertools", | 1459 | "itertools", |
@@ -1494,7 +1495,7 @@ name = "syntax" | |||
1494 | version = "0.0.0" | 1495 | version = "0.0.0" |
1495 | dependencies = [ | 1496 | dependencies = [ |
1496 | "arrayvec", | 1497 | "arrayvec", |
1497 | "expect", | 1498 | "expect-test", |
1498 | "itertools", | 1499 | "itertools", |
1499 | "once_cell", | 1500 | "once_cell", |
1500 | "parser", | 1501 | "parser", |
diff --git a/crates/expect/Cargo.toml b/crates/expect/Cargo.toml deleted file mode 100644 index b54d3a60e..000000000 --- a/crates/expect/Cargo.toml +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | [package] | ||
2 | name = "expect" | ||
3 | version = "0.0.0" | ||
4 | license = "MIT OR Apache-2.0" | ||
5 | authors = ["rust-analyzer developers"] | ||
6 | edition = "2018" | ||
7 | |||
8 | [lib] | ||
9 | doctest = false | ||
10 | |||
11 | [dependencies] | ||
12 | once_cell = "1" | ||
13 | difference = "2" | ||
14 | |||
15 | stdx = { path = "../stdx" } | ||
diff --git a/crates/expect/src/lib.rs b/crates/expect/src/lib.rs deleted file mode 100644 index bd83895f7..000000000 --- a/crates/expect/src/lib.rs +++ /dev/null | |||
@@ -1,356 +0,0 @@ | |||
1 | //! Snapshot testing library, see | ||
2 | //! https://github.com/rust-analyzer/rust-analyzer/pull/5101 | ||
3 | use std::{ | ||
4 | collections::HashMap, | ||
5 | env, fmt, fs, mem, | ||
6 | ops::Range, | ||
7 | panic, | ||
8 | path::{Path, PathBuf}, | ||
9 | sync::Mutex, | ||
10 | }; | ||
11 | |||
12 | use difference::Changeset; | ||
13 | use once_cell::sync::Lazy; | ||
14 | use stdx::{lines_with_ends, trim_indent}; | ||
15 | |||
16 | const HELP: &str = " | ||
17 | You can update all `expect![[]]` tests by running: | ||
18 | |||
19 | env UPDATE_EXPECT=1 cargo test | ||
20 | |||
21 | To update a single test, place the cursor on `expect` token and use `run` feature of rust-analyzer. | ||
22 | "; | ||
23 | |||
24 | fn update_expect() -> bool { | ||
25 | env::var("UPDATE_EXPECT").is_ok() | ||
26 | } | ||
27 | |||
28 | /// expect![[r#"inline snapshot"#]] | ||
29 | #[macro_export] | ||
30 | macro_rules! expect { | ||
31 | [[$data:literal]] => {$crate::Expect { | ||
32 | position: $crate::Position { | ||
33 | file: file!(), | ||
34 | line: line!(), | ||
35 | column: column!(), | ||
36 | }, | ||
37 | data: $data, | ||
38 | }}; | ||
39 | [[]] => { $crate::expect![[""]] }; | ||
40 | } | ||
41 | |||
42 | /// expect_file!["/crates/foo/test_data/bar.html"] | ||
43 | #[macro_export] | ||
44 | macro_rules! expect_file { | ||
45 | [$path:expr] => {$crate::ExpectFile { | ||
46 | path: std::path::PathBuf::from($path) | ||
47 | }}; | ||
48 | } | ||
49 | |||
50 | #[derive(Debug)] | ||
51 | pub struct Expect { | ||
52 | pub position: Position, | ||
53 | pub data: &'static str, | ||
54 | } | ||
55 | |||
56 | #[derive(Debug)] | ||
57 | pub struct ExpectFile { | ||
58 | pub path: PathBuf, | ||
59 | } | ||
60 | |||
61 | #[derive(Debug)] | ||
62 | pub struct Position { | ||
63 | pub file: &'static str, | ||
64 | pub line: u32, | ||
65 | pub column: u32, | ||
66 | } | ||
67 | |||
68 | impl fmt::Display for Position { | ||
69 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | ||
70 | write!(f, "{}:{}:{}", self.file, self.line, self.column) | ||
71 | } | ||
72 | } | ||
73 | |||
74 | impl Expect { | ||
75 | pub fn assert_eq(&self, actual: &str) { | ||
76 | let trimmed = self.trimmed(); | ||
77 | if trimmed == actual { | ||
78 | return; | ||
79 | } | ||
80 | Runtime::fail_expect(self, &trimmed, actual); | ||
81 | } | ||
82 | pub fn assert_debug_eq(&self, actual: &impl fmt::Debug) { | ||
83 | let actual = format!("{:#?}\n", actual); | ||
84 | self.assert_eq(&actual) | ||
85 | } | ||
86 | |||
87 | fn trimmed(&self) -> String { | ||
88 | if !self.data.contains('\n') { | ||
89 | return self.data.to_string(); | ||
90 | } | ||
91 | trim_indent(self.data) | ||
92 | } | ||
93 | |||
94 | fn locate(&self, file: &str) -> Location { | ||
95 | let mut target_line = None; | ||
96 | let mut line_start = 0; | ||
97 | for (i, line) in lines_with_ends(file).enumerate() { | ||
98 | if i == self.position.line as usize - 1 { | ||
99 | let pat = "expect![["; | ||
100 | let offset = line.find(pat).unwrap(); | ||
101 | let literal_start = line_start + offset + pat.len(); | ||
102 | let indent = line.chars().take_while(|&it| it == ' ').count(); | ||
103 | target_line = Some((literal_start, indent)); | ||
104 | break; | ||
105 | } | ||
106 | line_start += line.len(); | ||
107 | } | ||
108 | let (literal_start, line_indent) = target_line.unwrap(); | ||
109 | let literal_length = | ||
110 | file[literal_start..].find("]]").expect("Couldn't find matching `]]` for `expect![[`."); | ||
111 | let literal_range = literal_start..literal_start + literal_length; | ||
112 | Location { line_indent, literal_range } | ||
113 | } | ||
114 | } | ||
115 | |||
116 | impl ExpectFile { | ||
117 | pub fn assert_eq(&self, actual: &str) { | ||
118 | let expected = self.read(); | ||
119 | if actual == expected { | ||
120 | return; | ||
121 | } | ||
122 | Runtime::fail_file(self, &expected, actual); | ||
123 | } | ||
124 | pub fn assert_debug_eq(&self, actual: &impl fmt::Debug) { | ||
125 | let actual = format!("{:#?}\n", actual); | ||
126 | self.assert_eq(&actual) | ||
127 | } | ||
128 | fn read(&self) -> String { | ||
129 | fs::read_to_string(self.abs_path()).unwrap_or_default().replace("\r\n", "\n") | ||
130 | } | ||
131 | fn write(&self, contents: &str) { | ||
132 | fs::write(self.abs_path(), contents).unwrap() | ||
133 | } | ||
134 | fn abs_path(&self) -> PathBuf { | ||
135 | WORKSPACE_ROOT.join(&self.path) | ||
136 | } | ||
137 | } | ||
138 | |||
139 | #[derive(Default)] | ||
140 | struct Runtime { | ||
141 | help_printed: bool, | ||
142 | per_file: HashMap<&'static str, FileRuntime>, | ||
143 | } | ||
144 | static RT: Lazy<Mutex<Runtime>> = Lazy::new(Default::default); | ||
145 | |||
146 | impl Runtime { | ||
147 | fn fail_expect(expect: &Expect, expected: &str, actual: &str) { | ||
148 | let mut rt = RT.lock().unwrap_or_else(|poisoned| poisoned.into_inner()); | ||
149 | if update_expect() { | ||
150 | println!("\x1b[1m\x1b[92mupdating\x1b[0m: {}", expect.position); | ||
151 | rt.per_file | ||
152 | .entry(expect.position.file) | ||
153 | .or_insert_with(|| FileRuntime::new(expect)) | ||
154 | .update(expect, actual); | ||
155 | return; | ||
156 | } | ||
157 | rt.panic(expect.position.to_string(), expected, actual); | ||
158 | } | ||
159 | |||
160 | fn fail_file(expect: &ExpectFile, expected: &str, actual: &str) { | ||
161 | let mut rt = RT.lock().unwrap_or_else(|poisoned| poisoned.into_inner()); | ||
162 | if update_expect() { | ||
163 | println!("\x1b[1m\x1b[92mupdating\x1b[0m: {}", expect.path.display()); | ||
164 | expect.write(actual); | ||
165 | return; | ||
166 | } | ||
167 | rt.panic(expect.path.display().to_string(), expected, actual); | ||
168 | } | ||
169 | |||
170 | fn panic(&mut self, position: String, expected: &str, actual: &str) { | ||
171 | let print_help = !mem::replace(&mut self.help_printed, true); | ||
172 | let help = if print_help { HELP } else { "" }; | ||
173 | |||
174 | let diff = Changeset::new(actual, expected, "\n"); | ||
175 | |||
176 | println!( | ||
177 | "\n | ||
178 | \x1b[1m\x1b[91merror\x1b[97m: expect test failed\x1b[0m | ||
179 | \x1b[1m\x1b[34m-->\x1b[0m {} | ||
180 | {} | ||
181 | \x1b[1mExpect\x1b[0m: | ||
182 | ---- | ||
183 | {} | ||
184 | ---- | ||
185 | |||
186 | \x1b[1mActual\x1b[0m: | ||
187 | ---- | ||
188 | {} | ||
189 | ---- | ||
190 | |||
191 | \x1b[1mDiff\x1b[0m: | ||
192 | ---- | ||
193 | {} | ||
194 | ---- | ||
195 | ", | ||
196 | position, help, expected, actual, diff | ||
197 | ); | ||
198 | // Use resume_unwind instead of panic!() to prevent a backtrace, which is unnecessary noise. | ||
199 | panic::resume_unwind(Box::new(())); | ||
200 | } | ||
201 | } | ||
202 | |||
203 | struct FileRuntime { | ||
204 | path: PathBuf, | ||
205 | original_text: String, | ||
206 | patchwork: Patchwork, | ||
207 | } | ||
208 | |||
209 | impl FileRuntime { | ||
210 | fn new(expect: &Expect) -> FileRuntime { | ||
211 | let path = WORKSPACE_ROOT.join(expect.position.file); | ||
212 | let original_text = fs::read_to_string(&path).unwrap(); | ||
213 | let patchwork = Patchwork::new(original_text.clone()); | ||
214 | FileRuntime { path, original_text, patchwork } | ||
215 | } | ||
216 | fn update(&mut self, expect: &Expect, actual: &str) { | ||
217 | let loc = expect.locate(&self.original_text); | ||
218 | let patch = format_patch(loc.line_indent.clone(), actual); | ||
219 | self.patchwork.patch(loc.literal_range, &patch); | ||
220 | fs::write(&self.path, &self.patchwork.text).unwrap() | ||
221 | } | ||
222 | } | ||
223 | |||
224 | #[derive(Debug)] | ||
225 | struct Location { | ||
226 | line_indent: usize, | ||
227 | literal_range: Range<usize>, | ||
228 | } | ||
229 | |||
230 | #[derive(Debug)] | ||
231 | struct Patchwork { | ||
232 | text: String, | ||
233 | indels: Vec<(Range<usize>, usize)>, | ||
234 | } | ||
235 | |||
236 | impl Patchwork { | ||
237 | fn new(text: String) -> Patchwork { | ||
238 | Patchwork { text, indels: Vec::new() } | ||
239 | } | ||
240 | fn patch(&mut self, mut range: Range<usize>, patch: &str) { | ||
241 | self.indels.push((range.clone(), patch.len())); | ||
242 | self.indels.sort_by_key(|(delete, _insert)| delete.start); | ||
243 | |||
244 | let (delete, insert) = self | ||
245 | .indels | ||
246 | .iter() | ||
247 | .take_while(|(delete, _)| delete.start < range.start) | ||
248 | .map(|(delete, insert)| (delete.end - delete.start, insert)) | ||
249 | .fold((0usize, 0usize), |(x1, y1), (x2, y2)| (x1 + x2, y1 + y2)); | ||
250 | |||
251 | for pos in &mut [&mut range.start, &mut range.end] { | ||
252 | **pos -= delete; | ||
253 | **pos += insert; | ||
254 | } | ||
255 | |||
256 | self.text.replace_range(range, &patch); | ||
257 | } | ||
258 | } | ||
259 | |||
260 | fn format_patch(line_indent: usize, patch: &str) -> String { | ||
261 | let mut max_hashes = 0; | ||
262 | let mut cur_hashes = 0; | ||
263 | for byte in patch.bytes() { | ||
264 | if byte != b'#' { | ||
265 | cur_hashes = 0; | ||
266 | continue; | ||
267 | } | ||
268 | cur_hashes += 1; | ||
269 | max_hashes = max_hashes.max(cur_hashes); | ||
270 | } | ||
271 | let hashes = &"#".repeat(max_hashes + 1); | ||
272 | let indent = &" ".repeat(line_indent); | ||
273 | let is_multiline = patch.contains('\n'); | ||
274 | |||
275 | let mut buf = String::new(); | ||
276 | buf.push('r'); | ||
277 | buf.push_str(hashes); | ||
278 | buf.push('"'); | ||
279 | if is_multiline { | ||
280 | buf.push('\n'); | ||
281 | } | ||
282 | let mut final_newline = false; | ||
283 | for line in lines_with_ends(patch) { | ||
284 | if is_multiline && !line.trim().is_empty() { | ||
285 | buf.push_str(indent); | ||
286 | buf.push_str(" "); | ||
287 | } | ||
288 | buf.push_str(line); | ||
289 | final_newline = line.ends_with('\n'); | ||
290 | } | ||
291 | if final_newline { | ||
292 | buf.push_str(indent); | ||
293 | } | ||
294 | buf.push('"'); | ||
295 | buf.push_str(hashes); | ||
296 | buf | ||
297 | } | ||
298 | |||
299 | static WORKSPACE_ROOT: Lazy<PathBuf> = Lazy::new(|| { | ||
300 | let my_manifest = | ||
301 | env::var("CARGO_MANIFEST_DIR").unwrap_or_else(|_| env!("CARGO_MANIFEST_DIR").to_owned()); | ||
302 | // Heuristic, see https://github.com/rust-lang/cargo/issues/3946 | ||
303 | Path::new(&my_manifest) | ||
304 | .ancestors() | ||
305 | .filter(|it| it.join("Cargo.toml").exists()) | ||
306 | .last() | ||
307 | .unwrap() | ||
308 | .to_path_buf() | ||
309 | }); | ||
310 | |||
311 | #[cfg(test)] | ||
312 | mod tests { | ||
313 | use super::*; | ||
314 | |||
315 | #[test] | ||
316 | fn test_format_patch() { | ||
317 | let patch = format_patch(0, "hello\nworld\n"); | ||
318 | expect![[r##" | ||
319 | r#" | ||
320 | hello | ||
321 | world | ||
322 | "#"##]] | ||
323 | .assert_eq(&patch); | ||
324 | |||
325 | let patch = format_patch(4, "single line"); | ||
326 | expect![[r##"r#"single line"#"##]].assert_eq(&patch); | ||
327 | } | ||
328 | |||
329 | #[test] | ||
330 | fn test_patchwork() { | ||
331 | let mut patchwork = Patchwork::new("one two three".to_string()); | ||
332 | patchwork.patch(4..7, "zwei"); | ||
333 | patchwork.patch(0..3, "один"); | ||
334 | patchwork.patch(8..13, "3"); | ||
335 | expect![[r#" | ||
336 | Patchwork { | ||
337 | text: "один zwei 3", | ||
338 | indels: [ | ||
339 | ( | ||
340 | 0..3, | ||
341 | 8, | ||
342 | ), | ||
343 | ( | ||
344 | 4..7, | ||
345 | 4, | ||
346 | ), | ||
347 | ( | ||
348 | 8..13, | ||
349 | 1, | ||
350 | ), | ||
351 | ], | ||
352 | } | ||
353 | "#]] | ||
354 | .assert_debug_eq(&patchwork); | ||
355 | } | ||
356 | } | ||
diff --git a/crates/hir_def/Cargo.toml b/crates/hir_def/Cargo.toml index 403bc2aff..57745322f 100644 --- a/crates/hir_def/Cargo.toml +++ b/crates/hir_def/Cargo.toml | |||
@@ -32,4 +32,4 @@ cfg = { path = "../cfg" } | |||
32 | tt = { path = "../tt" } | 32 | tt = { path = "../tt" } |
33 | 33 | ||
34 | [dev-dependencies] | 34 | [dev-dependencies] |
35 | expect = { path = "../expect" } | 35 | expect-test = "0.1" |
diff --git a/crates/hir_def/src/import_map.rs b/crates/hir_def/src/import_map.rs index d32a0bdaf..a442fb63a 100644 --- a/crates/hir_def/src/import_map.rs +++ b/crates/hir_def/src/import_map.rs | |||
@@ -328,7 +328,7 @@ pub fn search_dependencies<'a>( | |||
328 | #[cfg(test)] | 328 | #[cfg(test)] |
329 | mod tests { | 329 | mod tests { |
330 | use base_db::{fixture::WithFixture, SourceDatabase, Upcast}; | 330 | use base_db::{fixture::WithFixture, SourceDatabase, Upcast}; |
331 | use expect::{expect, Expect}; | 331 | use expect_test::{expect, Expect}; |
332 | 332 | ||
333 | use crate::{test_db::TestDB, AssocContainerId, Lookup}; | 333 | use crate::{test_db::TestDB, AssocContainerId, Lookup}; |
334 | 334 | ||
diff --git a/crates/hir_def/src/item_tree/tests.rs b/crates/hir_def/src/item_tree/tests.rs index 9c5bf72bd..620e697d4 100644 --- a/crates/hir_def/src/item_tree/tests.rs +++ b/crates/hir_def/src/item_tree/tests.rs | |||
@@ -1,5 +1,5 @@ | |||
1 | use base_db::fixture::WithFixture; | 1 | use base_db::fixture::WithFixture; |
2 | use expect::{expect, Expect}; | 2 | use expect_test::{expect, Expect}; |
3 | use hir_expand::{db::AstDatabase, HirFileId, InFile}; | 3 | use hir_expand::{db::AstDatabase, HirFileId, InFile}; |
4 | use rustc_hash::FxHashSet; | 4 | use rustc_hash::FxHashSet; |
5 | use std::sync::Arc; | 5 | use std::sync::Arc; |
diff --git a/crates/hir_def/src/nameres/tests.rs b/crates/hir_def/src/nameres/tests.rs index b105d56b2..8aaf7a158 100644 --- a/crates/hir_def/src/nameres/tests.rs +++ b/crates/hir_def/src/nameres/tests.rs | |||
@@ -7,7 +7,7 @@ mod primitives; | |||
7 | use std::sync::Arc; | 7 | use std::sync::Arc; |
8 | 8 | ||
9 | use base_db::{fixture::WithFixture, SourceDatabase}; | 9 | use base_db::{fixture::WithFixture, SourceDatabase}; |
10 | use expect::{expect, Expect}; | 10 | use expect_test::{expect, Expect}; |
11 | use test_utils::mark; | 11 | use test_utils::mark; |
12 | 12 | ||
13 | use crate::{db::DefDatabase, nameres::*, test_db::TestDB}; | 13 | use crate::{db::DefDatabase, nameres::*, test_db::TestDB}; |
diff --git a/crates/hir_ty/Cargo.toml b/crates/hir_ty/Cargo.toml index a319b0ce8..06da0d0ec 100644 --- a/crates/hir_ty/Cargo.toml +++ b/crates/hir_ty/Cargo.toml | |||
@@ -30,8 +30,7 @@ syntax = { path = "../syntax" } | |||
30 | test_utils = { path = "../test_utils" } | 30 | test_utils = { path = "../test_utils" } |
31 | 31 | ||
32 | [dev-dependencies] | 32 | [dev-dependencies] |
33 | expect-test = "0.1" | ||
33 | tracing = "0.1" | 34 | tracing = "0.1" |
34 | tracing-subscriber = { version = "0.2", default-features = false, features = ["env-filter", "registry"] } | 35 | tracing-subscriber = { version = "0.2", default-features = false, features = ["env-filter", "registry"] } |
35 | tracing-tree = { version = "0.1.4" } | 36 | tracing-tree = { version = "0.1.4" } |
36 | |||
37 | expect = { path = "../expect" } | ||
diff --git a/crates/hir_ty/src/tests.rs b/crates/hir_ty/src/tests.rs index 91c9d38c5..0445efc9e 100644 --- a/crates/hir_ty/src/tests.rs +++ b/crates/hir_ty/src/tests.rs | |||
@@ -11,7 +11,7 @@ mod display_source_code; | |||
11 | use std::{env, sync::Arc}; | 11 | use std::{env, sync::Arc}; |
12 | 12 | ||
13 | use base_db::{fixture::WithFixture, FileRange, SourceDatabase, SourceDatabaseExt}; | 13 | use base_db::{fixture::WithFixture, FileRange, SourceDatabase, SourceDatabaseExt}; |
14 | use expect::Expect; | 14 | use expect_test::Expect; |
15 | use hir_def::{ | 15 | use hir_def::{ |
16 | body::{BodySourceMap, SyntheticSyntax}, | 16 | body::{BodySourceMap, SyntheticSyntax}, |
17 | child_by_source::ChildBySource, | 17 | child_by_source::ChildBySource, |
diff --git a/crates/hir_ty/src/tests/coercion.rs b/crates/hir_ty/src/tests/coercion.rs index 17efd75cb..7bc6c79f3 100644 --- a/crates/hir_ty/src/tests/coercion.rs +++ b/crates/hir_ty/src/tests/coercion.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use expect::expect; | 1 | use expect_test::expect; |
2 | use test_utils::mark; | 2 | use test_utils::mark; |
3 | 3 | ||
4 | use super::{check_infer, check_infer_with_mismatches}; | 4 | use super::{check_infer, check_infer_with_mismatches}; |
diff --git a/crates/hir_ty/src/tests/macros.rs b/crates/hir_ty/src/tests/macros.rs index d887c7a79..597a195d0 100644 --- a/crates/hir_ty/src/tests/macros.rs +++ b/crates/hir_ty/src/tests/macros.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use std::fs; | 1 | use std::fs; |
2 | 2 | ||
3 | use expect::expect; | 3 | use expect_test::expect; |
4 | use test_utils::project_dir; | 4 | use test_utils::project_dir; |
5 | 5 | ||
6 | use super::{check_infer, check_types}; | 6 | use super::{check_infer, check_types}; |
diff --git a/crates/hir_ty/src/tests/method_resolution.rs b/crates/hir_ty/src/tests/method_resolution.rs index fa68355aa..23b2601e6 100644 --- a/crates/hir_ty/src/tests/method_resolution.rs +++ b/crates/hir_ty/src/tests/method_resolution.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use expect::expect; | 1 | use expect_test::expect; |
2 | 2 | ||
3 | use super::{check_infer, check_types}; | 3 | use super::{check_infer, check_types}; |
4 | 4 | ||
diff --git a/crates/hir_ty/src/tests/never_type.rs b/crates/hir_ty/src/tests/never_type.rs index 49538b572..335c474df 100644 --- a/crates/hir_ty/src/tests/never_type.rs +++ b/crates/hir_ty/src/tests/never_type.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use expect::expect; | 1 | use expect_test::expect; |
2 | 2 | ||
3 | use super::{check_infer_with_mismatches, check_types}; | 3 | use super::{check_infer_with_mismatches, check_types}; |
4 | 4 | ||
diff --git a/crates/hir_ty/src/tests/patterns.rs b/crates/hir_ty/src/tests/patterns.rs index 39fabf7eb..aeb191c79 100644 --- a/crates/hir_ty/src/tests/patterns.rs +++ b/crates/hir_ty/src/tests/patterns.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use expect::expect; | 1 | use expect_test::expect; |
2 | use test_utils::mark; | 2 | use test_utils::mark; |
3 | 3 | ||
4 | use super::{check_infer, check_infer_with_mismatches}; | 4 | use super::{check_infer, check_infer_with_mismatches}; |
diff --git a/crates/hir_ty/src/tests/regression.rs b/crates/hir_ty/src/tests/regression.rs index b9ab0f357..94d86b0d1 100644 --- a/crates/hir_ty/src/tests/regression.rs +++ b/crates/hir_ty/src/tests/regression.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use expect::expect; | 1 | use expect_test::expect; |
2 | use test_utils::mark; | 2 | use test_utils::mark; |
3 | 3 | ||
4 | use super::{check_infer, check_types}; | 4 | use super::{check_infer, check_types}; |
diff --git a/crates/hir_ty/src/tests/simple.rs b/crates/hir_ty/src/tests/simple.rs index 59eb59d5f..48db23a34 100644 --- a/crates/hir_ty/src/tests/simple.rs +++ b/crates/hir_ty/src/tests/simple.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use expect::expect; | 1 | use expect_test::expect; |
2 | 2 | ||
3 | use super::{check_infer, check_types}; | 3 | use super::{check_infer, check_types}; |
4 | 4 | ||
diff --git a/crates/hir_ty/src/tests/traits.rs b/crates/hir_ty/src/tests/traits.rs index 526e61caf..1f1056962 100644 --- a/crates/hir_ty/src/tests/traits.rs +++ b/crates/hir_ty/src/tests/traits.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use expect::expect; | 1 | use expect_test::expect; |
2 | use test_utils::mark; | 2 | use test_utils::mark; |
3 | 3 | ||
4 | use super::{check_infer, check_infer_with_mismatches, check_types}; | 4 | use super::{check_infer, check_infer_with_mismatches, check_types}; |
diff --git a/crates/ide/Cargo.toml b/crates/ide/Cargo.toml index e4b970c73..700944430 100644 --- a/crates/ide/Cargo.toml +++ b/crates/ide/Cargo.toml | |||
@@ -32,4 +32,4 @@ ssr = { path = "../ssr" } | |||
32 | hir = { path = "../hir" } | 32 | hir = { path = "../hir" } |
33 | 33 | ||
34 | [dev-dependencies] | 34 | [dev-dependencies] |
35 | expect = { path = "../expect" } | 35 | expect-test = "0.1" |
diff --git a/crates/ide/src/call_info.rs b/crates/ide/src/call_info.rs index 86abd2d8c..7e83a2381 100644 --- a/crates/ide/src/call_info.rs +++ b/crates/ide/src/call_info.rs | |||
@@ -229,7 +229,7 @@ impl FnCallNode { | |||
229 | 229 | ||
230 | #[cfg(test)] | 230 | #[cfg(test)] |
231 | mod tests { | 231 | mod tests { |
232 | use expect::{expect, Expect}; | 232 | use expect_test::{expect, Expect}; |
233 | use test_utils::mark; | 233 | use test_utils::mark; |
234 | 234 | ||
235 | use crate::mock_analysis::analysis_and_position; | 235 | use crate::mock_analysis::analysis_and_position; |
diff --git a/crates/ide/src/completion/complete_attribute.rs b/crates/ide/src/completion/complete_attribute.rs index 042c3ecef..0abfaebcb 100644 --- a/crates/ide/src/completion/complete_attribute.rs +++ b/crates/ide/src/completion/complete_attribute.rs | |||
@@ -383,7 +383,7 @@ const DEFAULT_LINT_COMPLETIONS: &[LintCompletion] = &[ | |||
383 | 383 | ||
384 | #[cfg(test)] | 384 | #[cfg(test)] |
385 | mod tests { | 385 | mod tests { |
386 | use expect::{expect, Expect}; | 386 | use expect_test::{expect, Expect}; |
387 | 387 | ||
388 | use crate::completion::{test_utils::completion_list, CompletionKind}; | 388 | use crate::completion::{test_utils::completion_list, CompletionKind}; |
389 | 389 | ||
diff --git a/crates/ide/src/completion/complete_dot.rs b/crates/ide/src/completion/complete_dot.rs index 5488db43f..0b9f1798a 100644 --- a/crates/ide/src/completion/complete_dot.rs +++ b/crates/ide/src/completion/complete_dot.rs | |||
@@ -61,7 +61,7 @@ fn complete_methods(acc: &mut Completions, ctx: &CompletionContext, receiver: &T | |||
61 | 61 | ||
62 | #[cfg(test)] | 62 | #[cfg(test)] |
63 | mod tests { | 63 | mod tests { |
64 | use expect::{expect, Expect}; | 64 | use expect_test::{expect, Expect}; |
65 | use test_utils::mark; | 65 | use test_utils::mark; |
66 | 66 | ||
67 | use crate::completion::{test_utils::completion_list, CompletionKind}; | 67 | use crate::completion::{test_utils::completion_list, CompletionKind}; |
diff --git a/crates/ide/src/completion/complete_fn_param.rs b/crates/ide/src/completion/complete_fn_param.rs index 7c63ce58f..9efe25461 100644 --- a/crates/ide/src/completion/complete_fn_param.rs +++ b/crates/ide/src/completion/complete_fn_param.rs | |||
@@ -66,7 +66,7 @@ pub(super) fn complete_fn_param(acc: &mut Completions, ctx: &CompletionContext) | |||
66 | 66 | ||
67 | #[cfg(test)] | 67 | #[cfg(test)] |
68 | mod tests { | 68 | mod tests { |
69 | use expect::{expect, Expect}; | 69 | use expect_test::{expect, Expect}; |
70 | 70 | ||
71 | use crate::completion::{test_utils::completion_list, CompletionKind}; | 71 | use crate::completion::{test_utils::completion_list, CompletionKind}; |
72 | 72 | ||
diff --git a/crates/ide/src/completion/complete_keyword.rs b/crates/ide/src/completion/complete_keyword.rs index 22ada3cf2..95e4ff1ac 100644 --- a/crates/ide/src/completion/complete_keyword.rs +++ b/crates/ide/src/completion/complete_keyword.rs | |||
@@ -174,7 +174,7 @@ fn complete_return( | |||
174 | 174 | ||
175 | #[cfg(test)] | 175 | #[cfg(test)] |
176 | mod tests { | 176 | mod tests { |
177 | use expect::{expect, Expect}; | 177 | use expect_test::{expect, Expect}; |
178 | 178 | ||
179 | use crate::completion::{ | 179 | use crate::completion::{ |
180 | test_utils::{check_edit, completion_list}, | 180 | test_utils::{check_edit, completion_list}, |
diff --git a/crates/ide/src/completion/complete_macro_in_item_position.rs b/crates/ide/src/completion/complete_macro_in_item_position.rs index 0447f0511..fc8625d8e 100644 --- a/crates/ide/src/completion/complete_macro_in_item_position.rs +++ b/crates/ide/src/completion/complete_macro_in_item_position.rs | |||
@@ -15,7 +15,7 @@ pub(super) fn complete_macro_in_item_position(acc: &mut Completions, ctx: &Compl | |||
15 | 15 | ||
16 | #[cfg(test)] | 16 | #[cfg(test)] |
17 | mod tests { | 17 | mod tests { |
18 | use expect::{expect, Expect}; | 18 | use expect_test::{expect, Expect}; |
19 | 19 | ||
20 | use crate::completion::{test_utils::completion_list, CompletionKind}; | 20 | use crate::completion::{test_utils::completion_list, CompletionKind}; |
21 | 21 | ||
diff --git a/crates/ide/src/completion/complete_pattern.rs b/crates/ide/src/completion/complete_pattern.rs index aceb77cb5..5a13574d4 100644 --- a/crates/ide/src/completion/complete_pattern.rs +++ b/crates/ide/src/completion/complete_pattern.rs | |||
@@ -33,7 +33,7 @@ pub(super) fn complete_pattern(acc: &mut Completions, ctx: &CompletionContext) { | |||
33 | 33 | ||
34 | #[cfg(test)] | 34 | #[cfg(test)] |
35 | mod tests { | 35 | mod tests { |
36 | use expect::{expect, Expect}; | 36 | use expect_test::{expect, Expect}; |
37 | 37 | ||
38 | use crate::completion::{test_utils::completion_list, CompletionKind}; | 38 | use crate::completion::{test_utils::completion_list, CompletionKind}; |
39 | 39 | ||
diff --git a/crates/ide/src/completion/complete_postfix.rs b/crates/ide/src/completion/complete_postfix.rs index d50b13c52..84c4e129d 100644 --- a/crates/ide/src/completion/complete_postfix.rs +++ b/crates/ide/src/completion/complete_postfix.rs | |||
@@ -238,7 +238,7 @@ fn postfix_snippet( | |||
238 | 238 | ||
239 | #[cfg(test)] | 239 | #[cfg(test)] |
240 | mod tests { | 240 | mod tests { |
241 | use expect::{expect, Expect}; | 241 | use expect_test::{expect, Expect}; |
242 | 242 | ||
243 | use crate::completion::{ | 243 | use crate::completion::{ |
244 | test_utils::{check_edit, completion_list}, | 244 | test_utils::{check_edit, completion_list}, |
diff --git a/crates/ide/src/completion/complete_qualified_path.rs b/crates/ide/src/completion/complete_qualified_path.rs index 74794dc88..accb09f7e 100644 --- a/crates/ide/src/completion/complete_qualified_path.rs +++ b/crates/ide/src/completion/complete_qualified_path.rs | |||
@@ -146,7 +146,7 @@ pub(super) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon | |||
146 | 146 | ||
147 | #[cfg(test)] | 147 | #[cfg(test)] |
148 | mod tests { | 148 | mod tests { |
149 | use expect::{expect, Expect}; | 149 | use expect_test::{expect, Expect}; |
150 | use test_utils::mark; | 150 | use test_utils::mark; |
151 | 151 | ||
152 | use crate::completion::{ | 152 | use crate::completion::{ |
diff --git a/crates/ide/src/completion/complete_record.rs b/crates/ide/src/completion/complete_record.rs index 74b94594d..ceb8d16c1 100644 --- a/crates/ide/src/completion/complete_record.rs +++ b/crates/ide/src/completion/complete_record.rs | |||
@@ -18,7 +18,7 @@ pub(super) fn complete_record(acc: &mut Completions, ctx: &CompletionContext) -> | |||
18 | 18 | ||
19 | #[cfg(test)] | 19 | #[cfg(test)] |
20 | mod tests { | 20 | mod tests { |
21 | use expect::{expect, Expect}; | 21 | use expect_test::{expect, Expect}; |
22 | 22 | ||
23 | use crate::completion::{test_utils::completion_list, CompletionKind}; | 23 | use crate::completion::{test_utils::completion_list, CompletionKind}; |
24 | 24 | ||
diff --git a/crates/ide/src/completion/complete_snippet.rs b/crates/ide/src/completion/complete_snippet.rs index 4368e4eec..c3b03b199 100644 --- a/crates/ide/src/completion/complete_snippet.rs +++ b/crates/ide/src/completion/complete_snippet.rs | |||
@@ -70,7 +70,7 @@ fn ${1:feature}() { | |||
70 | 70 | ||
71 | #[cfg(test)] | 71 | #[cfg(test)] |
72 | mod tests { | 72 | mod tests { |
73 | use expect::{expect, Expect}; | 73 | use expect_test::{expect, Expect}; |
74 | 74 | ||
75 | use crate::completion::{test_utils::completion_list, CompletionKind}; | 75 | use crate::completion::{test_utils::completion_list, CompletionKind}; |
76 | 76 | ||
diff --git a/crates/ide/src/completion/complete_trait_impl.rs b/crates/ide/src/completion/complete_trait_impl.rs index d0d3a9f34..1a2b1e8a5 100644 --- a/crates/ide/src/completion/complete_trait_impl.rs +++ b/crates/ide/src/completion/complete_trait_impl.rs | |||
@@ -225,7 +225,7 @@ fn make_const_compl_syntax(const_: &ast::Const) -> String { | |||
225 | 225 | ||
226 | #[cfg(test)] | 226 | #[cfg(test)] |
227 | mod tests { | 227 | mod tests { |
228 | use expect::{expect, Expect}; | 228 | use expect_test::{expect, Expect}; |
229 | 229 | ||
230 | use crate::completion::{ | 230 | use crate::completion::{ |
231 | test_utils::{check_edit, completion_list}, | 231 | test_utils::{check_edit, completion_list}, |
diff --git a/crates/ide/src/completion/complete_unqualified_path.rs b/crates/ide/src/completion/complete_unqualified_path.rs index 824227f31..1f1b682a7 100644 --- a/crates/ide/src/completion/complete_unqualified_path.rs +++ b/crates/ide/src/completion/complete_unqualified_path.rs | |||
@@ -64,7 +64,7 @@ fn complete_enum_variants(acc: &mut Completions, ctx: &CompletionContext, ty: &T | |||
64 | 64 | ||
65 | #[cfg(test)] | 65 | #[cfg(test)] |
66 | mod tests { | 66 | mod tests { |
67 | use expect::{expect, Expect}; | 67 | use expect_test::{expect, Expect}; |
68 | use test_utils::mark; | 68 | use test_utils::mark; |
69 | 69 | ||
70 | use crate::completion::{ | 70 | use crate::completion::{ |
diff --git a/crates/ide/src/completion/presentation.rs b/crates/ide/src/completion/presentation.rs index a73f8ab0b..3371aed2d 100644 --- a/crates/ide/src/completion/presentation.rs +++ b/crates/ide/src/completion/presentation.rs | |||
@@ -464,7 +464,7 @@ fn guess_macro_braces(macro_name: &str, docs: &str) -> (&'static str, &'static s | |||
464 | mod tests { | 464 | mod tests { |
465 | use std::cmp::Reverse; | 465 | use std::cmp::Reverse; |
466 | 466 | ||
467 | use expect::{expect, Expect}; | 467 | use expect_test::{expect, Expect}; |
468 | use test_utils::mark; | 468 | use test_utils::mark; |
469 | 469 | ||
470 | use crate::{ | 470 | use crate::{ |
diff --git a/crates/ide/src/diagnostics.rs b/crates/ide/src/diagnostics.rs index 92b5adaa2..b2b972b02 100644 --- a/crates/ide/src/diagnostics.rs +++ b/crates/ide/src/diagnostics.rs | |||
@@ -214,7 +214,7 @@ fn check_struct_shorthand_initialization( | |||
214 | 214 | ||
215 | #[cfg(test)] | 215 | #[cfg(test)] |
216 | mod tests { | 216 | mod tests { |
217 | use expect::{expect, Expect}; | 217 | use expect_test::{expect, Expect}; |
218 | use stdx::trim_indent; | 218 | use stdx::trim_indent; |
219 | use test_utils::assert_eq_text; | 219 | use test_utils::assert_eq_text; |
220 | 220 | ||
diff --git a/crates/ide/src/display/navigation_target.rs b/crates/ide/src/display/navigation_target.rs index e77106177..1ee80c2dd 100644 --- a/crates/ide/src/display/navigation_target.rs +++ b/crates/ide/src/display/navigation_target.rs | |||
@@ -421,7 +421,7 @@ pub(crate) fn description_from_symbol(db: &RootDatabase, symbol: &FileSymbol) -> | |||
421 | 421 | ||
422 | #[cfg(test)] | 422 | #[cfg(test)] |
423 | mod tests { | 423 | mod tests { |
424 | use expect::expect; | 424 | use expect_test::expect; |
425 | 425 | ||
426 | use crate::{mock_analysis::single_file, Query}; | 426 | use crate::{mock_analysis::single_file, Query}; |
427 | 427 | ||
diff --git a/crates/ide/src/expand_macro.rs b/crates/ide/src/expand_macro.rs index 31455709d..8a285bcf7 100644 --- a/crates/ide/src/expand_macro.rs +++ b/crates/ide/src/expand_macro.rs | |||
@@ -120,7 +120,7 @@ fn insert_whitespaces(syn: SyntaxNode) -> String { | |||
120 | 120 | ||
121 | #[cfg(test)] | 121 | #[cfg(test)] |
122 | mod tests { | 122 | mod tests { |
123 | use expect::{expect, Expect}; | 123 | use expect_test::{expect, Expect}; |
124 | 124 | ||
125 | use crate::mock_analysis::analysis_and_position; | 125 | use crate::mock_analysis::analysis_and_position; |
126 | 126 | ||
diff --git a/crates/ide/src/file_structure.rs b/crates/ide/src/file_structure.rs index c90247ba6..6168fb837 100644 --- a/crates/ide/src/file_structure.rs +++ b/crates/ide/src/file_structure.rs | |||
@@ -164,7 +164,7 @@ fn structure_node(node: &SyntaxNode) -> Option<StructureNode> { | |||
164 | 164 | ||
165 | #[cfg(test)] | 165 | #[cfg(test)] |
166 | mod tests { | 166 | mod tests { |
167 | use expect::{expect, Expect}; | 167 | use expect_test::{expect, Expect}; |
168 | 168 | ||
169 | use super::*; | 169 | use super::*; |
170 | 170 | ||
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs index 300c00edc..c75b2a510 100644 --- a/crates/ide/src/hover.rs +++ b/crates/ide/src/hover.rs | |||
@@ -353,7 +353,7 @@ fn pick_best(tokens: TokenAtOffset<SyntaxToken>) -> Option<SyntaxToken> { | |||
353 | #[cfg(test)] | 353 | #[cfg(test)] |
354 | mod tests { | 354 | mod tests { |
355 | use base_db::FileLoader; | 355 | use base_db::FileLoader; |
356 | use expect::{expect, Expect}; | 356 | use expect_test::{expect, Expect}; |
357 | 357 | ||
358 | use crate::mock_analysis::analysis_and_position; | 358 | use crate::mock_analysis::analysis_and_position; |
359 | 359 | ||
diff --git a/crates/ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs index 596bc872d..583f39d85 100644 --- a/crates/ide/src/inlay_hints.rs +++ b/crates/ide/src/inlay_hints.rs | |||
@@ -336,7 +336,7 @@ fn get_callable(sema: &Semantics<RootDatabase>, expr: &ast::Expr) -> Option<Call | |||
336 | 336 | ||
337 | #[cfg(test)] | 337 | #[cfg(test)] |
338 | mod tests { | 338 | mod tests { |
339 | use expect::{expect, Expect}; | 339 | use expect_test::{expect, Expect}; |
340 | use test_utils::extract_annotations; | 340 | use test_utils::extract_annotations; |
341 | 341 | ||
342 | use crate::{inlay_hints::InlayHintsConfig, mock_analysis::single_file}; | 342 | use crate::{inlay_hints::InlayHintsConfig, mock_analysis::single_file}; |
diff --git a/crates/ide/src/references/rename.rs b/crates/ide/src/references/rename.rs index d73dc9cd0..301629763 100644 --- a/crates/ide/src/references/rename.rs +++ b/crates/ide/src/references/rename.rs | |||
@@ -270,7 +270,7 @@ fn rename_reference( | |||
270 | 270 | ||
271 | #[cfg(test)] | 271 | #[cfg(test)] |
272 | mod tests { | 272 | mod tests { |
273 | use expect::{expect, Expect}; | 273 | use expect_test::{expect, Expect}; |
274 | use stdx::trim_indent; | 274 | use stdx::trim_indent; |
275 | use test_utils::{assert_eq_text, mark}; | 275 | use test_utils::{assert_eq_text, mark}; |
276 | use text_edit::TextEdit; | 276 | use text_edit::TextEdit; |
diff --git a/crates/ide/src/runnables.rs b/crates/ide/src/runnables.rs index c3e07c8de..4139f329e 100644 --- a/crates/ide/src/runnables.rs +++ b/crates/ide/src/runnables.rs | |||
@@ -268,7 +268,7 @@ fn has_test_function_or_multiple_test_submodules(module: &ast::Module) -> bool { | |||
268 | 268 | ||
269 | #[cfg(test)] | 269 | #[cfg(test)] |
270 | mod tests { | 270 | mod tests { |
271 | use expect::{expect, Expect}; | 271 | use expect_test::{expect, Expect}; |
272 | 272 | ||
273 | use crate::mock_analysis::analysis_and_position; | 273 | use crate::mock_analysis::analysis_and_position; |
274 | 274 | ||
diff --git a/crates/ide/src/syntax_highlighting/tests.rs b/crates/ide/src/syntax_highlighting/tests.rs index ccb76f552..1c3fea058 100644 --- a/crates/ide/src/syntax_highlighting/tests.rs +++ b/crates/ide/src/syntax_highlighting/tests.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use std::fs; | 1 | use std::fs; |
2 | 2 | ||
3 | use expect::{expect_file, ExpectFile}; | 3 | use expect_test::{expect_file, ExpectFile}; |
4 | use test_utils::project_dir; | 4 | use test_utils::project_dir; |
5 | 5 | ||
6 | use crate::{mock_analysis::single_file, FileRange, TextRange}; | 6 | use crate::{mock_analysis::single_file, FileRange, TextRange}; |
diff --git a/crates/rust-analyzer/Cargo.toml b/crates/rust-analyzer/Cargo.toml index c7c1eda0f..068a961dc 100644 --- a/crates/rust-analyzer/Cargo.toml +++ b/crates/rust-analyzer/Cargo.toml | |||
@@ -57,7 +57,7 @@ proc_macro_srv = { path = "../proc_macro_srv" } | |||
57 | winapi = "0.3.8" | 57 | winapi = "0.3.8" |
58 | 58 | ||
59 | [dev-dependencies] | 59 | [dev-dependencies] |
60 | expect = { path = "../expect" } | 60 | expect-test = "0.1" |
61 | test_utils = { path = "../test_utils" } | 61 | test_utils = { path = "../test_utils" } |
62 | mbe = { path = "../mbe" } | 62 | mbe = { path = "../mbe" } |
63 | tt = { path = "../tt" } | 63 | tt = { path = "../tt" } |
diff --git a/crates/rust-analyzer/src/diagnostics/to_proto.rs b/crates/rust-analyzer/src/diagnostics/to_proto.rs index df5583897..e52b97913 100644 --- a/crates/rust-analyzer/src/diagnostics/to_proto.rs +++ b/crates/rust-analyzer/src/diagnostics/to_proto.rs | |||
@@ -256,7 +256,7 @@ pub(crate) fn map_rust_diagnostic_to_lsp( | |||
256 | mod tests { | 256 | mod tests { |
257 | use super::*; | 257 | use super::*; |
258 | 258 | ||
259 | use expect::{expect_file, ExpectFile}; | 259 | use expect_test::{expect_file, ExpectFile}; |
260 | 260 | ||
261 | fn check(diagnostics_json: &str, expect: ExpectFile) { | 261 | fn check(diagnostics_json: &str, expect: ExpectFile) { |
262 | check_with_config(DiagnosticsMapConfig::default(), diagnostics_json, expect) | 262 | check_with_config(DiagnosticsMapConfig::default(), diagnostics_json, expect) |
diff --git a/crates/ssr/Cargo.toml b/crates/ssr/Cargo.toml index 7c2090de3..22b6af0fa 100644 --- a/crates/ssr/Cargo.toml +++ b/crates/ssr/Cargo.toml | |||
@@ -22,4 +22,4 @@ hir = { path = "../hir" } | |||
22 | test_utils = { path = "../test_utils" } | 22 | test_utils = { path = "../test_utils" } |
23 | 23 | ||
24 | [dev-dependencies] | 24 | [dev-dependencies] |
25 | expect = { path = "../expect" } | 25 | expect-test = "0.1" |
diff --git a/crates/ssr/src/tests.rs b/crates/ssr/src/tests.rs index e45c88864..20231a9bc 100644 --- a/crates/ssr/src/tests.rs +++ b/crates/ssr/src/tests.rs | |||
@@ -1,6 +1,6 @@ | |||
1 | use crate::{MatchFinder, SsrRule}; | 1 | use crate::{MatchFinder, SsrRule}; |
2 | use base_db::{salsa::Durability, FileId, FilePosition, FileRange, SourceDatabaseExt}; | 2 | use base_db::{salsa::Durability, FileId, FilePosition, FileRange, SourceDatabaseExt}; |
3 | use expect::{expect, Expect}; | 3 | use expect_test::{expect, Expect}; |
4 | use rustc_hash::FxHashSet; | 4 | use rustc_hash::FxHashSet; |
5 | use std::sync::Arc; | 5 | use std::sync::Arc; |
6 | use test_utils::{mark, RangeOrOffset}; | 6 | use test_utils::{mark, RangeOrOffset}; |
diff --git a/crates/syntax/Cargo.toml b/crates/syntax/Cargo.toml index ec3132da8..6818f3ad8 100644 --- a/crates/syntax/Cargo.toml +++ b/crates/syntax/Cargo.toml | |||
@@ -30,6 +30,6 @@ parser = { path = "../parser" } | |||
30 | [dev-dependencies] | 30 | [dev-dependencies] |
31 | walkdir = "2.3.1" | 31 | walkdir = "2.3.1" |
32 | rayon = "1" | 32 | rayon = "1" |
33 | expect-test = "0.1" | ||
33 | 34 | ||
34 | test_utils = { path = "../test_utils" } | 35 | test_utils = { path = "../test_utils" } |
35 | expect = { path = "../expect" } | ||
diff --git a/crates/syntax/src/tests.rs b/crates/syntax/src/tests.rs index ddc718369..8c217dfe0 100644 --- a/crates/syntax/src/tests.rs +++ b/crates/syntax/src/tests.rs | |||
@@ -4,7 +4,7 @@ use std::{ | |||
4 | path::{Path, PathBuf}, | 4 | path::{Path, PathBuf}, |
5 | }; | 5 | }; |
6 | 6 | ||
7 | use expect::expect_file; | 7 | use expect_test::expect_file; |
8 | use rayon::prelude::*; | 8 | use rayon::prelude::*; |
9 | use test_utils::project_dir; | 9 | use test_utils::project_dir; |
10 | 10 | ||