466: switch to newer cargo-metadata r=matklad a=matklad

This handles renames

closes https://github.com/rust-analyzer/rust-analyzer/issues/464

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
bors[bot] 2019-01-08 16:36:33 +00:00
commit 3b166aee3c
3 changed files with 13 additions and 15 deletions

6
Cargo.lock generated
View file

@ -113,7 +113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "cargo_metadata" name = "cargo_metadata"
version = "0.6.4" version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "git+https://github.com/matklad/cargo_metadata.git?branch=well-typed#2f125128c38beeef34e0bfc1bc27861a24753dfe"
dependencies = [ dependencies = [
"error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -724,7 +724,7 @@ dependencies = [
name = "ra_lsp_server" name = "ra_lsp_server"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"cargo_metadata 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "cargo_metadata 0.6.4 (git+https://github.com/matklad/cargo_metadata.git?branch=well-typed)",
"crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1489,7 +1489,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum block-buffer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a076c298b9ecdb530ed9d967e74a6027d6a7478924520acddcddc24c1c8ab3ab" "checksum block-buffer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a076c298b9ecdb530ed9d967e74a6027d6a7478924520acddcddc24c1c8ab3ab"
"checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" "checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40"
"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" "checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d"
"checksum cargo_metadata 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e5d1b4d380e1bab994591a24c2bdd1b054f64b60bef483a8c598c7c345bc3bbe" "checksum cargo_metadata 0.6.4 (git+https://github.com/matklad/cargo_metadata.git?branch=well-typed)" = "<none>"
"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" "checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749"
"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"

View file

@ -6,3 +6,4 @@ incremental = true
debug = true debug = true
[patch.'crates-io'] [patch.'crates-io']
cargo_metadata = { git = "https://github.com/matklad/cargo_metadata.git", branch = "well-typed" }

View file

@ -2,7 +2,7 @@ use std::path::{Path, PathBuf};
use cargo_metadata::{metadata_run, CargoOpt}; use cargo_metadata::{metadata_run, CargoOpt};
use ra_syntax::SmolStr; use ra_syntax::SmolStr;
use rustc_hash::{FxHashMap, FxHashSet}; use rustc_hash::FxHashMap;
use failure::{format_err, bail}; use failure::{format_err, bail};
use thread_worker::{WorkerHandle, Worker}; use thread_worker::{WorkerHandle, Worker};
@ -109,11 +109,7 @@ impl CargoWorkspace {
let mut packages = Vec::new(); let mut packages = Vec::new();
let mut targets = Vec::new(); let mut targets = Vec::new();
let ws_members: FxHashSet<String> = meta let ws_members = &meta.workspace_members;
.workspace_members
.into_iter()
.map(|it| it.raw)
.collect();
for meta_pkg in meta.packages { for meta_pkg in meta.packages {
let pkg = Package(packages.len()); let pkg = Package(packages.len());
@ -121,7 +117,7 @@ impl CargoWorkspace {
pkg_by_id.insert(meta_pkg.id.clone(), pkg); pkg_by_id.insert(meta_pkg.id.clone(), pkg);
let mut pkg_data = PackageData { let mut pkg_data = PackageData {
name: meta_pkg.name.into(), name: meta_pkg.name.into(),
manifest: PathBuf::from(meta_pkg.manifest_path), manifest: meta_pkg.manifest_path.clone(),
targets: Vec::new(), targets: Vec::new(),
is_member, is_member,
dependencies: Vec::new(), dependencies: Vec::new(),
@ -131,7 +127,7 @@ impl CargoWorkspace {
targets.push(TargetData { targets.push(TargetData {
pkg, pkg,
name: meta_tgt.name.into(), name: meta_tgt.name.into(),
root: PathBuf::from(meta_tgt.src_path), root: meta_tgt.src_path.clone(),
kind: TargetKind::new(meta_tgt.kind.as_slice()), kind: TargetKind::new(meta_tgt.kind.as_slice()),
}); });
pkg_data.targets.push(tgt); pkg_data.targets.push(tgt);
@ -141,10 +137,11 @@ impl CargoWorkspace {
let resolve = meta.resolve.expect("metadata executed with deps"); let resolve = meta.resolve.expect("metadata executed with deps");
for node in resolve.nodes { for node in resolve.nodes {
let source = pkg_by_id[&node.id]; let source = pkg_by_id[&node.id];
for id in node.dependencies { for dep_node in node.deps {
let target = pkg_by_id[&id]; let dep = PackageDependency {
let name: SmolStr = packages[target.0].name.replace('-', "_").into(); name: dep_node.name.into(),
let dep = PackageDependency { name, pkg: target }; pkg: pkg_by_id[&dep_node.pkg],
};
packages[source.0].dependencies.push(dep); packages[source.0].dependencies.push(dep);
} }
} }