@@ -2866,13 +2866,14 @@ impl Forks {
2866
2866
// For example, if we have conflicting groups {x1, x2} and {x3,
2867
2867
// x4}, we need to make sure the forks generated from one set
2868
2868
// also account for the other set.
2869
- for groups in conflicts. iter ( ) {
2869
+ for set in conflicts. iter ( ) {
2870
2870
let mut new = vec ! [ ] ;
2871
2871
for fork in std:: mem:: take ( & mut forks) {
2872
2872
let mut has_conflicting_dependency = false ;
2873
- for group in groups . iter ( ) {
2874
- if fork. contains_conflicting_item ( group . as_ref ( ) ) {
2873
+ for item in set . iter ( ) {
2874
+ if fork. contains_conflicting_item ( item . as_ref ( ) ) {
2875
2875
has_conflicting_dependency = true ;
2876
+ diverging_packages. insert ( item. package ( ) . clone ( ) ) ;
2876
2877
break ;
2877
2878
}
2878
2879
}
@@ -2883,7 +2884,7 @@ impl Forks {
2883
2884
2884
2885
// Create a fork that excludes ALL extras.
2885
2886
let mut fork_none = fork. clone ( ) ;
2886
- for group in groups . iter ( ) {
2887
+ for group in set . iter ( ) {
2887
2888
fork_none = fork_none. exclude ( [ group. clone ( ) ] ) ;
2888
2889
}
2889
2890
new. push ( fork_none) ;
@@ -2895,10 +2896,9 @@ impl Forks {
2895
2896
// then this creates three forks: one that excludes
2896
2897
// {foo, bar}, one that excludes {foo, baz} and one
2897
2898
// that excludes {bar, baz}.
2898
- for ( i, _) in groups . iter ( ) . enumerate ( ) {
2899
+ for ( i, _) in set . iter ( ) . enumerate ( ) {
2899
2900
let fork_allows_group = fork. clone ( ) . exclude (
2900
- groups
2901
- . iter ( )
2901
+ set. iter ( )
2902
2902
. enumerate ( )
2903
2903
. filter ( |& ( j, _) | i != j)
2904
2904
. map ( |( _, group) | group. clone ( ) ) ,
0 commit comments