From d2ea776b8fbb5286a04dde75a9a8f8b14f12bfe9 Mon Sep 17 00:00:00 2001 From: uHOOCCOOHu Date: Mon, 30 Sep 2019 07:38:16 +0800 Subject: Enable CfgOptions `test` for workspace crates --- crates/ra_project_model/Cargo.toml | 1 + crates/ra_project_model/src/lib.rs | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) (limited to 'crates/ra_project_model') diff --git a/crates/ra_project_model/Cargo.toml b/crates/ra_project_model/Cargo.toml index ae6b91aa6..a65100031 100644 --- a/crates/ra_project_model/Cargo.toml +++ b/crates/ra_project_model/Cargo.toml @@ -12,6 +12,7 @@ cargo_metadata = "0.8.2" ra_arena = { path = "../ra_arena" } ra_db = { path = "../ra_db" } +ra_cfg = { path = "../ra_cfg" } serde = { version = "1.0.89", features = ["derive"] } serde_json = "1.0.39" diff --git a/crates/ra_project_model/src/lib.rs b/crates/ra_project_model/src/lib.rs index 5d3078598..5ff3971e0 100644 --- a/crates/ra_project_model/src/lib.rs +++ b/crates/ra_project_model/src/lib.rs @@ -11,6 +11,7 @@ use std::{ path::{Path, PathBuf}, }; +use ra_cfg::CfgOptions; use ra_db::{CrateGraph, CrateId, Edition, FileId}; use rustc_hash::FxHashMap; use serde_json::from_reader; @@ -131,7 +132,13 @@ impl ProjectWorkspace { json_project::Edition::Edition2015 => Edition::Edition2015, json_project::Edition::Edition2018 => Edition::Edition2018, }; - crates.insert(crate_id, crate_graph.add_crate_root(file_id, edition)); + // FIXME: cfg options + // Default to enable test for workspace crates. + let cfg_options = CfgOptions::default().atom("test".into()); + crates.insert( + crate_id, + crate_graph.add_crate_root(file_id, edition, cfg_options), + ); } } @@ -157,7 +164,11 @@ impl ProjectWorkspace { let mut sysroot_crates = FxHashMap::default(); for krate in sysroot.crates() { if let Some(file_id) = load(krate.root(&sysroot)) { - let crate_id = crate_graph.add_crate_root(file_id, Edition::Edition2018); + // FIXME: cfg options + // Crates from sysroot have `cfg(test)` disabled + let cfg_options = CfgOptions::default(); + let crate_id = + crate_graph.add_crate_root(file_id, Edition::Edition2018, cfg_options); sysroot_crates.insert(krate, crate_id); names.insert(crate_id, krate.name(&sysroot).to_string()); } @@ -186,7 +197,11 @@ impl ProjectWorkspace { let root = tgt.root(&cargo); if let Some(file_id) = load(root) { let edition = pkg.edition(&cargo); - let crate_id = crate_graph.add_crate_root(file_id, edition); + // FIXME: cfg options + // Default to enable test for workspace crates. + let cfg_options = CfgOptions::default().atom("test".into()); + let crate_id = + crate_graph.add_crate_root(file_id, edition, cfg_options); names.insert(crate_id, pkg.name(&cargo).to_string()); if tgt.kind(&cargo) == TargetKind::Lib { lib_tgt = Some(crate_id); -- cgit v1.2.3