diff options
author | Aleksey Kladov <[email protected]> | 2019-10-08 12:39:44 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-10-08 12:39:44 +0100 |
commit | 972079c0e32ba6085eb5ba02a137a6df86b79b5a (patch) | |
tree | 574449a7582de5b06c257a72d645b7d489562f22 | |
parent | 355419d4044704d13a902641d86ad5501af8714d (diff) |
macro DSL for cfg in tests
-rw-r--r-- | crates/ra_hir/src/mock.rs | 19 | ||||
-rw-r--r-- | crates/ra_hir/src/nameres/tests.rs | 13 | ||||
-rw-r--r-- | crates/ra_hir/src/ty/tests.rs | 7 |
3 files changed, 23 insertions, 16 deletions
diff --git a/crates/ra_hir/src/mock.rs b/crates/ra_hir/src/mock.rs index f750986b8..827424983 100644 --- a/crates/ra_hir/src/mock.rs +++ b/crates/ra_hir/src/mock.rs | |||
@@ -278,7 +278,10 @@ macro_rules! crate_graph { | |||
278 | $crate_path:literal, | 278 | $crate_path:literal, |
279 | $($edition:literal,)? | 279 | $($edition:literal,)? |
280 | [$($dep:literal),*] | 280 | [$($dep:literal),*] |
281 | $(,$cfg:expr)? | 281 | $(, cfg = { |
282 | $($key:literal $(= $value:literal)?),* | ||
283 | $(,)? | ||
284 | })? | ||
282 | ), | 285 | ), |
283 | )*) => {{ | 286 | )*) => {{ |
284 | let mut res = $crate::mock::CrateGraphFixture::default(); | 287 | let mut res = $crate::mock::CrateGraphFixture::default(); |
@@ -286,7 +289,19 @@ macro_rules! crate_graph { | |||
286 | #[allow(unused_mut, unused_assignments)] | 289 | #[allow(unused_mut, unused_assignments)] |
287 | let mut edition = ra_db::Edition::Edition2018; | 290 | let mut edition = ra_db::Edition::Edition2018; |
288 | $(edition = ra_db::Edition::from_string($edition);)? | 291 | $(edition = ra_db::Edition::from_string($edition);)? |
289 | let cfg_options = { ::ra_cfg::CfgOptions::default() $(; $cfg)? }; | 292 | let cfg_options = { |
293 | #[allow(unused_mut)] | ||
294 | let mut cfg = ::ra_cfg::CfgOptions::default(); | ||
295 | $( | ||
296 | $( | ||
297 | if 0 == 0 $(+ { drop($value); 1})? { | ||
298 | cfg.insert_atom($key.into()); | ||
299 | } | ||
300 | $(cfg.insert_key_value($key.into(), $value.into());)? | ||
301 | )* | ||
302 | )? | ||
303 | cfg | ||
304 | }; | ||
290 | res.0.push(( | 305 | res.0.push(( |
291 | $crate_name.to_string(), | 306 | $crate_name.to_string(), |
292 | ($crate_path.to_string(), edition, cfg_options, vec![$($dep.to_string()),*]) | 307 | ($crate_path.to_string(), edition, cfg_options, vec![$($dep.to_string()),*]) |
diff --git a/crates/ra_hir/src/nameres/tests.rs b/crates/ra_hir/src/nameres/tests.rs index 208c2f16f..8c6b40aaf 100644 --- a/crates/ra_hir/src/nameres/tests.rs +++ b/crates/ra_hir/src/nameres/tests.rs | |||
@@ -7,7 +7,6 @@ mod mod_resolution; | |||
7 | use std::sync::Arc; | 7 | use std::sync::Arc; |
8 | 8 | ||
9 | use insta::assert_snapshot; | 9 | use insta::assert_snapshot; |
10 | use ra_cfg::CfgOptions; | ||
11 | use ra_db::SourceDatabase; | 10 | use ra_db::SourceDatabase; |
12 | use test_utils::covers; | 11 | use test_utils::covers; |
13 | 12 | ||
@@ -561,13 +560,11 @@ fn cfg_test() { | |||
561 | "#, | 560 | "#, |
562 | crate_graph! { | 561 | crate_graph! { |
563 | "main": ("/main.rs", ["std"]), | 562 | "main": ("/main.rs", ["std"]), |
564 | "std": ("/lib.rs", [], { | 563 | "std": ("/lib.rs", [], cfg = { |
565 | let mut opts = CfgOptions::default(); | 564 | "test", |
566 | opts.insert_atom("test".into()); | 565 | "feature" = "foo", |
567 | opts.insert_key_value("feature".into(), "foo".into()); | 566 | "feature" = "bar", |
568 | opts.insert_key_value("feature".into(), "bar".into()); | 567 | "opt" = "42", |
569 | opts.insert_key_value("opt".into(), "42".into()); | ||
570 | opts | ||
571 | }), | 568 | }), |
572 | }, | 569 | }, |
573 | ); | 570 | ); |
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index b16b48258..263b61a59 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs | |||
@@ -3,7 +3,6 @@ use std::sync::Arc; | |||
3 | 3 | ||
4 | use insta::assert_snapshot; | 4 | use insta::assert_snapshot; |
5 | 5 | ||
6 | use ra_cfg::CfgOptions; | ||
7 | use ra_db::{salsa::Database, FilePosition, SourceDatabase}; | 6 | use ra_db::{salsa::Database, FilePosition, SourceDatabase}; |
8 | use ra_syntax::{ | 7 | use ra_syntax::{ |
9 | algo, | 8 | algo, |
@@ -62,11 +61,7 @@ impl S { | |||
62 | "#, | 61 | "#, |
63 | ); | 62 | ); |
64 | db.set_crate_graph_from_fixture(crate_graph! { | 63 | db.set_crate_graph_from_fixture(crate_graph! { |
65 | "main": ("/main.rs", ["foo"], { | 64 | "main": ("/main.rs", ["foo"], cfg = { "test" }), |
66 | let mut opts = CfgOptions::default(); | ||
67 | opts.insert_atom("test".into()); | ||
68 | opts | ||
69 | }), | ||
70 | "foo": ("/foo.rs", []), | 65 | "foo": ("/foo.rs", []), |
71 | }); | 66 | }); |
72 | assert_eq!("(i32, {unknown}, i32, {unknown})", type_at_pos(&db, pos)); | 67 | assert_eq!("(i32, {unknown}, i32, {unknown})", type_at_pos(&db, pos)); |