From 816203eb8eb4f6b9fd9cee35ce4aa1ca419cc005 Mon Sep 17 00:00:00 2001 From: Eh2406 Date: Sat, 17 Mar 2018 22:44:30 -0400 Subject: [PATCH] A slow and ugly solution, but it works. --- src/cargo/core/resolver/mod.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/cargo/core/resolver/mod.rs b/src/cargo/core/resolver/mod.rs index 0e266ecf2..851af2d53 100644 --- a/src/cargo/core/resolver/mod.rs +++ b/src/cargo/core/resolver/mod.rs @@ -1280,6 +1280,26 @@ fn activate_deps_loop( has_past_conflicting_dep = true; } } + if !has_past_conflicting_dep { + 'deps: for debs in remaining_deps.iter() { + for (_, (other_dep, _, _)) in debs.remaining_siblings.clone() { + if let Some(conflict) = past_conflicting_activations + .get(&other_dep) + .and_then(|past_bad| { + past_bad + .iter() + .find(|conflicting| conflicting.get(&pid).is_some()) + }) { + conflicting_activations.insert( + debs.parent.package_id().clone(), + conflict.get(&pid).unwrap().clone(), + ); + has_past_conflicting_dep = true; + break 'deps; + } + } + } + } // Ok if we're in a "known failure" state for this frame we // may want to skip it altogether though. We don't want to -- 2.30.2