]> git.lizzy.rs Git - rust.git/commitdiff
rustc: Add a flag '--warn-unused-imports'
authorHaitao Li <lihaitao@gmail.com>
Thu, 17 Nov 2011 04:23:43 +0000 (12:23 +0800)
committerMarijn Haverbeke <marijnh@gmail.com>
Thu, 17 Nov 2011 08:28:30 +0000 (09:28 +0100)
Followup of issue #889

man/rustc.1
src/comp/driver/rustc.rs
src/comp/driver/session.rs
src/comp/middle/resolve.rs
src/test/compile-fail/unused-imports-warn.rs

index 36ddea96ef466e109534a55eac85cb243d8dec7f..55b9a3d574369d46fa28a2cceae27604f6631862 100644 (file)
@@ -123,6 +123,9 @@ Build a test harness.
 .TP
 \fB--stack-growth\fR:
 \fBEXPERIMENTAL\fR. Perform stack growth checks.
+.TP
+\fB--warn-unused-imports\fR:
+Warn about unnecessary imports.
 .SH "BUGS"
 See \fBhttps://github.com/graydon/rust/issues\fR for a list of known bugs.
 .SH "AUTHOR"
index d42cd85ea080ad8918597c7bc6a920b97fd022f3..1a684c1bf6c7c9f91a5d44861e461191501fb5c0 100644 (file)
@@ -274,6 +274,8 @@ fn usage(argv0: str) {
     --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>,
index c5708551ad91da78005f37441576e129ae3cbba3..4d7c53790ea0cabd4d2590bfee5c82fc0824ef9d 100644 (file)
@@ -43,7 +43,8 @@
      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]};
 
index 7ee6471660de9e5c01e227e27f08ee44001974dc..21b10280b0d39330acb70a46a1e468aac8dc8d92 100644 (file)
@@ -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};
 }
 
index 88e42e0490ada4a9636268a82e6a785259de11da..f3ed51314557da8a621ab1b86bc19de5f2d9600a 100644 (file)
@@ -1,4 +1,5 @@
 // error-pattern:unused import
+// compile-flags:--warn-unused-imports
 import cal = bar::c::cc;
 
 mod foo {