about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTomasz Miąsko <tomasz.miasko@gmail.com>2016-07-30 13:06:49 +0200
committerTomasz Miąsko <tomasz.miasko@gmail.com>2016-07-31 12:20:06 +0200
commit443f1ca83c8b323d530ba62ed1974a75f94e0e17 (patch)
tree408674cd77130050f0f0223a409bb49cd2633c98
parent2ad98a0b42917dbb0914f458829db7511be168d4 (diff)
downloadrust-443f1ca83c8b323d530ba62ed1974a75f94e0e17.tar.gz
rust-443f1ca83c8b323d530ba62ed1974a75f94e0e17.zip
Suggest use of `--print target-list` when target is not found.
If given target could not be found suggest using `--print target-list`.
Previously, error has been reported as:

$ rustc --target x86-unknown-linux-gnu
error: Error loading target specification: Could not find specification for target "x86-unknown-linux-gnu"

After changes it looks as follows:

rustc --target x86-unknown-linux-gnu
error: Error loading target specification: Could not find specification for target "x86-unknown-linux-gnu"
help: Use `--print target-list` for a list of built-in targets
-rw-r--r--src/librustc/session/config.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index 690395399ef..34df476e5c8 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -30,7 +30,7 @@ use syntax::parse;
 use syntax::parse::token::InternedString;
 use syntax::feature_gate::UnstableFeatures;
 
-use errors::{ColorConfig, Handler};
+use errors::{ColorConfig, FatalError, Handler};
 
 use getopts;
 use std::collections::HashMap;
@@ -836,7 +836,10 @@ pub fn build_target_config(opts: &Options, sp: &Handler) -> Config {
     let target = match Target::search(&opts.target_triple) {
         Ok(t) => t,
         Err(e) => {
-            panic!(sp.fatal(&format!("Error loading target specification: {}", e)));
+            sp.struct_fatal(&format!("Error loading target specification: {}", e))
+                .help("Use `--print target-list` for a list of built-in targets")
+                .emit();
+            panic!(FatalError);
         }
     };