about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_driver/lib.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs
index d89a3e9d907..b9b36616e69 100644
--- a/src/librustc_driver/lib.rs
+++ b/src/librustc_driver/lib.rs
@@ -1136,6 +1136,16 @@ fn usage(verbose: bool, include_unstable_options: bool) {
              verbose_help);
 }
 
+fn print_wall_help() {
+    println!("
+The flag -Wall does not exist in rustc. Most useful lints are enabled by default.
+Use `rustc -W help` to see all available lints. The most used lints that are not
+enabled by default covered by -Wunused; however, the best practice is to put
+warning settings in the crate root using `#![warn(unused)]` instead of using
+the command line flag directly.
+");
+}
+
 fn describe_lints(sess: &Session, lint_store: &lint::LintStore, loaded_plugins: bool) {
     println!("
 Available lint options:
@@ -1379,6 +1389,13 @@ pub fn handle_options(args: &[String]) -> Option<getopts::Matches> {
               nightly_options::is_unstable_enabled(&matches));
         return None;
     }
+    
+    // Handle the special case of -Wall.
+    let wall = matches.opt_strs("W");
+    if wall.iter().any(|x| *x == "all") {
+        print_wall_help();
+        return None;
+    }
 
     // Don't handle -W help here, because we might first load plugins.
     let r = matches.opt_strs("Z");