From d67a7e6cfc86352ffdd1098d66831675736677dc Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Mon, 5 Oct 2020 18:03:54 +0200 Subject: [PATCH] Use String type for Profile parse error --- src/bootstrap/flags.rs | 4 ++-- src/bootstrap/setup.rs | 13 ++++--------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/bootstrap/flags.rs b/src/bootstrap/flags.rs index d1f256d6dd0..f806e40aa8b 100644 --- a/src/bootstrap/flags.rs +++ b/src/bootstrap/flags.rs @@ -542,8 +542,8 @@ pub fn parse(args: &[String]) -> Flags { |path| format!("{} is not a valid UTF8 string", path.to_string_lossy()) )); - profile_string.parse().unwrap_or_else(|_| { - eprintln!("error: unknown profile {}", profile_string); + profile_string.parse().unwrap_or_else(|err| { + eprintln!("error: {}", err); eprintln!("help: the available profiles are:"); for choice in Profile::all() { eprintln!("- {}", choice); diff --git a/src/bootstrap/setup.rs b/src/bootstrap/setup.rs index 0d2945c3c39..fdc0892845d 100644 --- a/src/bootstrap/setup.rs +++ b/src/bootstrap/setup.rs @@ -24,13 +24,8 @@ pub fn all() -> impl Iterator { } } -#[derive(Debug)] -pub struct ProfileErr { - pub name: String, -} - impl FromStr for Profile { - type Err = ProfileErr; + type Err = String; fn from_str(s: &str) -> Result { match s { @@ -38,7 +33,7 @@ fn from_str(s: &str) -> Result { "b" | "compiler" => Ok(Profile::Compiler), "c" | "llvm" | "codegen" => Ok(Profile::Codegen), "d" | "maintainer" | "user" => Ok(Profile::User), - _ => Err(ProfileErr { name: s.to_string() }), + _ => Err(format!("unknown profile: '{}'", s)), } } } @@ -116,8 +111,8 @@ pub fn interactive_path() -> io::Result { io::stdin().read_line(&mut input)?; break match input.trim().to_lowercase().parse() { Ok(profile) => profile, - Err(ProfileErr { name }) => { - println!("error: unrecognized option '{}'", name); + Err(err) => { + println!("error: {}", err); println!("note: press Ctrl+C to exit"); continue; } -- 2.44.0