@@ -134,15 +134,26 @@ pub fn resolve_ws_with_opts<'gctx>(
134
134
force_all_targets : ForceAllTargets ,
135
135
) -> CargoResult < WorkspaceResolve < ' gctx > > {
136
136
let mut registry = PackageRegistry :: new ( ws. gctx ( ) ) ?;
137
- let mut add_patches = true ;
138
- let resolve = if ws. ignore_lock ( ) {
139
- None
137
+ let ( resolve, resolved_with_overrides) = if ws. ignore_lock ( ) {
138
+ let add_patches = true ;
139
+ let resolve = None ;
140
+ let resolved_with_overrides = resolve_with_previous (
141
+ & mut registry,
142
+ ws,
143
+ cli_features,
144
+ has_dev_units,
145
+ resolve. as_ref ( ) ,
146
+ None ,
147
+ specs,
148
+ add_patches,
149
+ ) ?;
150
+ ( resolve, resolved_with_overrides)
140
151
} else if ws. require_optional_deps ( ) {
141
152
// First, resolve the root_package's *listed* dependencies, as well as
142
153
// downloading and updating all remotes and such.
143
154
let resolve = resolve_with_registry ( ws, & mut registry) ?;
144
155
// No need to add patches again, `resolve_with_registry` has done it.
145
- add_patches = false ;
156
+ let add_patches = false ;
146
157
147
158
// Second, resolve with precisely what we're doing. Filter out
148
159
// transitive dependencies if necessary, specify features, handle
@@ -170,22 +181,33 @@ pub fn resolve_ws_with_opts<'gctx>(
170
181
}
171
182
}
172
183
173
- Some ( resolve)
184
+ let resolved_with_overrides = resolve_with_previous (
185
+ & mut registry,
186
+ ws,
187
+ cli_features,
188
+ has_dev_units,
189
+ Some ( & resolve) ,
190
+ None ,
191
+ specs,
192
+ add_patches,
193
+ ) ?;
194
+ ( Some ( resolve) , resolved_with_overrides)
174
195
} else {
175
- ops:: load_pkg_lockfile ( ws) ?
196
+ let add_patches = true ;
197
+ let resolve = ops:: load_pkg_lockfile ( ws) ?;
198
+ let resolved_with_overrides = resolve_with_previous (
199
+ & mut registry,
200
+ ws,
201
+ cli_features,
202
+ has_dev_units,
203
+ resolve. as_ref ( ) ,
204
+ None ,
205
+ specs,
206
+ add_patches,
207
+ ) ?;
208
+ ( resolve, resolved_with_overrides)
176
209
} ;
177
210
178
- let resolved_with_overrides = resolve_with_previous (
179
- & mut registry,
180
- ws,
181
- cli_features,
182
- has_dev_units,
183
- resolve. as_ref ( ) ,
184
- None ,
185
- specs,
186
- add_patches,
187
- ) ?;
188
-
189
211
let pkg_set = get_resolved_packages ( & resolved_with_overrides, registry) ?;
190
212
191
213
let member_ids = ws
0 commit comments