@@ -248,9 +248,9 @@ macro_rules! options {
248
248
pub const parse_list: & str = "a space-separated list of strings" ;
249
249
pub const parse_opt_list: & str = parse_list;
250
250
pub const parse_opt_comma_list: & str = "a comma-separated list of strings" ;
251
- pub const parse_uint : & str = "a number" ;
252
- pub const parse_opt_uint : & str = parse_uint ;
253
- pub const parse_threads: & str = parse_uint ;
251
+ pub const parse_number : & str = "a number" ;
252
+ pub const parse_opt_number : & str = parse_number ;
253
+ pub const parse_threads: & str = parse_number ;
254
254
pub const parse_passes: & str = "a space-separated list of passes, or `all`" ;
255
255
pub const parse_panic_strategy: & str = "either `unwind` or `abort`" ;
256
256
pub const parse_relro_level: & str = "one of: `full`, `partial`, or `off`" ;
@@ -413,16 +413,16 @@ macro_rules! options {
413
413
}
414
414
}
415
415
416
- /// Use this for any uint option that has a static default.
417
- fn parse_uint ( slot: & mut usize , v: Option <& str >) -> bool {
416
+ /// Use this for any numeric option that has a static default.
417
+ fn parse_number< T : Copy + FromStr > ( slot: & mut T , v: Option <& str >) -> bool {
418
418
match v. and_then( |s| s. parse( ) . ok( ) ) {
419
419
Some ( i) => { * slot = i; true } ,
420
420
None => false
421
421
}
422
422
}
423
423
424
- /// Use this for any uint option that lacks a static default.
425
- fn parse_opt_uint ( slot: & mut Option <usize >, v: Option <& str >) -> bool {
424
+ /// Use this for any numeric option that lacks a static default.
425
+ fn parse_opt_number< T : Copy + FromStr > ( slot: & mut Option <T >, v: Option <& str >) -> bool {
426
426
match v {
427
427
Some ( s) => { * slot = s. parse( ) . ok( ) ; slot. is_some( ) }
428
428
None => false
@@ -748,13 +748,13 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options,
748
748
"this option is deprecated and does nothing" ) ,
749
749
code_model: Option <CodeModel > = ( None , parse_code_model, [ TRACKED ] ,
750
750
"choose the code model to use (`rustc --print code-models` for details)" ) ,
751
- codegen_units: Option <usize > = ( None , parse_opt_uint , [ UNTRACKED ] ,
751
+ codegen_units: Option <usize > = ( None , parse_opt_number , [ UNTRACKED ] ,
752
752
"divide crate into N units to optimize in parallel" ) ,
753
753
control_flow_guard: CFGuard = ( CFGuard :: Disabled , parse_cfguard, [ TRACKED ] ,
754
754
"use Windows Control Flow Guard (default: no)" ) ,
755
755
debug_assertions: Option <bool > = ( None , parse_opt_bool, [ TRACKED ] ,
756
756
"explicitly enable the `cfg(debug_assertions)` directive" ) ,
757
- debuginfo: usize = ( 0 , parse_uint , [ TRACKED ] ,
757
+ debuginfo: usize = ( 0 , parse_number , [ TRACKED ] ,
758
758
"debug info emission level (0 = no debug info, 1 = line tables only, \
759
759
2 = full debug info with variable and type information; default: 0)") ,
760
760
default_linker_libraries: bool = ( false , parse_bool, [ UNTRACKED ] ,
@@ -769,7 +769,7 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options,
769
769
"force use of unwind tables" ) ,
770
770
incremental: Option <String > = ( None , parse_opt_string, [ UNTRACKED ] ,
771
771
"enable incremental compilation" ) ,
772
- inline_threshold: Option <usize > = ( None , parse_opt_uint , [ TRACKED ] ,
772
+ inline_threshold: Option <u32 > = ( None , parse_opt_number , [ TRACKED ] ,
773
773
"set the threshold for inlining a function" ) ,
774
774
link_arg: ( /* redirected to link_args */ ) = ( ( ) , parse_string_push, [ UNTRACKED ] ,
775
775
"a single extra argument to append to the linker invocation (can be used several times)" ) ,
@@ -959,9 +959,9 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
959
959
"verify incr. comp. hashes of green query instances (default: no)" ) ,
960
960
inline_mir: Option <bool > = ( None , parse_opt_bool, [ TRACKED ] ,
961
961
"enable MIR inlining (default: no)" ) ,
962
- inline_mir_threshold: Option <usize > = ( None , parse_opt_uint , [ TRACKED ] ,
962
+ inline_mir_threshold: Option <usize > = ( None , parse_opt_number , [ TRACKED ] ,
963
963
"a default MIR inlining threshold (default: 50)" ) ,
964
- inline_mir_hint_threshold: Option <usize > = ( None , parse_opt_uint , [ TRACKED ] ,
964
+ inline_mir_hint_threshold: Option <usize > = ( None , parse_opt_number , [ TRACKED ] ,
965
965
"inlining threshold for functions with inline hint (default: 100)" ) ,
966
966
inline_in_all_cgus: Option <bool > = ( None , parse_opt_bool, [ TRACKED ] ,
967
967
"control whether `#[inline]` functions are in all CGUs" ) ,
@@ -999,7 +999,7 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
999
999
mir_emit_retag: bool = ( false , parse_bool, [ TRACKED ] ,
1000
1000
"emit Retagging MIR statements, interpreted e.g., by miri; implies -Zmir-opt-level=0 \
1001
1001
(default: no)") ,
1002
- mir_opt_level: Option <usize > = ( None , parse_opt_uint , [ TRACKED ] ,
1002
+ mir_opt_level: Option <usize > = ( None , parse_opt_number , [ TRACKED ] ,
1003
1003
"MIR optimization level (0-4; default: 1 in non optimized builds and 2 in optimized builds)" ) ,
1004
1004
mutable_noalias: bool = ( false , parse_bool, [ TRACKED ] ,
1005
1005
"emit noalias metadata for mutable references (default: no)" ) ,
@@ -1120,7 +1120,7 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
1120
1120
"which mangling version to use for symbol names ('legacy' (default) or 'v0')" ) ,
1121
1121
teach: bool = ( false , parse_bool, [ TRACKED ] ,
1122
1122
"show extended diagnostic help (default: no)" ) ,
1123
- terminal_width: Option <usize > = ( None , parse_opt_uint , [ UNTRACKED ] ,
1123
+ terminal_width: Option <usize > = ( None , parse_opt_number , [ UNTRACKED ] ,
1124
1124
"set the current terminal width" ) ,
1125
1125
tune_cpu: Option <String > = ( None , parse_opt_string, [ TRACKED ] ,
1126
1126
"select processor to schedule for (`rustc --print target-cpus` for details)" ) ,
0 commit comments