File tree 1 file changed +15
-2
lines changed
1 file changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -294,12 +294,25 @@ impl CargoWorkspace {
294
294
}
295
295
meta. current_dir ( current_dir. as_os_str ( ) ) ;
296
296
297
- let mut other_options = config. extra_args . clone ( ) ;
297
+ let mut other_options = vec ! [ ] ;
298
+ // cargo metadata only supports a subset of flags of what cargo usually accepts, and usually
299
+ // the only relevant flags for metadata here are unstable ones, so we pass those along
300
+ // but nothing else
301
+ let mut extra_args = config. extra_args . iter ( ) ;
302
+ while let Some ( arg) = extra_args. next ( ) {
303
+ if arg == "-Z" {
304
+ if let Some ( arg) = extra_args. next ( ) {
305
+ other_options. push ( "-Z" . to_owned ( ) ) ;
306
+ other_options. push ( arg. to_owned ( ) ) ;
307
+ }
308
+ }
309
+ }
310
+
298
311
if !targets. is_empty ( ) {
299
312
other_options. append (
300
313
& mut targets
301
314
. into_iter ( )
302
- . flat_map ( |target| [ "--filter-platform" . to_string ( ) , target] )
315
+ . flat_map ( |target| [ "--filter-platform" . to_owned ( ) . to_string ( ) , target] )
303
316
. collect ( ) ,
304
317
) ;
305
318
}
You can’t perform that action at this time.
0 commit comments