about summary refs log tree commit diff
diff options
context:
space:
mode:
authorZack M. Davis <code@zackmdavis.net>2017-07-15 12:32:31 -0700
committerZack M. Davis <code@zackmdavis.net>2017-07-19 13:27:35 -0700
commitc6a23996cad66dcaed52cf2c5b482641df7273bb (patch)
treec67534c54d8082e76a44fd413e6d6c42cac33f37
parent9bbbd29e82fb7fc9f79736653d42100979899832 (diff)
downloadrust-c6a23996cad66dcaed52cf2c5b482641df7273bb.tar.gz
rust-c6a23996cad66dcaed52cf2c5b482641df7273bb.zip
explanatory error on `--print target-spec-json` without unstable options
Resolves #41683.
-rw-r--r--src/librustc/session/config.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs
index 5661c412302..2a790d0f61e 100644
--- a/src/librustc/session/config.rs
+++ b/src/librustc/session/config.rs
@@ -1615,8 +1615,15 @@ pub fn build_session_options_and_crate_config(matches: &getopts::Matches)
             "target-features" => PrintRequest::TargetFeatures,
             "relocation-models" => PrintRequest::RelocationModels,
             "code-models" => PrintRequest::CodeModels,
-            "target-spec-json" if nightly_options::is_unstable_enabled(matches)
-                => PrintRequest::TargetSpec,
+            "target-spec-json" => {
+                if nightly_options::is_unstable_enabled(matches) {
+                    PrintRequest::TargetSpec
+                } else {
+                    early_error(error_format,
+                                &format!("the `-Z unstable-options` flag must also be passed to \
+                                          enable the target-spec-json print option"));
+                }
+            },
             req => {
                 early_error(error_format, &format!("unknown print request `{}`", req))
             }