about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorHaitao Li <lihaitao@gmail.com>2011-11-17 12:23:43 +0800
committerMarijn Haverbeke <marijnh@gmail.com>2011-11-17 09:28:30 +0100
commit388eed383f05dbc322d5808faf7d52091d0c0fca (patch)
tree44236821d2641d1f713b551275f676d5f1c1c926 /src/comp
parentfe6484d3e6edbcc84805bae053180cb2cdf27805 (diff)
downloadrust-388eed383f05dbc322d5808faf7d52091d0c0fca.tar.gz
rust-388eed383f05dbc322d5808faf7d52091d0c0fca.zip
rustc: Add a flag '--warn-unused-imports'
Followup of issue #889
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/driver/rustc.rs9
-rw-r--r--src/comp/driver/session.rs3
-rw-r--r--src/comp/middle/resolve.rs4
3 files changed, 12 insertions, 4 deletions
diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs
index d42cd85ea08..1a684c1bf6c 100644
--- a/src/comp/driver/rustc.rs
+++ b/src/comp/driver/rustc.rs
@@ -274,6 +274,8 @@ options:
     --test             build test harness
     --gc               garbage collect shared data (experimental/temporary)
     --stack-growth     perform stack checks (experimental)
+    --warn-unused-imports
+                       warn about unnecessary imports
 
 ");
 }
@@ -397,6 +399,7 @@ fn build_session_options(match: getopts::match)
     let test = opt_present(match, "test");
     let do_gc = opt_present(match, "gc");
     let stack_growth = opt_present(match, "stack-growth");
+    let warn_unused_imports = opt_present(match, "warn-unused-imports");
     let sopts: @session::options =
         @{library: library,
           static: static,
@@ -417,7 +420,8 @@ fn build_session_options(match: getopts::match)
           no_trans: no_trans,
           do_gc: do_gc,
           stack_growth: stack_growth,
-          no_asm_comments: no_asm_comments};
+          no_asm_comments: no_asm_comments,
+          warn_unused_imports: warn_unused_imports};
     ret sopts;
 }
 
@@ -457,7 +461,8 @@ fn opts() -> [getopts::opt] {
          optmulti("cfg"), optflag("test"),
          optflag("lib"), optflag("static"), optflag("gc"),
          optflag("stack-growth"),
-         optflag("no-asm-comments")];
+         optflag("no-asm-comments"),
+         optflag("warn-unused-imports")];
 }
 
 fn build_output_filenames(ifile: str, ofile: option::t<str>,
diff --git a/src/comp/driver/session.rs b/src/comp/driver/session.rs
index c5708551ad9..4d7c53790ea 100644
--- a/src/comp/driver/session.rs
+++ b/src/comp/driver/session.rs
@@ -43,7 +43,8 @@ type options =
      no_trans: bool,
      do_gc: bool,
      stack_growth: bool,
-     no_asm_comments: bool};
+     no_asm_comments: bool,
+     warn_unused_imports: bool};
 
 type crate_metadata = {name: str, data: [u8]};
 
diff --git a/src/comp/middle/resolve.rs b/src/comp/middle/resolve.rs
index 7ee6471660d..21b10280b0d 100644
--- a/src/comp/middle/resolve.rs
+++ b/src/comp/middle/resolve.rs
@@ -139,7 +139,9 @@ fn resolve_crate(sess: session, amap: ast_map::map, crate: @ast::crate) ->
     check_for_collisions(e, *crate);
     check_bad_exports(e);
     resolve_names(e, crate);
-    check_unused_imports(e);
+    if sess.get_opts().warn_unused_imports {
+        check_unused_imports(e);
+    }
     ret {def_map: e.def_map, ext_map: e.ext_map};
 }