From 66e0c9f840bc60fa132b285312136293301cc2c0 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 21 Aug 2020 13:15:56 +0200 Subject: Remove expect crate --- crates/expect/Cargo.toml | 15 -- crates/expect/src/lib.rs | 356 ----------------------------------------------- 2 files changed, 371 deletions(-) delete mode 100644 crates/expect/Cargo.toml delete mode 100644 crates/expect/src/lib.rs 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 @@ -[package] -name = "expect" -version = "0.0.0" -license = "MIT OR Apache-2.0" -authors = ["rust-analyzer developers"] -edition = "2018" - -[lib] -doctest = false - -[dependencies] -once_cell = "1" -difference = "2" - -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 @@ -//! Snapshot testing library, see -//! https://github.com/rust-analyzer/rust-analyzer/pull/5101 -use std::{ - collections::HashMap, - env, fmt, fs, mem, - ops::Range, - panic, - path::{Path, PathBuf}, - sync::Mutex, -}; - -use difference::Changeset; -use once_cell::sync::Lazy; -use stdx::{lines_with_ends, trim_indent}; - -const HELP: &str = " -You can update all `expect![[]]` tests by running: - - env UPDATE_EXPECT=1 cargo test - -To update a single test, place the cursor on `expect` token and use `run` feature of rust-analyzer. -"; - -fn update_expect() -> bool { - env::var("UPDATE_EXPECT").is_ok() -} - -/// expect![[r#"inline snapshot"#]] -#[macro_export] -macro_rules! expect { - [[$data:literal]] => {$crate::Expect { - position: $crate::Position { - file: file!(), - line: line!(), - column: column!(), - }, - data: $data, - }}; - [[]] => { $crate::expect![[""]] }; -} - -/// expect_file!["/crates/foo/test_data/bar.html"] -#[macro_export] -macro_rules! expect_file { - [$path:expr] => {$crate::ExpectFile { - path: std::path::PathBuf::from($path) - }}; -} - -#[derive(Debug)] -pub struct Expect { - pub position: Position, - pub data: &'static str, -} - -#[derive(Debug)] -pub struct ExpectFile { - pub path: PathBuf, -} - -#[derive(Debug)] -pub struct Position { - pub file: &'static str, - pub line: u32, - pub column: u32, -} - -impl fmt::Display for Position { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "{}:{}:{}", self.file, self.line, self.column) - } -} - -impl Expect { - pub fn assert_eq(&self, actual: &str) { - let trimmed = self.trimmed(); - if trimmed == actual { - return; - } - Runtime::fail_expect(self, &trimmed, actual); - } - pub fn assert_debug_eq(&self, actual: &impl fmt::Debug) { - let actual = format!("{:#?}\n", actual); - self.assert_eq(&actual) - } - - fn trimmed(&self) -> String { - if !self.data.contains('\n') { - return self.data.to_string(); - } - trim_indent(self.data) - } - - fn locate(&self, file: &str) -> Location { - let mut target_line = None; - let mut line_start = 0; - for (i, line) in lines_with_ends(file).enumerate() { - if i == self.position.line as usize - 1 { - let pat = "expect![["; - let offset = line.find(pat).unwrap(); - let literal_start = line_start + offset + pat.len(); - let indent = line.chars().take_while(|&it| it == ' ').count(); - target_line = Some((literal_start, indent)); - break; - } - line_start += line.len(); - } - let (literal_start, line_indent) = target_line.unwrap(); - let literal_length = - file[literal_start..].find("]]").expect("Couldn't find matching `]]` for `expect![[`."); - let literal_range = literal_start..literal_start + literal_length; - Location { line_indent, literal_range } - } -} - -impl ExpectFile { - pub fn assert_eq(&self, actual: &str) { - let expected = self.read(); - if actual == expected { - return; - } - Runtime::fail_file(self, &expected, actual); - } - pub fn assert_debug_eq(&self, actual: &impl fmt::Debug) { - let actual = format!("{:#?}\n", actual); - self.assert_eq(&actual) - } - fn read(&self) -> String { - fs::read_to_string(self.abs_path()).unwrap_or_default().replace("\r\n", "\n") - } - fn write(&self, contents: &str) { - fs::write(self.abs_path(), contents).unwrap() - } - fn abs_path(&self) -> PathBuf { - WORKSPACE_ROOT.join(&self.path) - } -} - -#[derive(Default)] -struct Runtime { - help_printed: bool, - per_file: HashMap<&'static str, FileRuntime>, -} -static RT: Lazy> = Lazy::new(Default::default); - -impl Runtime { - fn fail_expect(expect: &Expect, expected: &str, actual: &str) { - let mut rt = RT.lock().unwrap_or_else(|poisoned| poisoned.into_inner()); - if update_expect() { - println!("\x1b[1m\x1b[92mupdating\x1b[0m: {}", expect.position); - rt.per_file - .entry(expect.position.file) - .or_insert_with(|| FileRuntime::new(expect)) - .update(expect, actual); - return; - } - rt.panic(expect.position.to_string(), expected, actual); - } - - fn fail_file(expect: &ExpectFile, expected: &str, actual: &str) { - let mut rt = RT.lock().unwrap_or_else(|poisoned| poisoned.into_inner()); - if update_expect() { - println!("\x1b[1m\x1b[92mupdating\x1b[0m: {}", expect.path.display()); - expect.write(actual); - return; - } - rt.panic(expect.path.display().to_string(), expected, actual); - } - - fn panic(&mut self, position: String, expected: &str, actual: &str) { - let print_help = !mem::replace(&mut self.help_printed, true); - let help = if print_help { HELP } else { "" }; - - let diff = Changeset::new(actual, expected, "\n"); - - println!( - "\n -\x1b[1m\x1b[91merror\x1b[97m: expect test failed\x1b[0m - \x1b[1m\x1b[34m-->\x1b[0m {} -{} -\x1b[1mExpect\x1b[0m: ----- -{} ----- - -\x1b[1mActual\x1b[0m: ----- -{} ----- - -\x1b[1mDiff\x1b[0m: ----- -{} ----- -", - position, help, expected, actual, diff - ); - // Use resume_unwind instead of panic!() to prevent a backtrace, which is unnecessary noise. - panic::resume_unwind(Box::new(())); - } -} - -struct FileRuntime { - path: PathBuf, - original_text: String, - patchwork: Patchwork, -} - -impl FileRuntime { - fn new(expect: &Expect) -> FileRuntime { - let path = WORKSPACE_ROOT.join(expect.position.file); - let original_text = fs::read_to_string(&path).unwrap(); - let patchwork = Patchwork::new(original_text.clone()); - FileRuntime { path, original_text, patchwork } - } - fn update(&mut self, expect: &Expect, actual: &str) { - let loc = expect.locate(&self.original_text); - let patch = format_patch(loc.line_indent.clone(), actual); - self.patchwork.patch(loc.literal_range, &patch); - fs::write(&self.path, &self.patchwork.text).unwrap() - } -} - -#[derive(Debug)] -struct Location { - line_indent: usize, - literal_range: Range, -} - -#[derive(Debug)] -struct Patchwork { - text: String, - indels: Vec<(Range, usize)>, -} - -impl Patchwork { - fn new(text: String) -> Patchwork { - Patchwork { text, indels: Vec::new() } - } - fn patch(&mut self, mut range: Range, patch: &str) { - self.indels.push((range.clone(), patch.len())); - self.indels.sort_by_key(|(delete, _insert)| delete.start); - - let (delete, insert) = self - .indels - .iter() - .take_while(|(delete, _)| delete.start < range.start) - .map(|(delete, insert)| (delete.end - delete.start, insert)) - .fold((0usize, 0usize), |(x1, y1), (x2, y2)| (x1 + x2, y1 + y2)); - - for pos in &mut [&mut range.start, &mut range.end] { - **pos -= delete; - **pos += insert; - } - - self.text.replace_range(range, &patch); - } -} - -fn format_patch(line_indent: usize, patch: &str) -> String { - let mut max_hashes = 0; - let mut cur_hashes = 0; - for byte in patch.bytes() { - if byte != b'#' { - cur_hashes = 0; - continue; - } - cur_hashes += 1; - max_hashes = max_hashes.max(cur_hashes); - } - let hashes = &"#".repeat(max_hashes + 1); - let indent = &" ".repeat(line_indent); - let is_multiline = patch.contains('\n'); - - let mut buf = String::new(); - buf.push('r'); - buf.push_str(hashes); - buf.push('"'); - if is_multiline { - buf.push('\n'); - } - let mut final_newline = false; - for line in lines_with_ends(patch) { - if is_multiline && !line.trim().is_empty() { - buf.push_str(indent); - buf.push_str(" "); - } - buf.push_str(line); - final_newline = line.ends_with('\n'); - } - if final_newline { - buf.push_str(indent); - } - buf.push('"'); - buf.push_str(hashes); - buf -} - -static WORKSPACE_ROOT: Lazy = Lazy::new(|| { - let my_manifest = - env::var("CARGO_MANIFEST_DIR").unwrap_or_else(|_| env!("CARGO_MANIFEST_DIR").to_owned()); - // Heuristic, see https://github.com/rust-lang/cargo/issues/3946 - Path::new(&my_manifest) - .ancestors() - .filter(|it| it.join("Cargo.toml").exists()) - .last() - .unwrap() - .to_path_buf() -}); - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_format_patch() { - let patch = format_patch(0, "hello\nworld\n"); - expect![[r##" - r#" - hello - world - "#"##]] - .assert_eq(&patch); - - let patch = format_patch(4, "single line"); - expect![[r##"r#"single line"#"##]].assert_eq(&patch); - } - - #[test] - fn test_patchwork() { - let mut patchwork = Patchwork::new("one two three".to_string()); - patchwork.patch(4..7, "zwei"); - patchwork.patch(0..3, "один"); - patchwork.patch(8..13, "3"); - expect![[r#" - Patchwork { - text: "один zwei 3", - indels: [ - ( - 0..3, - 8, - ), - ( - 4..7, - 4, - ), - ( - 8..13, - 1, - ), - ], - } - "#]] - .assert_debug_eq(&patchwork); - } -} -- cgit v1.2.3 From b0fd3faf36c94c3fc52151c6aa82b36b43b7cceb Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Fri, 21 Aug 2020 13:19:31 +0200 Subject: Switch to expect_test from crates.io --- Cargo.lock | 19 ++++++++++--------- crates/hir_def/Cargo.toml | 2 +- crates/hir_def/src/import_map.rs | 2 +- crates/hir_def/src/item_tree/tests.rs | 2 +- crates/hir_def/src/nameres/tests.rs | 2 +- crates/hir_ty/Cargo.toml | 3 +-- crates/hir_ty/src/tests.rs | 2 +- crates/hir_ty/src/tests/coercion.rs | 2 +- crates/hir_ty/src/tests/macros.rs | 2 +- crates/hir_ty/src/tests/method_resolution.rs | 2 +- crates/hir_ty/src/tests/never_type.rs | 2 +- crates/hir_ty/src/tests/patterns.rs | 2 +- crates/hir_ty/src/tests/regression.rs | 2 +- crates/hir_ty/src/tests/simple.rs | 2 +- crates/hir_ty/src/tests/traits.rs | 2 +- crates/ide/Cargo.toml | 2 +- crates/ide/src/call_info.rs | 2 +- crates/ide/src/completion/complete_attribute.rs | 2 +- crates/ide/src/completion/complete_dot.rs | 2 +- crates/ide/src/completion/complete_fn_param.rs | 2 +- crates/ide/src/completion/complete_keyword.rs | 2 +- .../src/completion/complete_macro_in_item_position.rs | 2 +- crates/ide/src/completion/complete_pattern.rs | 2 +- crates/ide/src/completion/complete_postfix.rs | 2 +- crates/ide/src/completion/complete_qualified_path.rs | 2 +- crates/ide/src/completion/complete_record.rs | 2 +- crates/ide/src/completion/complete_snippet.rs | 2 +- crates/ide/src/completion/complete_trait_impl.rs | 2 +- .../ide/src/completion/complete_unqualified_path.rs | 2 +- crates/ide/src/completion/presentation.rs | 2 +- crates/ide/src/diagnostics.rs | 2 +- crates/ide/src/display/navigation_target.rs | 2 +- crates/ide/src/expand_macro.rs | 2 +- crates/ide/src/file_structure.rs | 2 +- crates/ide/src/hover.rs | 2 +- crates/ide/src/inlay_hints.rs | 2 +- crates/ide/src/references/rename.rs | 2 +- crates/ide/src/runnables.rs | 2 +- crates/ide/src/syntax_highlighting/tests.rs | 2 +- crates/rust-analyzer/Cargo.toml | 2 +- crates/rust-analyzer/src/diagnostics/to_proto.rs | 2 +- crates/ssr/Cargo.toml | 2 +- crates/ssr/src/tests.rs | 2 +- crates/syntax/Cargo.toml | 2 +- crates/syntax/src/tests.rs | 2 +- 45 files changed, 54 insertions(+), 54 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e0dc061f..559154a8d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -345,12 +345,13 @@ dependencies = [ ] [[package]] -name = "expect" -version = "0.0.0" +name = "expect-test" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e383741ea1982866572109d1a8c807bd36aad91fca701489fdca56ef92b3b8" dependencies = [ "difference", "once_cell", - "stdx", ] [[package]] @@ -508,7 +509,7 @@ dependencies = [ "cfg", "drop_bomb", "either", - "expect", + "expect-test", "fst", "hir_expand", "indexmap", @@ -553,7 +554,7 @@ dependencies = [ "chalk-recursive", "chalk-solve", "ena", - "expect", + "expect-test", "hir_def", "hir_expand", "itertools", @@ -587,7 +588,7 @@ dependencies = [ "base_db", "cfg", "either", - "expect", + "expect-test", "hir", "ide_db", "indexmap", @@ -1225,7 +1226,7 @@ dependencies = [ "cfg", "crossbeam-channel", "env_logger", - "expect", + "expect-test", "flycheck", "hir", "hir_def", @@ -1452,7 +1453,7 @@ name = "ssr" version = "0.0.0" dependencies = [ "base_db", - "expect", + "expect-test", "hir", "ide_db", "itertools", @@ -1494,7 +1495,7 @@ name = "syntax" version = "0.0.0" dependencies = [ "arrayvec", - "expect", + "expect-test", "itertools", "once_cell", "parser", 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" } tt = { path = "../tt" } [dev-dependencies] -expect = { path = "../expect" } +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>( #[cfg(test)] mod tests { use base_db::{fixture::WithFixture, SourceDatabase, Upcast}; - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::{test_db::TestDB, AssocContainerId, Lookup}; 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 @@ use base_db::fixture::WithFixture; -use expect::{expect, Expect}; +use expect_test::{expect, Expect}; use hir_expand::{db::AstDatabase, HirFileId, InFile}; use rustc_hash::FxHashSet; 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; use std::sync::Arc; use base_db::{fixture::WithFixture, SourceDatabase}; -use expect::{expect, Expect}; +use expect_test::{expect, Expect}; use test_utils::mark; 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" } test_utils = { path = "../test_utils" } [dev-dependencies] +expect-test = "0.1" tracing = "0.1" tracing-subscriber = { version = "0.2", default-features = false, features = ["env-filter", "registry"] } tracing-tree = { version = "0.1.4" } - -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; use std::{env, sync::Arc}; use base_db::{fixture::WithFixture, FileRange, SourceDatabase, SourceDatabaseExt}; -use expect::Expect; +use expect_test::Expect; use hir_def::{ body::{BodySourceMap, SyntheticSyntax}, 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 @@ -use expect::expect; +use expect_test::expect; use test_utils::mark; 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 @@ use std::fs; -use expect::expect; +use expect_test::expect; use test_utils::project_dir; 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 @@ -use expect::expect; +use expect_test::expect; use super::{check_infer, check_types}; 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 @@ -use expect::expect; +use expect_test::expect; use super::{check_infer_with_mismatches, check_types}; 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 @@ -use expect::expect; +use expect_test::expect; use test_utils::mark; 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 @@ -use expect::expect; +use expect_test::expect; use test_utils::mark; 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 @@ -use expect::expect; +use expect_test::expect; use super::{check_infer, check_types}; 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 @@ -use expect::expect; +use expect_test::expect; use test_utils::mark; 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" } hir = { path = "../hir" } [dev-dependencies] -expect = { path = "../expect" } +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 { #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use test_utils::mark; 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] = &[ #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::completion::{test_utils::completion_list, CompletionKind}; 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 #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use test_utils::mark; 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) #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::completion::{test_utils::completion_list, CompletionKind}; 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( #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::completion::{ 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 #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::completion::{test_utils::completion_list, CompletionKind}; 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) { #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::completion::{test_utils::completion_list, CompletionKind}; 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( #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::completion::{ 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 #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use test_utils::mark; 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) -> #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::completion::{test_utils::completion_list, CompletionKind}; 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}() { #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::completion::{test_utils::completion_list, CompletionKind}; 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 { #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::completion::{ 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 #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use test_utils::mark; 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 mod tests { use std::cmp::Reverse; - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use test_utils::mark; 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( #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use stdx::trim_indent; use test_utils::assert_eq_text; 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) -> #[cfg(test)] mod tests { - use expect::expect; + use expect_test::expect; use crate::{mock_analysis::single_file, Query}; 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 { #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::mock_analysis::analysis_and_position; 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 { #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use super::*; 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) -> Option { #[cfg(test)] mod tests { use base_db::FileLoader; - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::mock_analysis::analysis_and_position; 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, expr: &ast::Expr) -> Option bool { #[cfg(test)] mod tests { - use expect::{expect, Expect}; + use expect_test::{expect, Expect}; use crate::mock_analysis::analysis_and_position; 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 @@ use std::fs; -use expect::{expect_file, ExpectFile}; +use expect_test::{expect_file, ExpectFile}; use test_utils::project_dir; 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" } winapi = "0.3.8" [dev-dependencies] -expect = { path = "../expect" } +expect-test = "0.1" test_utils = { path = "../test_utils" } mbe = { path = "../mbe" } 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( mod tests { use super::*; - use expect::{expect_file, ExpectFile}; + use expect_test::{expect_file, ExpectFile}; fn check(diagnostics_json: &str, expect: ExpectFile) { 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" } test_utils = { path = "../test_utils" } [dev-dependencies] -expect = { path = "../expect" } +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 @@ use crate::{MatchFinder, SsrRule}; use base_db::{salsa::Durability, FileId, FilePosition, FileRange, SourceDatabaseExt}; -use expect::{expect, Expect}; +use expect_test::{expect, Expect}; use rustc_hash::FxHashSet; use std::sync::Arc; 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" } [dev-dependencies] walkdir = "2.3.1" rayon = "1" +expect-test = "0.1" test_utils = { path = "../test_utils" } -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::{ path::{Path, PathBuf}, }; -use expect::expect_file; +use expect_test::expect_file; use rayon::prelude::*; use test_utils::project_dir; -- cgit v1.2.3