@@ -1788,34 +1788,49 @@ fn collect_print_requests(
1788
1788
cg. target_feature = String :: new ( ) ;
1789
1789
}
1790
1790
1791
- prints. extend ( matches. opt_strs ( "print" ) . into_iter ( ) . map ( |s| match & * s {
1792
- "crate-name" => PrintRequest :: CrateName ,
1793
- "file-names" => PrintRequest :: FileNames ,
1794
- "sysroot" => PrintRequest :: Sysroot ,
1795
- "target-libdir" => PrintRequest :: TargetLibdir ,
1796
- "cfg" => PrintRequest :: Cfg ,
1797
- "calling-conventions" => PrintRequest :: CallingConventions ,
1798
- "target-list" => PrintRequest :: TargetList ,
1799
- "target-cpus" => PrintRequest :: TargetCPUs ,
1800
- "target-features" => PrintRequest :: TargetFeatures ,
1801
- "relocation-models" => PrintRequest :: RelocationModels ,
1802
- "code-models" => PrintRequest :: CodeModels ,
1803
- "tls-models" => PrintRequest :: TlsModels ,
1804
- "native-static-libs" => PrintRequest :: NativeStaticLibs ,
1805
- "stack-protector-strategies" => PrintRequest :: StackProtectorStrategies ,
1806
- "target-spec-json" => {
1807
- if unstable_opts. unstable_options {
1808
- PrintRequest :: TargetSpec
1809
- } else {
1791
+ const PRINT_REQUESTS : & [ ( & str , PrintRequest ) ] = & [
1792
+ ( "crate-name" , PrintRequest :: CrateName ) ,
1793
+ ( "file-names" , PrintRequest :: FileNames ) ,
1794
+ ( "sysroot" , PrintRequest :: Sysroot ) ,
1795
+ ( "target-libdir" , PrintRequest :: TargetLibdir ) ,
1796
+ ( "cfg" , PrintRequest :: Cfg ) ,
1797
+ ( "calling-conventions" , PrintRequest :: CallingConventions ) ,
1798
+ ( "target-list" , PrintRequest :: TargetList ) ,
1799
+ ( "target-cpus" , PrintRequest :: TargetCPUs ) ,
1800
+ ( "target-features" , PrintRequest :: TargetFeatures ) ,
1801
+ ( "relocation-models" , PrintRequest :: RelocationModels ) ,
1802
+ ( "code-models" , PrintRequest :: CodeModels ) ,
1803
+ ( "tls-models" , PrintRequest :: TlsModels ) ,
1804
+ ( "native-static-libs" , PrintRequest :: NativeStaticLibs ) ,
1805
+ ( "stack-protector-strategies" , PrintRequest :: StackProtectorStrategies ) ,
1806
+ ( "target-spec-json" , PrintRequest :: TargetSpec ) ,
1807
+ ( "link-args" , PrintRequest :: LinkArgs ) ,
1808
+ ] ;
1809
+
1810
+ prints. extend ( matches. opt_strs ( "print" ) . into_iter ( ) . map ( |req| {
1811
+ match PRINT_REQUESTS . iter ( ) . find ( |& & ( name, _) | name == req) {
1812
+ Some ( ( _, PrintRequest :: TargetSpec ) ) => {
1813
+ if unstable_opts. unstable_options {
1814
+ PrintRequest :: TargetSpec
1815
+ } else {
1816
+ early_error (
1817
+ error_format,
1818
+ "the `-Z unstable-options` flag must also be passed to \
1819
+ enable the target-spec-json print option",
1820
+ ) ;
1821
+ }
1822
+ }
1823
+ Some ( & ( _, print_request) ) => print_request,
1824
+ None => {
1825
+ let prints =
1826
+ PRINT_REQUESTS . iter ( ) . map ( |( name, _) | format ! ( "`{name}`" ) ) . collect :: < Vec < _ > > ( ) ;
1827
+ let prints = prints. join ( ", " ) ;
1810
1828
early_error (
1811
1829
error_format,
1812
- "the `-Z unstable-options` flag must also be passed to \
1813
- enable the target-spec-json print option",
1830
+ & format ! ( "unknown print request `{req}`. Valid print requests are: {prints}" ) ,
1814
1831
) ;
1815
1832
}
1816
1833
}
1817
- "link-args" => PrintRequest :: LinkArgs ,
1818
- req => early_error ( error_format, & format ! ( "unknown print request `{req}`" ) ) ,
1819
1834
} ) ) ;
1820
1835
1821
1836
prints
0 commit comments