File tree 1 file changed +8
-11
lines changed
1 file changed +8
-11
lines changed Original file line number Diff line number Diff line change @@ -96,18 +96,15 @@ impl EncodableResolve {
96
96
g
97
97
} ;
98
98
99
- let replacements = {
100
- let mut replacements = HashMap :: new ( ) ;
101
- for & ( ref id, ref pkg) in live_pkgs. values ( ) {
102
- if let Some ( ref replace) = pkg. replace {
103
- assert ! ( pkg. dependencies. is_none( ) ) ;
104
- if let Some ( replace_id) = try!( lookup_id ( replace) ) {
105
- replacements. insert ( id. clone ( ) , replace_id) ;
106
- }
99
+ let replacements: HashMap < _ , _ > = try!( live_pkgs. values ( )
100
+ . filter_map ( |& ( ref id, pkg) | pkg. replace . as_ref ( ) . and_then ( |replace| {
101
+ assert ! ( pkg. dependencies. is_none( ) ) ;
102
+ match lookup_id ( replace) {
103
+ Err ( e) => Some ( Err ( e) ) ,
104
+ Ok ( None ) => None ,
105
+ Ok ( Some ( replace) ) => Some ( Ok ( ( id. clone ( ) , replace) ) )
107
106
}
108
- }
109
- replacements
110
- } ;
107
+ } ) ) . collect ( ) ) ;
111
108
112
109
let mut metadata = self . metadata . unwrap_or ( BTreeMap :: new ( ) ) ;
113
110
You can’t perform that action at this time.
0 commit comments