@@ -79,7 +79,7 @@ impl<'a> CompileOptions<'a> {
79
79
spec : ops:: Packages :: Packages ( & [ ] ) ,
80
80
mode : mode,
81
81
release : false ,
82
- filter : CompileFilter :: Everything { required_features_filterable : false } ,
82
+ filter : CompileFilter :: Default { required_features_filterable : false } ,
83
83
message_format : MessageFormat :: Human ,
84
84
target_rustdoc_args : None ,
85
85
target_rustc_args : None ,
@@ -158,7 +158,7 @@ pub enum FilterRule<'a> {
158
158
159
159
#[ derive( Debug ) ]
160
160
pub enum CompileFilter < ' a > {
161
- Everything {
161
+ Default {
162
162
/// Flag whether targets can be safely skipped when required-features are not satisfied.
163
163
required_features_filterable : bool ,
164
164
} ,
@@ -371,29 +371,36 @@ impl<'a> CompileFilter<'a> {
371
371
bins : & ' a [ String ] , all_bins : bool ,
372
372
tsts : & ' a [ String ] , all_tsts : bool ,
373
373
exms : & ' a [ String ] , all_exms : bool ,
374
- bens : & ' a [ String ] , all_bens : bool ) -> CompileFilter < ' a > {
374
+ bens : & ' a [ String ] , all_bens : bool ,
375
+ all_targets : bool ) -> CompileFilter < ' a > {
375
376
let rule_bins = FilterRule :: new ( bins, all_bins) ;
376
377
let rule_tsts = FilterRule :: new ( tsts, all_tsts) ;
377
378
let rule_exms = FilterRule :: new ( exms, all_exms) ;
378
379
let rule_bens = FilterRule :: new ( bens, all_bens) ;
379
380
380
- if lib_only || rule_bins. is_specific ( ) || rule_tsts. is_specific ( )
381
+ if all_targets {
382
+ CompileFilter :: Only {
383
+ lib : true , bins : FilterRule :: All ,
384
+ examples : FilterRule :: All , benches : FilterRule :: All ,
385
+ tests : FilterRule :: All ,
386
+ }
387
+ } else if lib_only || rule_bins. is_specific ( ) || rule_tsts. is_specific ( )
381
388
|| rule_exms. is_specific ( ) || rule_bens. is_specific ( ) {
382
389
CompileFilter :: Only {
383
390
lib : lib_only, bins : rule_bins,
384
391
examples : rule_exms, benches : rule_bens,
385
392
tests : rule_tsts,
386
393
}
387
394
} else {
388
- CompileFilter :: Everything {
395
+ CompileFilter :: Default {
389
396
required_features_filterable : true ,
390
397
}
391
398
}
392
399
}
393
400
394
401
pub fn matches ( & self , target : & Target ) -> bool {
395
402
match * self {
396
- CompileFilter :: Everything { .. } => true ,
403
+ CompileFilter :: Default { .. } => true ,
397
404
CompileFilter :: Only { lib, bins, examples, tests, benches } => {
398
405
let rule = match * target. kind ( ) {
399
406
TargetKind :: Bin => bins,
@@ -411,7 +418,7 @@ impl<'a> CompileFilter<'a> {
411
418
412
419
pub fn is_specific ( & self ) -> bool {
413
420
match * self {
414
- CompileFilter :: Everything { .. } => false ,
421
+ CompileFilter :: Default { .. } => false ,
415
422
CompileFilter :: Only { .. } => true ,
416
423
}
417
424
}
@@ -593,7 +600,7 @@ fn generate_targets<'a>(pkg: &'a Package,
593
600
} ;
594
601
595
602
let targets = match * filter {
596
- CompileFilter :: Everything { required_features_filterable } => {
603
+ CompileFilter :: Default { required_features_filterable } => {
597
604
let deps = if release {
598
605
& profiles. bench_deps
599
606
} else {
0 commit comments