Ignore illform node id from metadata
This commit is contained in:
parent
912776fd95
commit
c32be4bfe8
1 changed files with 18 additions and 2 deletions
|
@ -207,9 +207,25 @@ 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 = match pkg_by_id.get(&node.id) {
|
||||||
|
Some(&src) => src,
|
||||||
|
None => {
|
||||||
|
log::error!("Node id do not match in cargo metadata, ignoring {}", node.id);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
};
|
||||||
for dep_node in node.deps {
|
for dep_node in node.deps {
|
||||||
let dep = PackageDependency { name: dep_node.name, pkg: pkg_by_id[&dep_node.pkg] };
|
let pkg = match pkg_by_id.get(&dep_node.pkg) {
|
||||||
|
Some(&pkg) => pkg,
|
||||||
|
None => {
|
||||||
|
log::error!(
|
||||||
|
"Dep node id do not match in cargo metadata, ignoring {}",
|
||||||
|
dep_node.pkg
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let dep = PackageDependency { name: dep_node.name, pkg };
|
||||||
packages[source].dependencies.push(dep);
|
packages[source].dependencies.push(dep);
|
||||||
}
|
}
|
||||||
packages[source].features.extend(node.features);
|
packages[source].features.extend(node.features);
|
||||||
|
|
Loading…
Reference in a new issue