diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-07-05 20:27:06 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-05 20:27:06 +0200 |
| commit | cc453d9895510213c42935fb6db43baeb4c8abf9 (patch) | |
| tree | 8c62e7031f5b83190f1a90956f6d5199b5392345 /src/bootstrap | |
| parent | 3c2cba847b0e4d1bfd4c810cee08303034bbe2d5 (diff) | |
| parent | f01e5e6ce71cb57d4b47ef39899d3f09c40928c7 (diff) | |
| download | rust-cc453d9895510213c42935fb6db43baeb4c8abf9.tar.gz rust-cc453d9895510213c42935fb6db43baeb4c8abf9.zip | |
Rollup merge of #62406 - Mark-Simulacrum:warnings-lint, r=RalfJung
Lint on invalid values passed to x.py --warnings This also introduces support for `--warnings allow` and fixes --warnings being overridden by the configuration file, config.toml. Fixes #62402 r? @RalfJung
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/config.rs | 4 | ||||
| -rw-r--r-- | src/bootstrap/flags.rs | 24 |
2 files changed, 23 insertions, 5 deletions
diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs index 66f504ea924..20d7548df5c 100644 --- a/src/bootstrap/config.rs +++ b/src/bootstrap/config.rs @@ -405,7 +405,7 @@ impl Config { config.incremental = flags.incremental; config.dry_run = flags.dry_run; config.keep_stage = flags.keep_stage; - if let Some(value) = flags.warnings { + if let Some(value) = flags.deny_warnings { config.deny_warnings = value; } @@ -571,7 +571,7 @@ impl Config { config.rustc_default_linker = rust.default_linker.clone(); config.musl_root = rust.musl_root.clone().map(PathBuf::from); config.save_toolstates = rust.save_toolstates.clone().map(PathBuf::from); - set(&mut config.deny_warnings, rust.deny_warnings.or(flags.warnings)); + set(&mut config.deny_warnings, flags.deny_warnings.or(rust.deny_warnings)); set(&mut config.backtrace_on_ice, rust.backtrace_on_ice); set(&mut config.rust_verify_llvm_ir, rust.verify_llvm_ir); set(&mut config.rust_remap_debuginfo, rust.remap_debuginfo); diff --git a/src/bootstrap/flags.rs b/src/bootstrap/flags.rs index 179accda0c8..0e171e92b31 100644 --- a/src/bootstrap/flags.rs +++ b/src/bootstrap/flags.rs @@ -33,8 +33,11 @@ pub struct Flags { pub rustc_error_format: Option<String>, pub dry_run: bool, - // true => deny - pub warnings: Option<bool>, + // This overrides the deny-warnings configuation option, + // which passes -Dwarnings to the compiler invocations. + // + // true => deny, false => allow + pub deny_warnings: Option<bool>, } pub enum Subcommand { @@ -468,7 +471,7 @@ Arguments: .into_iter() .map(|p| p.into()) .collect::<Vec<_>>(), - warnings: matches.opt_str("warnings").map(|v| v == "deny"), + deny_warnings: parse_deny_warnings(&matches), } } } @@ -549,3 +552,18 @@ fn split(s: &[String]) -> Vec<String> { .map(|s| s.to_string()) .collect() } + +fn parse_deny_warnings(matches: &getopts::Matches) -> Option<bool> { + match matches.opt_str("warnings").as_ref().map(|v| v.as_str()) { + Some("deny") => Some(true), + Some("allow") => Some(false), + Some(value) => { + eprintln!( + r#"invalid value for --warnings: {:?}, expected "allow" or "deny""#, + value, + ); + process::exit(1); + }, + None => None, + } +} |
