@@ -373,6 +373,10 @@ pub fn main_args(args: &[String]) -> isize {
373
373
for & name in passes:: DEFAULT_PASSES {
374
374
println ! ( "{:>20}" , name) ;
375
375
}
376
+ println ! ( "\n Passes run with `--document-private-items`:" ) ;
377
+ for & name in passes:: DEFAULT_PRIVATE_PASSES {
378
+ println ! ( "{:>20}" , name) ;
379
+ }
376
380
return 0 ;
377
381
}
378
382
@@ -623,20 +627,16 @@ fn rust_input<R, F>(cratefile: PathBuf,
623
627
where R : ' static + Send ,
624
628
F : ' static + Send + FnOnce ( Output ) -> R
625
629
{
626
- let mut default_passes = !matches. opt_present ( "no-defaults" ) ;
627
- let mut passes = matches. opt_strs ( "passes" ) ;
628
- let mut plugins = matches. opt_strs ( "plugins" ) ;
629
-
630
- // We hardcode in the passes here, as this is a new flag and we
631
- // are generally deprecating passes.
632
- if matches. opt_present ( "document-private-items" ) {
633
- default_passes = false ;
630
+ let mut default_passes = if matches. opt_present ( "no-defaults" ) {
631
+ passes:: DefaultPassOption :: None
632
+ } else if matches. opt_present ( "document-private-items" ) {
633
+ passes:: DefaultPassOption :: Private
634
+ } else {
635
+ passes:: DefaultPassOption :: Default
636
+ } ;
634
637
635
- passes = vec ! [
636
- String :: from( "collapse-docs" ) ,
637
- String :: from( "unindent-comments" ) ,
638
- ] ;
639
- }
638
+ let mut manual_passes = matches. opt_strs ( "passes" ) ;
639
+ let mut plugins = matches. opt_strs ( "plugins" ) ;
640
640
641
641
// First, parse the crate and extract all relevant information.
642
642
let mut paths = SearchPaths :: new ( ) ;
@@ -706,13 +706,15 @@ where R: 'static + Send,
706
706
if attr. is_word ( ) {
707
707
if name == Some ( "no_default_passes" ) {
708
708
report_deprecated_attr ( "no_default_passes" , & diag) ;
709
- default_passes = false ;
709
+ if default_passes == passes:: DefaultPassOption :: Default {
710
+ default_passes = passes:: DefaultPassOption :: None ;
711
+ }
710
712
}
711
713
} else if let Some ( value) = attr. value_str ( ) {
712
714
let sink = match name {
713
715
Some ( "passes" ) => {
714
716
report_deprecated_attr ( "passes = \" ...\" " , & diag) ;
715
- & mut passes
717
+ & mut manual_passes
716
718
} ,
717
719
Some ( "plugins" ) => {
718
720
report_deprecated_attr ( "plugins = \" ...\" " , & diag) ;
@@ -726,20 +728,15 @@ where R: 'static + Send,
726
728
}
727
729
728
730
if attr. is_word ( ) && name == Some ( "document_private_items" ) {
729
- default_passes = false ;
730
-
731
- passes = vec ! [
732
- String :: from( "collapse-docs" ) ,
733
- String :: from( "unindent-comments" ) ,
734
- ] ;
731
+ if default_passes == passes:: DefaultPassOption :: Default {
732
+ default_passes = passes:: DefaultPassOption :: Private ;
733
+ }
735
734
}
736
735
}
737
736
738
- if default_passes {
739
- for name in passes:: DEFAULT_PASSES . iter ( ) . rev ( ) {
740
- passes. insert ( 0 , name. to_string ( ) ) ;
741
- }
742
- }
737
+ let mut passes: Vec < String > =
738
+ passes:: defaults ( default_passes) . iter ( ) . map ( |p| p. to_string ( ) ) . collect ( ) ;
739
+ passes. extend ( manual_passes) ;
743
740
744
741
if !plugins. is_empty ( ) {
745
742
eprintln ! ( "WARNING: --plugins no longer functions; see CVE-2018-1000622" ) ;
0 commit comments