From 2400d70442364769b4ae18315fc178427d2d95a9 Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Sun, 10 May 2020 06:22:26 +0800 Subject: Update cargo-metadata --- crates/ra_project_model/Cargo.toml | 2 +- crates/ra_project_model/src/cargo_workspace.rs | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) (limited to 'crates/ra_project_model') diff --git a/crates/ra_project_model/Cargo.toml b/crates/ra_project_model/Cargo.toml index 626478468..946deed5d 100644 --- a/crates/ra_project_model/Cargo.toml +++ b/crates/ra_project_model/Cargo.toml @@ -11,7 +11,7 @@ doctest = false log = "0.4.8" rustc-hash = "1.1.0" -cargo_metadata = "0.9.1" +cargo_metadata = "0.10.0" ra_arena = { path = "../ra_arena" } ra_cfg = { path = "../ra_cfg" } diff --git a/crates/ra_project_model/src/cargo_workspace.rs b/crates/ra_project_model/src/cargo_workspace.rs index eb9f33ee8..9152a6d9d 100644 --- a/crates/ra_project_model/src/cargo_workspace.rs +++ b/crates/ra_project_model/src/cargo_workspace.rs @@ -162,7 +162,7 @@ impl CargoWorkspace { meta.current_dir(parent); } if let Some(target) = cargo_features.target.as_ref() { - meta.other_options(&[String::from("--filter-platform"), target.clone()]); + meta.other_options(vec![String::from("--filter-platform"), target.clone()]); } let meta = meta.exec().with_context(|| { format!("Failed to run `cargo metadata --manifest-path {}`", cargo_toml.display()) @@ -305,19 +305,13 @@ pub fn load_extern_resources( let mut res = ExternResources::default(); - for message in cargo_metadata::parse_messages(output.stdout.as_slice()) { + for message in cargo_metadata::Message::parse_stream(output.stdout.as_slice()) { if let Ok(message) = message { match message { Message::BuildScriptExecuted(BuildScript { package_id, out_dir, cfgs, .. }) => { res.out_dirs.insert(package_id.clone(), out_dir); - res.cfgs.insert( - package_id, - // FIXME: Current `cargo_metadata` uses `PathBuf` instead of `String`, - // change when https://github.com/oli-obk/cargo_metadata/pulls/112 reaches crates.io - cfgs.iter().filter_map(|c| c.to_str().map(|s| s.to_owned())).collect(), - ); + res.cfgs.insert(package_id, cfgs); } - Message::CompilerArtifact(message) => { if message.target.kind.contains(&"proc-macro".to_string()) { let package_id = message.package_id; @@ -330,6 +324,8 @@ pub fn load_extern_resources( } Message::CompilerMessage(_) => (), Message::Unknown => (), + Message::BuildFinished(_) => {} + Message::TextLine(_) => {} } } } -- cgit v1.2.3