From 1067a1c5f649cc206e35b427eaa8d6553280cc96 Mon Sep 17 00:00:00 2001 From: uHOOCCOOHu Date: Thu, 3 Oct 2019 02:02:53 +0800 Subject: Read default cfgs from rustc --- crates/ra_project_model/src/cargo_workspace.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'crates/ra_project_model/src/cargo_workspace.rs') diff --git a/crates/ra_project_model/src/cargo_workspace.rs b/crates/ra_project_model/src/cargo_workspace.rs index 805eaa178..28dadea9d 100644 --- a/crates/ra_project_model/src/cargo_workspace.rs +++ b/crates/ra_project_model/src/cargo_workspace.rs @@ -39,6 +39,7 @@ struct PackageData { is_member: bool, dependencies: Vec, edition: Edition, + features: Vec, } #[derive(Debug, Clone)] @@ -91,6 +92,9 @@ impl Package { pub fn edition(self, ws: &CargoWorkspace) -> Edition { ws.packages[self].edition } + pub fn features(self, ws: &CargoWorkspace) -> &[String] { + &ws.packages[self].features + } pub fn targets<'a>(self, ws: &'a CargoWorkspace) -> impl Iterator + 'a { ws.packages[self].targets.iter().cloned() } @@ -144,6 +148,7 @@ impl CargoWorkspace { is_member, edition: Edition::from_string(&meta_pkg.edition), dependencies: Vec::new(), + features: Vec::new(), }); let pkg_data = &mut packages[pkg]; pkg_by_id.insert(meta_pkg.id.clone(), pkg); @@ -164,6 +169,7 @@ impl CargoWorkspace { let dep = PackageDependency { name: dep_node.name, pkg: pkg_by_id[&dep_node.pkg] }; packages[source].dependencies.push(dep); } + packages[source].features.extend(node.features); } Ok(CargoWorkspace { packages, targets, workspace_root: meta.workspace_root }) -- cgit v1.2.3