about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWill Speak <lithiumflame@gmail.com>2015-10-06 21:15:04 +0100
committerWill Speak <will.speak@crispthinking.com>2015-10-07 11:59:51 +0100
commit5d015561836761e7a3d99e46dc91ccc7b6403e73 (patch)
tree9bc2a863b6ef4990d8d3bc15dfe7bbfb33fca314
parent799656311c72e8fd9cd7a84a3db8990cf5ef51e1 (diff)
downloadrust-5d015561836761e7a3d99e46dc91ccc7b6403e73.tar.gz
rust-5d015561836761e7a3d99e46dc91ccc7b6403e73.zip
Make `--explain` Handle Partial Error Codes
Currently the explain command requires full erorr codes, complete with
the leading zeros and the E at the beginning. This commit changes that,
if you don't supply a full erorr code then the error number is padded
out to the required size and the E is added to the beginning.

This means that where previously you would need to write E0001, you can
now write 0001, 001, 01 or jsut 1 to refer to the same error.
-rw-r--r--src/librustc_driver/lib.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs
index d5644d49e1e..e4f033efb58 100644
--- a/src/librustc_driver/lib.rs
+++ b/src/librustc_driver/lib.rs
@@ -285,7 +285,12 @@ impl<'a> CompilerCalls<'a> for RustcDefaultCalls {
                       -> Compilation {
         match matches.opt_str("explain") {
             Some(ref code) => {
-                match descriptions.find_description(&code[..]) {
+                let normalised = if !code.starts_with("E") {
+                    format!("E{0:0>4}", code)
+                } else {
+                    code.to_string()
+                };
+                match descriptions.find_description(&normalised) {
                     Some(ref description) => {
                         // Slice off the leading newline and print.
                         print!("{}", &description[1..]);