Fix check for unstable features
These features are registered only on Nightly and so matches.opt_present panics when it's called without the is_nightly guard.
This commit is contained in:
parent
ca6b360c8a
commit
c25deef110
@ -459,38 +459,39 @@ impl GetOptsOptions {
|
|||||||
let rust_nightly = option_env!("CFG_RELEASE_CHANNEL")
|
let rust_nightly = option_env!("CFG_RELEASE_CHANNEL")
|
||||||
.map(|c| c == "nightly")
|
.map(|c| c == "nightly")
|
||||||
.unwrap_or(false);
|
.unwrap_or(false);
|
||||||
|
|
||||||
if rust_nightly {
|
if rust_nightly {
|
||||||
options.unstable_features = matches.opt_present("unstable-features");
|
options.unstable_features = matches.opt_present("unstable-features");
|
||||||
}
|
|
||||||
|
|
||||||
if options.unstable_features {
|
if options.unstable_features {
|
||||||
if matches.opt_present("skip-children") {
|
if matches.opt_present("skip-children") {
|
||||||
options.skip_children = Some(true);
|
options.skip_children = Some(true);
|
||||||
}
|
}
|
||||||
if matches.opt_present("error-on-unformatted") {
|
if matches.opt_present("error-on-unformatted") {
|
||||||
options.error_on_unformatted = Some(true);
|
options.error_on_unformatted = Some(true);
|
||||||
}
|
}
|
||||||
if let Some(ref file_lines) = matches.opt_str("file-lines") {
|
if let Some(ref file_lines) = matches.opt_str("file-lines") {
|
||||||
options.file_lines = file_lines.parse().map_err(err_msg)?;
|
options.file_lines = file_lines.parse().map_err(err_msg)?;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let mut unstable_options = vec![];
|
let mut unstable_options = vec![];
|
||||||
if matches.opt_present("skip-children") {
|
if matches.opt_present("skip-children") {
|
||||||
unstable_options.push("`--skip-children`");
|
unstable_options.push("`--skip-children`");
|
||||||
}
|
}
|
||||||
if matches.opt_present("error-on-unformatted") {
|
if matches.opt_present("error-on-unformatted") {
|
||||||
unstable_options.push("`--error-on-unformatted`");
|
unstable_options.push("`--error-on-unformatted`");
|
||||||
}
|
}
|
||||||
if matches.opt_present("file-lines") {
|
if matches.opt_present("file-lines") {
|
||||||
unstable_options.push("`--file-lines`");
|
unstable_options.push("`--file-lines`");
|
||||||
}
|
}
|
||||||
if !unstable_options.is_empty() {
|
if !unstable_options.is_empty() {
|
||||||
let s = if unstable_options.len() == 1 { "" } else { "s" };
|
let s = if unstable_options.len() == 1 { "" } else { "s" };
|
||||||
return Err(format_err!(
|
return Err(format_err!(
|
||||||
"Unstable option{} ({}) used without `--unstable-features`",
|
"Unstable option{} ({}) used without `--unstable-features`",
|
||||||
s,
|
s,
|
||||||
unstable_options.join(", "),
|
unstable_options.join(", "),
|
||||||
));
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user