Abort if check nightly options failed on stable
This commit is contained in:
parent
7f0fa485a6
commit
12888d246b
1 changed files with 13 additions and 5 deletions
|
@ -2959,6 +2959,7 @@ pub mod nightly_options {
|
||||||
) {
|
) {
|
||||||
let has_z_unstable_option = matches.opt_strs("Z").iter().any(|x| *x == "unstable-options");
|
let has_z_unstable_option = matches.opt_strs("Z").iter().any(|x| *x == "unstable-options");
|
||||||
let really_allows_unstable_options = match_is_nightly_build(matches);
|
let really_allows_unstable_options = match_is_nightly_build(matches);
|
||||||
|
let mut nightly_options_on_stable = 0;
|
||||||
|
|
||||||
for opt in flags.iter() {
|
for opt in flags.iter() {
|
||||||
if opt.stability == OptionStability::Stable {
|
if opt.stability == OptionStability::Stable {
|
||||||
|
@ -2979,20 +2980,27 @@ pub mod nightly_options {
|
||||||
}
|
}
|
||||||
match opt.stability {
|
match opt.stability {
|
||||||
OptionStability::Unstable => {
|
OptionStability::Unstable => {
|
||||||
|
nightly_options_on_stable += 1;
|
||||||
let msg = format!(
|
let msg = format!(
|
||||||
"the option `{}` is only accepted on the nightly compiler",
|
"the option `{}` is only accepted on the nightly compiler",
|
||||||
opt.name
|
opt.name
|
||||||
);
|
);
|
||||||
let _ = handler.early_error_no_abort(msg);
|
let _ = handler.early_error_no_abort(msg);
|
||||||
handler.early_note("selecting a toolchain with `+toolchain` arguments require a rustup proxy; see <https://rust-lang.github.io/rustup/concepts/index.html>");
|
|
||||||
handler.early_help(
|
|
||||||
"consider switching to a nightly toolchain: `rustup default nightly`",
|
|
||||||
);
|
|
||||||
handler.early_note("for more information about Rust's stability policy, see <https://doc.rust-lang.org/book/appendix-07-nightly-rust.html#unstable-features>");
|
|
||||||
}
|
}
|
||||||
OptionStability::Stable => {}
|
OptionStability::Stable => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if nightly_options_on_stable > 0 {
|
||||||
|
handler
|
||||||
|
.early_help("consider switching to a nightly toolchain: `rustup default nightly`");
|
||||||
|
handler.early_note("selecting a toolchain with `+toolchain` arguments require a rustup proxy; see <https://rust-lang.github.io/rustup/concepts/index.html>");
|
||||||
|
handler.early_note("for more information about Rust's stability policy, see <https://doc.rust-lang.org/book/appendix-07-nightly-rust.html#unstable-features>");
|
||||||
|
handler.early_error(format!(
|
||||||
|
"{} nightly option{} were parsed",
|
||||||
|
nightly_options_on_stable,
|
||||||
|
if nightly_options_on_stable > 1 { "s" } else { "" }
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue