@@ -2876,13 +2876,14 @@ impl Forks {
2876
2876
// For example, if we have conflicting groups {x1, x2} and {x3,
2877
2877
// x4}, we need to make sure the forks generated from one set
2878
2878
// also account for the other set.
2879
- for groups in conflicts. iter ( ) {
2879
+ for set in conflicts. iter ( ) {
2880
2880
let mut new = vec ! [ ] ;
2881
2881
for fork in std:: mem:: take ( & mut forks) {
2882
2882
let mut has_conflicting_dependency = false ;
2883
- for group in groups . iter ( ) {
2884
- if fork. contains_conflicting_item ( group . as_ref ( ) ) {
2883
+ for item in set . iter ( ) {
2884
+ if fork. contains_conflicting_item ( item . as_ref ( ) ) {
2885
2885
has_conflicting_dependency = true ;
2886
+ diverging_packages. insert ( item. package ( ) . clone ( ) ) ;
2886
2887
break ;
2887
2888
}
2888
2889
}
@@ -2893,7 +2894,7 @@ impl Forks {
2893
2894
2894
2895
// Create a fork that excludes ALL extras.
2895
2896
let mut fork_none = fork. clone ( ) ;
2896
- for group in groups . iter ( ) {
2897
+ for group in set . iter ( ) {
2897
2898
fork_none = fork_none. exclude ( [ group. clone ( ) ] ) ;
2898
2899
}
2899
2900
new. push ( fork_none) ;
@@ -2905,10 +2906,9 @@ impl Forks {
2905
2906
// then this creates three forks: one that excludes
2906
2907
// {foo, bar}, one that excludes {foo, baz} and one
2907
2908
// that excludes {bar, baz}.
2908
- for ( i, _) in groups . iter ( ) . enumerate ( ) {
2909
+ for ( i, _) in set . iter ( ) . enumerate ( ) {
2909
2910
let fork_allows_group = fork. clone ( ) . exclude (
2910
- groups
2911
- . iter ( )
2911
+ set. iter ( )
2912
2912
. enumerate ( )
2913
2913
. filter ( |& ( j, _) | i != j)
2914
2914
. map ( |( _, group) | group. clone ( ) ) ,
0 commit comments