Skip to content

Commit 8899093

Browse files
committed
Don't store conflicting_activations for backtracking.
If we need it later we can always add it back in.
1 parent a028221 commit 8899093

File tree

1 file changed

+2
-9
lines changed

1 file changed

+2
-9
lines changed

src/cargo/core/resolver/mod.rs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,6 @@ struct BacktrackFrame<'a> {
536536
parent: Summary,
537537
dep: Dependency,
538538
features: Rc<Vec<String>>,
539-
conflicting_activations: HashSet<PackageId>,
540539
}
541540

542541
#[derive(Clone)]
@@ -591,7 +590,6 @@ fn activate_deps_loop<'a>(mut cx: Context<'a>,
591590
// use (those with more candidates).
592591
let mut backtrack_stack = Vec::new();
593592
let mut remaining_deps = BinaryHeap::new();
594-
let mut conflicting_activations;
595593
for &(ref summary, ref method) in summaries {
596594
debug!("initial activation: {}", summary.package_id());
597595
let candidate = Candidate { summary: summary.clone(), replace: None };
@@ -664,7 +662,6 @@ fn activate_deps_loop<'a>(mut cx: Context<'a>,
664662
remaining: RcVecIter::new(Rc::clone(&candidates)),
665663
conflicting_prev_active: HashSet::new(),
666664
};
667-
conflicting_activations = HashSet::new();
668665
(candidates.next(prev_active),
669666
candidates.clone().next(prev_active).is_ok(),
670667
candidates)
@@ -695,13 +692,11 @@ fn activate_deps_loop<'a>(mut cx: Context<'a>,
695692
parent: Summary::clone(&parent),
696693
dep: Dependency::clone(&dep),
697694
features: Rc::clone(&features),
698-
conflicting_activations: conflicting_activations.clone(),
699695
});
700696
}
701697
candidate
702698
}
703699
Err(mut conflicting) => {
704-
conflicting_activations.extend(conflicting.drain());
705700
// This dependency has no valid candidate. Backtrack until we
706701
// find a dependency that does have a candidate to try, and try
707702
// to activate that one. This resets the `remaining_deps` to
@@ -715,10 +710,10 @@ fn activate_deps_loop<'a>(mut cx: Context<'a>,
715710
&mut cur,
716711
&mut dep,
717712
&mut features,
718-
&mut conflicting_activations) {
713+
&mut conflicting) {
719714
None => return Err(activation_error(&cx, registry, &parent,
720715
&dep,
721-
conflicting_activations,
716+
conflicting,
722717
&candidates, config)),
723718
Some(candidate) => candidate,
724719
}
@@ -787,15 +782,13 @@ fn find_candidate<'a>(
787782
*parent = frame.parent.clone();
788783
*dep = frame.dep.clone();
789784
*features = Rc::clone(&frame.features);
790-
*conflicting_activations = frame.conflicting_activations.clone();
791785
backtrack_stack.push(frame);
792786
} else {
793787
*cx = frame.context_backup;
794788
*remaining_deps = frame.deps_backup;
795789
*parent = frame.parent;
796790
*dep = frame.dep;
797791
*features = frame.features;
798-
*conflicting_activations = frame.conflicting_activations
799792
}
800793
return Some(candidate);
801794
}

0 commit comments

Comments
 (0)