about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/tutorial-tasks.md6
-rw-r--r--src/compiletest/procsrv.rs2
-rw-r--r--src/libcore/cleanup.rs4
-rw-r--r--src/libcore/comm.rs2
-rw-r--r--src/libcore/gc.rs2
-rw-r--r--src/libcore/hash.rs2
-rw-r--r--src/libcore/hashmap.rs4
-rw-r--r--src/libcore/io.rs2
-rw-r--r--src/libcore/num/float.rs3
-rw-r--r--src/libcore/num/num.rs6
-rw-r--r--src/libcore/num/uint-template.rs2
-rw-r--r--src/libcore/os.rs10
-rw-r--r--src/libcore/pipes.rs4
-rw-r--r--src/libcore/ptr.rs3
-rw-r--r--src/libcore/rand.rs2
-rw-r--r--src/libcore/reflect.rs2
-rw-r--r--src/libcore/repr.rs2
-rw-r--r--src/libcore/rt/io/file.rs2
-rw-r--r--src/libcore/rt/thread_local_storage.rs8
-rw-r--r--src/libcore/rt/uv/mod.rs7
-rw-r--r--src/libcore/rt/uv/net.rs2
-rw-r--r--src/libcore/run.rs2
-rw-r--r--src/libcore/str.rs4
-rw-r--r--src/libcore/task/mod.rs4
-rw-r--r--src/libcore/task/spawn.rs6
-rw-r--r--src/libcore/unstable.rs2
-rw-r--r--src/libcore/unstable/at_exit.rs2
-rw-r--r--src/libcore/unstable/exchange_alloc.rs2
-rw-r--r--src/libcore/unstable/global.rs2
-rw-r--r--src/libcore/unstable/weak_task.rs4
-rw-r--r--src/libcore/vec.rs4
-rw-r--r--src/libfuzzer/fuzzer.rc2
-rw-r--r--src/librustc/back/link.rs10
-rw-r--r--src/librustc/back/upcall.rs7
-rw-r--r--src/librustc/driver/driver.rs2
-rw-r--r--src/librustc/lib/llvm.rs4
-rw-r--r--src/librustc/metadata/creader.rs2
-rw-r--r--src/librustc/metadata/cstore.rs2
-rw-r--r--src/librustc/metadata/decoder.rs2
-rw-r--r--src/librustc/metadata/encoder.rs4
-rw-r--r--src/librustc/metadata/tydecode.rs2
-rw-r--r--src/librustc/metadata/tyencode.rs3
-rw-r--r--src/librustc/middle/astencode.rs2
-rw-r--r--src/librustc/middle/borrowck/check_loans.rs4
-rw-r--r--src/librustc/middle/borrowck/gather_loans.rs5
-rw-r--r--src/librustc/middle/borrowck/loan.rs4
-rw-r--r--src/librustc/middle/borrowck/mod.rs4
-rw-r--r--src/librustc/middle/check_match.rs4
-rw-r--r--src/librustc/middle/kind.rs2
-rw-r--r--src/librustc/middle/lang_items.rs10
-rw-r--r--src/librustc/middle/lint.rs4
-rw-r--r--src/librustc/middle/moves.rs6
-rw-r--r--src/librustc/middle/pat_util.rs2
-rw-r--r--src/librustc/middle/resolve.rs51
-rw-r--r--src/librustc/middle/trans/adt.rs2
-rw-r--r--src/librustc/middle/trans/base.rs12
-rw-r--r--src/librustc/middle/trans/build.rs6
-rw-r--r--src/librustc/middle/trans/cabi_mips.rs4
-rw-r--r--src/librustc/middle/trans/cabi_x86_64.rs2
-rw-r--r--src/librustc/middle/trans/callee.rs2
-rw-r--r--src/librustc/middle/trans/closure.rs6
-rw-r--r--src/librustc/middle/trans/common.rs2
-rw-r--r--src/librustc/middle/trans/consts.rs2
-rw-r--r--src/librustc/middle/trans/debuginfo.rs2
-rw-r--r--src/librustc/middle/trans/expr.rs4
-rw-r--r--src/librustc/middle/trans/foreign.rs4
-rw-r--r--src/librustc/middle/trans/inline.rs4
-rw-r--r--src/librustc/middle/trans/machine.rs4
-rw-r--r--src/librustc/middle/trans/meth.rs8
-rw-r--r--src/librustc/middle/trans/monomorphize.rs6
-rw-r--r--src/librustc/middle/trans/reachable.rs2
-rw-r--r--src/librustc/middle/trans/shape.rs2
-rw-r--r--src/librustc/middle/trans/type_use.rs2
-rw-r--r--src/librustc/middle/ty.rs2
-rw-r--r--src/librustc/middle/typeck/astconv.rs8
-rw-r--r--src/librustc/middle/typeck/check/mod.rs25
-rw-r--r--src/librustc/middle/typeck/check/regionck.rs6
-rw-r--r--src/librustc/middle/typeck/check/vtable.rs6
-rw-r--r--src/librustc/middle/typeck/check/writeback.rs10
-rw-r--r--src/librustc/middle/typeck/coherence.rs9
-rw-r--r--src/librustc/middle/typeck/collect.rs2
-rw-r--r--src/librustc/middle/typeck/infer/coercion.rs10
-rw-r--r--src/librustc/middle/typeck/infer/combine.rs2
-rw-r--r--src/librustc/middle/typeck/infer/glb.rs3
-rw-r--r--src/librustc/middle/typeck/infer/lub.rs4
-rw-r--r--src/librustc/middle/typeck/infer/mod.rs8
-rw-r--r--src/librustc/middle/typeck/infer/region_inference.rs2
-rw-r--r--src/librustc/middle/typeck/infer/sub.rs2
-rw-r--r--src/librustc/middle/typeck/infer/to_str.rs4
-rw-r--r--src/librustc/middle/typeck/infer/unify.rs2
-rw-r--r--src/librustc/middle/typeck/mod.rs6
-rw-r--r--src/librustc/util/ppaux.rs4
-rw-r--r--src/librustdoc/astsrv.rs2
-rw-r--r--src/librustdoc/page_pass.rs4
-rw-r--r--src/librusti/rusti.rc4
-rw-r--r--src/librustpkg/rustpkg.rc5
-rw-r--r--src/librustpkg/util.rs6
-rw-r--r--src/libstd/bigint.rs2
-rw-r--r--src/libstd/ebml.rs8
-rw-r--r--src/libstd/flatpipes.rs6
-rw-r--r--src/libstd/future.rs2
-rw-r--r--src/libstd/getopts.rs2
-rw-r--r--src/libstd/net_ip.rs2
-rw-r--r--src/libstd/net_tcp.rs4
-rw-r--r--src/libstd/sort.rs2
-rw-r--r--src/libstd/task_pool.rs6
-rw-r--r--src/libstd/test.rs2
-rw-r--r--src/libstd/uv_global_loop.rs4
-rw-r--r--src/libstd/uv_ll.rs6
-rw-r--r--src/libsyntax/ast.rs2
-rw-r--r--src/libsyntax/ast_map.rs2
-rw-r--r--src/libsyntax/ast_util.rs2
-rw-r--r--src/libsyntax/ext/base.rs6
-rw-r--r--src/libsyntax/ext/deriving/clone.rs9
-rw-r--r--src/libsyntax/ext/deriving/eq.rs9
-rw-r--r--src/libsyntax/ext/deriving/iter_bytes.rs9
-rw-r--r--src/libsyntax/ext/deriving/mod.rs14
-rw-r--r--src/libsyntax/ext/expand.rs4
-rw-r--r--src/libsyntax/ext/pipes/ast_builder.rs4
-rw-r--r--src/libsyntax/ext/pipes/mod.rs2
-rw-r--r--src/libsyntax/ext/tt/macro_parser.rs2
-rw-r--r--src/libsyntax/ext/tt/macro_rules.rs2
-rw-r--r--src/libsyntax/parse/comments.rs2
-rw-r--r--src/libsyntax/parse/mod.rs6
-rw-r--r--src/libsyntax/parse/parser.rs20
-rw-r--r--src/libsyntax/print/pprust.rs6
-rw-r--r--src/test/compile-fail/unused-imports-warn.rs10
127 files changed, 301 insertions, 315 deletions
diff --git a/doc/tutorial-tasks.md b/doc/tutorial-tasks.md
index f5d3a482a9f..922fad82f39 100644
--- a/doc/tutorial-tasks.md
+++ b/doc/tutorial-tasks.md
@@ -188,7 +188,7 @@ spawns the child task.
 
 ~~~~
 # use core::task::spawn;
-# use core::comm::{stream, Port, Chan};
+# use core::comm::stream;
 # fn some_expensive_computation() -> int { 42 }
 # let (port, chan) = stream();
 do spawn || {
@@ -208,7 +208,7 @@ computation, then waits for the child's result to arrive on the
 port:
 
 ~~~~
-# use core::comm::{stream, Port, Chan};
+# use core::comm::{stream};
 # fn some_other_expensive_computation() {}
 # let (port, chan) = stream::<int>();
 # chan.send(0);
@@ -277,7 +277,7 @@ might look like the example below.
 
 ~~~
 # use core::task::spawn;
-# use core::comm::{stream, Port, Chan};
+# use core::comm::stream;
 
 // Create a vector of ports, one for each child task
 let ports = do vec::from_fn(3) |init_val| {
diff --git a/src/compiletest/procsrv.rs b/src/compiletest/procsrv.rs
index b8e95c67e27..3302b353d69 100644
--- a/src/compiletest/procsrv.rs
+++ b/src/compiletest/procsrv.rs
@@ -12,7 +12,7 @@ use core::prelude::*;
 
 use core::io::{ReaderUtil, WriterUtil};
 use core::io;
-use core::libc::{c_int, pid_t};
+use core::libc::c_int;
 use core::os;
 use core::run::spawn_process;
 use core::run;
diff --git a/src/libcore/cleanup.rs b/src/libcore/cleanup.rs
index 8223ab650f2..a07c6b4811b 100644
--- a/src/libcore/cleanup.rs
+++ b/src/libcore/cleanup.rs
@@ -11,11 +11,13 @@
 #[doc(hidden)];
 
 use libc::{c_char, c_void, intptr_t, uintptr_t};
-use ptr::{mut_null, null, to_unsafe_ptr};
+use ptr::mut_null;
 use repr::BoxRepr;
 use sys::TypeDesc;
 use cast::transmute;
 
+#[cfg(notest)] use ptr::to_unsafe_ptr;
+
 /**
  * Runtime structures
  *
diff --git a/src/libcore/comm.rs b/src/libcore/comm.rs
index a852b0fb720..731ef425995 100644
--- a/src/libcore/comm.rs
+++ b/src/libcore/comm.rs
@@ -429,7 +429,7 @@ pub fn try_send_one<T: Owned>(chan: ChanOne<T>, data: T)
 
 #[cfg(test)]
 pub mod test {
-    use either::{Either, Left, Right};
+    use either::Right;
     use super::{Chan, Port, oneshot, recv_one, stream};
 
     #[test]
diff --git a/src/libcore/gc.rs b/src/libcore/gc.rs
index 85d288dda6c..2f35c1e0bb1 100644
--- a/src/libcore/gc.rs
+++ b/src/libcore/gc.rs
@@ -38,7 +38,7 @@ with destructors.
 */
 
 use cast;
-use container::{Container, Mutable, Map, Set};
+use container::{Map, Set};
 use io;
 use libc::{size_t, uintptr_t};
 use option::{None, Option, Some};
diff --git a/src/libcore/hash.rs b/src/libcore/hash.rs
index 7b3b49b7ee9..10abaf04912 100644
--- a/src/libcore/hash.rs
+++ b/src/libcore/hash.rs
@@ -20,7 +20,7 @@
  */
 
 use io;
-use io::{Writer, WriterUtil};
+use io::Writer;
 use to_bytes::IterBytes;
 use uint;
 use vec;
diff --git a/src/libcore/hashmap.rs b/src/libcore/hashmap.rs
index 472de88f692..93679e094d9 100644
--- a/src/libcore/hashmap.rs
+++ b/src/libcore/hashmap.rs
@@ -667,7 +667,7 @@ pub mod linear {
 
     #[test]
     mod test_map {
-        use container::{Container, Mutable, Map, Set};
+        use container::{Container, Map, Set};
         use option::{None, Some};
         use hashmap::linear::LinearMap;
         use hashmap::linear;
@@ -845,7 +845,7 @@ pub mod linear {
 #[test]
     mod test_set {
         use hashmap::linear;
-        use container::{Container, Mutable, Map, Set};
+        use container::{Container, Map, Set};
         use vec;
 
         #[test]
diff --git a/src/libcore/io.rs b/src/libcore/io.rs
index 9ad6693c8d0..aedbbd6e298 100644
--- a/src/libcore/io.rs
+++ b/src/libcore/io.rs
@@ -18,7 +18,7 @@ use result::Result;
 
 use int;
 use libc;
-use libc::{c_int, c_long, c_uint, c_void, size_t, ssize_t};
+use libc::{c_int, c_long, c_void, size_t, ssize_t};
 use libc::consts::os::posix88::*;
 use os;
 use cast;
diff --git a/src/libcore/num/float.rs b/src/libcore/num/float.rs
index 65a846c6db1..0aec9f08cb4 100644
--- a/src/libcore/num/float.rs
+++ b/src/libcore/num/float.rs
@@ -24,12 +24,13 @@ use f64;
 use num::NumCast;
 use num::strconv;
 use num;
-use option::{None, Option, Some};
+use option::Option;
 use to_str;
 use from_str;
 
 #[cfg(notest)] use cmp::{Eq, Ord};
 #[cfg(notest)] use ops;
+#[cfg(test)] use option::{Some, None};
 
 pub use f64::{add, sub, mul, div, rem, lt, le, eq, ne, ge, gt};
 pub use f64::logarithm;
diff --git a/src/libcore/num/num.rs b/src/libcore/num/num.rs
index 32d48aac0b3..0fe96c8b344 100644
--- a/src/libcore/num/num.rs
+++ b/src/libcore/num/num.rs
@@ -9,9 +9,9 @@
 // except according to those terms.
 
 //! An interface for numeric types
-use cmp::{Ord, Eq};
-use ops::{Add, Div, Modulo, Mul, Neg, Sub};
-use option::{None, Option, Some};
+use cmp::Ord;
+use ops::{Div, Mul, Neg};
+use option::Option;
 use kinds::Copy;
 
 pub mod strconv;
diff --git a/src/libcore/num/uint-template.rs b/src/libcore/num/uint-template.rs
index 41d90cc2482..410799f43ce 100644
--- a/src/libcore/num/uint-template.rs
+++ b/src/libcore/num/uint-template.rs
@@ -16,7 +16,7 @@ use from_str::FromStr;
 use num::{ToStrRadix, FromStrRadix};
 use num::strconv;
 use num;
-use option::{None, Option, Some};
+use option::Option;
 use prelude::*;
 
 #[cfg(notest)] use cmp::{Eq, Ord};
diff --git a/src/libcore/os.rs b/src/libcore/os.rs
index b2e3606eff9..fa10f39c90d 100644
--- a/src/libcore/os.rs
+++ b/src/libcore/os.rs
@@ -29,7 +29,7 @@
 use cast;
 use io;
 use libc;
-use libc::{c_char, c_void, c_int, c_uint, size_t, ssize_t};
+use libc::{c_char, c_void, c_int, size_t};
 use libc::{mode_t, pid_t, FILE};
 use option;
 use option::{Some, None};
@@ -397,7 +397,7 @@ pub fn pipe() -> Pipe {
         // first, as in rust_run_program.
         let mut fds = Pipe {in: 0 as c_int,
                     out: 0 as c_int };
-        let res = libc::pipe(&mut fds.in, 1024 as c_uint,
+        let res = libc::pipe(&mut fds.in, 1024 as ::libc::c_uint,
                              (libc::O_BINARY | libc::O_NOINHERIT) as c_int);
         fail_unless!((res == 0 as c_int));
         fail_unless!((fds.in != -1 as c_int && fds.in != 0 as c_int));
@@ -431,7 +431,7 @@ pub fn self_exe_path() -> Option<Path> {
                            KERN_PROC as c_int,
                            KERN_PROC_PATHNAME as c_int, -1 as c_int];
                 let mut sz = sz;
-                sysctl(vec::raw::to_ptr(mib), vec::len(mib) as c_uint,
+                sysctl(vec::raw::to_ptr(mib), vec::len(mib) as ::libc::c_uint,
                        buf as *mut c_void, &mut sz, ptr::null(),
                        0u as size_t) == (0 as c_int)
             }
@@ -670,7 +670,7 @@ pub fn list_dir(p: &Path) -> ~[~str] {
         #[cfg(target_os = "freebsd")]
         #[cfg(target_os = "macos")]
         unsafe fn get_list(p: &Path) -> ~[~str] {
-            use libc::{DIR, dirent_t};
+            use libc::{dirent_t};
             use libc::{opendir, readdir, closedir};
             extern mod rustrt {
                 unsafe fn rust_list_dir_val(ptr: *dirent_t)
@@ -1257,7 +1257,7 @@ pub mod consts {
 mod tests {
     use libc::{c_int, c_void, size_t};
     use libc;
-    use option::{None, Option, Some};
+    use option::Some;
     use option;
     use os::{as_c_charp, env, getcwd, getenv, make_absolute, real_args};
     use os::{remove_file, setenv};
diff --git a/src/libcore/pipes.rs b/src/libcore/pipes.rs
index 5e995d777c9..132ac11566d 100644
--- a/src/libcore/pipes.rs
+++ b/src/libcore/pipes.rs
@@ -958,9 +958,9 @@ pub mod rt {
 
 #[cfg(test)]
 pub mod test {
-    use either::{Either, Left, Right};
+    use either::Right;
     use comm::{Chan, Port, oneshot, recv_one, stream, Select2,
-               GenericPort, GenericChan, Peekable};
+               GenericChan, Peekable};
 
     #[test]
     pub fn test_select2() {
diff --git a/src/libcore/ptr.rs b/src/libcore/ptr.rs
index 69e7b401431..ecc60f61e18 100644
--- a/src/libcore/ptr.rs
+++ b/src/libcore/ptr.rs
@@ -13,7 +13,6 @@
 use cast;
 use libc;
 use libc::{c_void, size_t};
-use unstable::intrinsics::{memmove32,memmove64};
 use sys;
 
 #[cfg(test)] use vec;
@@ -116,12 +115,14 @@ pub fn is_not_null<T>(ptr: *const T) -> bool { !is_null(ptr) }
 #[inline(always)]
 #[cfg(target_word_size = "32")]
 pub unsafe fn copy_memory<T>(dst: *mut T, src: *const T, count: uint) {
+    use unstable::intrinsics::memmove32;
     let n = count * sys::size_of::<T>();
     memmove32(dst as *mut u8, src as *u8, n as u32);
 }
 #[inline(always)]
 #[cfg(target_word_size = "64")]
 pub unsafe fn copy_memory<T>(dst: *mut T, src: *const T, count: uint) {
+    use unstable::intrinsics::memmove64;
     let n = count * sys::size_of::<T>();
     memmove64(dst as *mut u8, src as *u8, n as u64);
 }
diff --git a/src/libcore/rand.rs b/src/libcore/rand.rs
index afa4ea66ca6..687d9030d45 100644
--- a/src/libcore/rand.rs
+++ b/src/libcore/rand.rs
@@ -574,7 +574,7 @@ pub fn random() -> uint {
 
 #[cfg(test)]
 pub mod tests {
-    use option::{None, Option, Some};
+    use option::{Option, Some};
     use rand;
 
     #[test]
diff --git a/src/libcore/reflect.rs b/src/libcore/reflect.rs
index a0f9fa7e08e..3e11febc5bf 100644
--- a/src/libcore/reflect.rs
+++ b/src/libcore/reflect.rs
@@ -14,7 +14,7 @@ Runtime type reflection
 
 */
 
-use intrinsic::{TyDesc, get_tydesc, visit_tydesc, TyVisitor};
+use intrinsic::{TyDesc, TyVisitor};
 use libc::c_void;
 use sys;
 use vec;
diff --git a/src/libcore/repr.rs b/src/libcore/repr.rs
index 5277ba32614..de3c81b5361 100644
--- a/src/libcore/repr.rs
+++ b/src/libcore/repr.rs
@@ -23,7 +23,7 @@ use libc::c_void;
 use managed;
 use ptr;
 use reflect;
-use reflect::{MovePtr, MovePtrAdaptor, align};
+use reflect::{MovePtr, align};
 use sys;
 use to_str::ToStr;
 use vec::UnboxedVecRepr;
diff --git a/src/libcore/rt/io/file.rs b/src/libcore/rt/io/file.rs
index 9f1f200d8e4..b7f3ed280a8 100644
--- a/src/libcore/rt/io/file.rs
+++ b/src/libcore/rt/io/file.rs
@@ -9,8 +9,6 @@
 // except according to those terms.
 
 use prelude::*;
-use super::super::sched::*;
-use super::super::rtio::*;
 use super::Stream;
 
 pub struct FileStream;
diff --git a/src/libcore/rt/thread_local_storage.rs b/src/libcore/rt/thread_local_storage.rs
index 5af8c79fd63..80635560380 100644
--- a/src/libcore/rt/thread_local_storage.rs
+++ b/src/libcore/rt/thread_local_storage.rs
@@ -8,9 +8,9 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-use libc::{c_void};
+use libc::c_void;
 #[cfg(unix)]
-use libc::{c_uint, c_ulong, c_int};
+use libc::c_int;
 #[cfg(unix)]
 use ptr::null;
 #[cfg(windows)]
@@ -36,13 +36,13 @@ pub unsafe fn get(key: Key) -> *mut c_void {
 
 #[cfg(target_os="macos")]
 #[allow(non_camel_case_types)] // foreign type
-type pthread_key_t = c_ulong;
+type pthread_key_t = ::libc::c_ulong;
 
 #[cfg(target_os="linux")]
 #[cfg(target_os="freebsd")]
 #[cfg(target_os="android")]
 #[allow(non_camel_case_types)] // foreign type
-type pthread_key_t = c_uint;
+type pthread_key_t = ::libc::c_uint;
 
 #[cfg(unix)]
 extern {
diff --git a/src/libcore/rt/uv/mod.rs b/src/libcore/rt/uv/mod.rs
index 5965a767763..2bd5023f22f 100644
--- a/src/libcore/rt/uv/mod.rs
+++ b/src/libcore/rt/uv/mod.rs
@@ -39,16 +39,13 @@ use str::raw::from_c_str;
 use to_str::ToStr;
 use vec;
 use ptr;
-use libc::{c_void, c_int, size_t, malloc, free, ssize_t};
-use cast::{transmute, transmute_mut_region};
+use libc::{c_void, c_int, size_t, malloc, free};
+use cast::transmute;
 use ptr::null;
 use super::uvll;
-use super::uvll::*;
 use unstable::finally::Finally;
 
 #[cfg(test)] use unstable::run_in_bare_thread;
-#[cfg(test)] use super::thread::Thread;
-#[cfg(test)] use cell::Cell;
 
 pub use self::file::{FsRequest, FsCallback};
 pub use self::net::{StreamWatcher, TcpWatcher};
diff --git a/src/libcore/rt/uv/net.rs b/src/libcore/rt/uv/net.rs
index 8f0e8c3edd5..697b4ad94c1 100644
--- a/src/libcore/rt/uv/net.rs
+++ b/src/libcore/rt/uv/net.rs
@@ -10,7 +10,7 @@
 
 use prelude::*;
 use libc::{size_t, ssize_t, c_int, c_void};
-use cast::{transmute, transmute_mut_region};
+use cast::transmute_mut_region;
 use super::super::uvll;
 use super::super::uvll::*;
 use super::{Loop, Watcher, Request, UvError, Buf, Callback, NativeHandle, NullCallback,
diff --git a/src/libcore/run.rs b/src/libcore/run.rs
index 088c10cbc1d..959ab23a461 100644
--- a/src/libcore/run.rs
+++ b/src/libcore/run.rs
@@ -458,7 +458,7 @@ pub fn waitpid(pid: pid_t) -> int {
 
 #[cfg(test)]
 mod tests {
-    use option::{None, Some};
+    use option::None;
     use os;
     use run::{readclose, writeclose};
     use run;
diff --git a/src/libcore/str.rs b/src/libcore/str.rs
index 96d85a1f7fe..f73202e16ed 100644
--- a/src/libcore/str.rs
+++ b/src/libcore/str.rs
@@ -21,7 +21,7 @@ use at_vec;
 use cast;
 use char;
 use clone::Clone;
-use cmp::{Equiv, TotalEq, TotalOrd, Ordering, Less, Equal, Greater};
+use cmp::{TotalOrd, Ordering, Less, Equal, Greater};
 use libc;
 use option::{None, Option, Some};
 use ptr;
@@ -31,7 +31,7 @@ use uint;
 use vec;
 use to_str::ToStr;
 
-#[cfg(notest)] use cmp::{Eq, Ord};
+#[cfg(notest)] use cmp::{Eq, Ord, Equiv, TotalEq};
 
 /*
 Section: Creating a string
diff --git a/src/libcore/task/mod.rs b/src/libcore/task/mod.rs
index 3e980daaa08..0cd78d4b847 100644
--- a/src/libcore/task/mod.rs
+++ b/src/libcore/task/mod.rs
@@ -36,13 +36,15 @@
 use cell::Cell;
 use cmp::Eq;
 use result::Result;
-use comm::{stream, Chan, GenericChan, GenericPort, Port, SharedChan};
+use comm::{stream, Chan, GenericChan, GenericPort, Port};
 use prelude::*;
 use result;
 use task::rt::{task_id, sched_id, rust_task};
 use util;
 use util::replace;
 
+#[cfg(test)] use comm::SharedChan;
+
 mod local_data_priv;
 pub mod local_data;
 pub mod rt;
diff --git a/src/libcore/task/spawn.rs b/src/libcore/task/spawn.rs
index cc075ed2a92..fcd5ac7cdbb 100644
--- a/src/libcore/task/spawn.rs
+++ b/src/libcore/task/spawn.rs
@@ -75,7 +75,7 @@
 use cast;
 use cell::Cell;
 use container::Map;
-use comm::{Chan, GenericChan, GenericPort, Port, stream};
+use comm::{Chan, GenericChan};
 use prelude::*;
 use unstable;
 use ptr;
@@ -86,10 +86,12 @@ use task::rt;
 use task::{Failure, ManualThreads, PlatformThread, SchedOpts, SingleThreaded};
 use task::{Success, TaskOpts, TaskResult, ThreadPerCore, ThreadPerTask};
 use task::{ExistingScheduler, SchedulerHandle};
-use task::{default_task_opts, unkillable};
+use task::unkillable;
 use uint;
 use util;
 
+#[cfg(test)] use task::default_task_opts;
+
 macro_rules! move_it (
     { $x:expr } => ( unsafe { let y = *ptr::addr_of(&($x)); y } )
 )
diff --git a/src/libcore/unstable.rs b/src/libcore/unstable.rs
index b5cf4766af0..6da3dfc2628 100644
--- a/src/libcore/unstable.rs
+++ b/src/libcore/unstable.rs
@@ -15,7 +15,7 @@ use libc;
 use comm::{GenericChan, GenericPort};
 use prelude::*;
 use task;
-use task::{TaskBuilder, atomically};
+use task::atomically;
 
 #[path = "unstable/at_exit.rs"]
 pub mod at_exit;
diff --git a/src/libcore/unstable/at_exit.rs b/src/libcore/unstable/at_exit.rs
index 99ba5030f83..f85f6201107 100644
--- a/src/libcore/unstable/at_exit.rs
+++ b/src/libcore/unstable/at_exit.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 use cast;
-use libc::{c_void, size_t};
+use libc::size_t;
 use rand::RngUtil;
 use rand;
 use sys;
diff --git a/src/libcore/unstable/exchange_alloc.rs b/src/libcore/unstable/exchange_alloc.rs
index 3b4d86ba86b..7863d5d241c 100644
--- a/src/libcore/unstable/exchange_alloc.rs
+++ b/src/libcore/unstable/exchange_alloc.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 use sys::{TypeDesc, size_of};
-use libc::{c_void, size_t, uintptr_t};
+use libc::{c_void, size_t};
 use c_malloc = libc::malloc;
 use c_free = libc::free;
 use managed::raw::{BoxHeaderRepr, BoxRepr};
diff --git a/src/libcore/unstable/global.rs b/src/libcore/unstable/global.rs
index f160a350e0d..794ac0c85af 100644
--- a/src/libcore/unstable/global.rs
+++ b/src/libcore/unstable/global.rs
@@ -28,7 +28,7 @@ avoid hitting the mutex.
 use cast::{transmute, reinterpret_cast};
 use clone::Clone;
 use kinds::Owned;
-use libc::{c_void, uintptr_t};
+use libc::{c_void};
 use option::{Option, Some, None};
 use ops::Drop;
 use unstable::{Exclusive, exclusive};
diff --git a/src/libcore/unstable/weak_task.rs b/src/libcore/unstable/weak_task.rs
index 1947f294cb3..6de324f3101 100644
--- a/src/libcore/unstable/weak_task.rs
+++ b/src/libcore/unstable/weak_task.rs
@@ -27,7 +27,9 @@ use unstable::at_exit::at_exit;
 use unstable::finally::Finally;
 use unstable::global::global_data_clone_create;
 use task::rt::{task_id, get_task_id};
-use task::{Task, task, spawn};
+use task::task;
+
+#[cfg(test)] use task::spawn;
 
 type ShutdownMsg = ();
 
diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs
index 174960560df..6b312c48d15 100644
--- a/src/libcore/vec.rs
+++ b/src/libcore/vec.rs
@@ -14,7 +14,7 @@
 
 use container::{Container, Mutable};
 use cast;
-use cmp::{Eq, Equiv, Ord, TotalEq, TotalOrd, Ordering, Less, Equal, Greater};
+use cmp::{Eq, Ord, TotalEq, TotalOrd, Ordering, Less, Equal, Greater};
 use clone::Clone;
 use iter::BaseIter;
 use iter;
@@ -28,6 +28,8 @@ use sys;
 use uint;
 use vec;
 
+#[cfg(notest)] use cmp::Equiv;
+
 pub mod rustrt {
     use libc;
     use sys;
diff --git a/src/libfuzzer/fuzzer.rc b/src/libfuzzer/fuzzer.rc
index cb9e4a4d7b8..1c85536d195 100644
--- a/src/libfuzzer/fuzzer.rc
+++ b/src/libfuzzer/fuzzer.rc
@@ -33,7 +33,7 @@ extern mod syntax(vers = "0.6");
 use core::*;
 use core::io::WriterUtil;
 
-use syntax::{ast, ast_util, fold, visit, codemap};
+use syntax::{ast, fold, visit, codemap};
 use syntax::parse;
 use syntax::print::pprust;
 use syntax::diagnostic;
diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs
index d0c318d16a2..807ea7d492d 100644
--- a/src/librustc/back/link.rs
+++ b/src/librustc/back/link.rs
@@ -14,7 +14,7 @@ use back::rpath;
 use driver::session::Session;
 use driver::session;
 use lib::llvm::llvm;
-use lib::llvm::{ModuleRef, mk_pass_manager, mk_target_data, True, False};
+use lib::llvm::ModuleRef;
 use lib;
 use metadata::common::LinkMeta;
 use metadata::{encoder, csearch, cstore};
@@ -25,7 +25,7 @@ use util::ppaux;
 use core::char;
 use core::hash::Streaming;
 use core::hash;
-use core::io::{Writer, WriterUtil};
+use core::io::WriterUtil;
 use core::libc::{c_int, c_uint, c_char};
 use core::os::consts::{macos, freebsd, linux, android, win32};
 use core::os;
@@ -86,7 +86,7 @@ pub mod jit {
     use back::link::llvm_err;
     use driver::session::Session;
     use lib::llvm::llvm;
-    use lib::llvm::{ModuleRef, PassManagerRef, mk_target_data};
+    use lib::llvm::{ModuleRef, PassManagerRef};
     use metadata::cstore;
 
     use core::cast;
@@ -171,11 +171,11 @@ pub mod write {
     use driver::session::Session;
     use driver::session;
     use lib::llvm::llvm;
-    use lib::llvm::{False, True, ModuleRef, mk_pass_manager, mk_target_data};
+    use lib::llvm::{False, ModuleRef, mk_pass_manager, mk_target_data};
     use lib;
 
     use core::prelude::*;
-    use core::libc::{c_char, c_int, c_uint};
+    use core::libc::{c_int, c_uint};
     use core::path::Path;
     use core::str;
     use core::run;
diff --git a/src/librustc/back/upcall.rs b/src/librustc/back/upcall.rs
index d9c4b27298e..4cdd279e2fc 100644
--- a/src/librustc/back/upcall.rs
+++ b/src/librustc/back/upcall.rs
@@ -11,11 +11,8 @@
 
 use driver::session;
 use middle::trans::base;
-use middle::trans::common::{T_fn, T_i1, T_i8, T_i32,
-                               T_int, T_nil,
-                               T_opaque_vec, T_ptr, T_unique_ptr,
-                               T_size_t, T_void, T_vec2};
-use lib::llvm::{TypeNames, ModuleRef, ValueRef, TypeRef};
+use middle::trans::common::{T_fn, T_i8, T_i32, T_int, T_ptr, T_void};
+use lib::llvm::{ModuleRef, ValueRef, TypeRef};
 
 pub struct Upcalls {
     trace: ValueRef,
diff --git a/src/librustc/driver/driver.rs b/src/librustc/driver/driver.rs
index 097aad72f4e..3aa0959317a 100644
--- a/src/librustc/driver/driver.rs
+++ b/src/librustc/driver/driver.rs
@@ -13,7 +13,7 @@ use core::prelude::*;
 use back::link;
 use back::{arm, x86, x86_64, mips};
 use driver::session::{Aggressive};
-use driver::session::{Session, Session_, OptLevel, No, Less, Default};
+use driver::session::{Session, Session_, No, Less, Default};
 use driver::session;
 use front;
 use lib::llvm::llvm;
diff --git a/src/librustc/lib/llvm.rs b/src/librustc/lib/llvm.rs
index e97252c5341..fa79217619d 100644
--- a/src/librustc/lib/llvm.rs
+++ b/src/librustc/lib/llvm.rs
@@ -11,7 +11,7 @@
 use core::prelude::*;
 
 use core::hashmap::linear::LinearMap;
-use core::libc::{c_char, c_int, c_uint, c_longlong, c_ulonglong};
+use core::libc::c_uint;
 use core::option;
 use core::ptr;
 use core::str;
@@ -223,7 +223,7 @@ pub enum SectionIterator_opaque {}
 pub type SectionIteratorRef = *SectionIterator_opaque;
 
 pub mod llvm {
-    use super::{AsmDialect, AtomicBinOp, AtomicOrdering, BasicBlockRef};
+    use super::{AtomicBinOp, AtomicOrdering, BasicBlockRef};
     use super::{Bool, BuilderRef, ContextRef, MemoryBufferRef, ModuleRef};
     use super::{ObjectFileRef, Opcode, PassManagerRef, PassManagerBuilderRef};
     use super::{SectionIteratorRef, TargetDataRef, TypeKind, TypeRef, UseRef};
diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs
index ce37054cba2..3a6e567cdbc 100644
--- a/src/librustc/metadata/creader.rs
+++ b/src/librustc/metadata/creader.rs
@@ -26,7 +26,7 @@ use syntax::codemap::{span, dummy_sp};
 use syntax::diagnostic::span_handler;
 use syntax::parse::token::ident_interner;
 use syntax::visit;
-use syntax::{ast, ast_util};
+use syntax::ast;
 
 // Traverses an AST, reading all the information about use'd crates and extern
 // libraries necessary for later resolving, typechecking, linking, etc.
diff --git a/src/librustc/metadata/cstore.rs b/src/librustc/metadata/cstore.rs
index d4360a7d491..51cc964e460 100644
--- a/src/librustc/metadata/cstore.rs
+++ b/src/librustc/metadata/cstore.rs
@@ -20,7 +20,7 @@ use metadata::decoder;
 use core::hashmap::linear::LinearMap;
 use core::vec;
 use std;
-use syntax::{ast, attr};
+use syntax::ast;
 use syntax::parse::token::ident_interner;
 
 // A map from external crate numbers (as decoded from some crate file) to
diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs
index 010ba4d2522..29161a6db64 100644
--- a/src/librustc/metadata/decoder.rs
+++ b/src/librustc/metadata/decoder.rs
@@ -22,7 +22,7 @@ use metadata::decoder;
 use metadata::tydecode::{parse_ty_data, parse_def_id, parse_bounds_data};
 use middle::{ty, resolve};
 
-use core::hash::{Hash, HashUtil};
+use core::hash::HashUtil;
 use core::int;
 use core::io::WriterUtil;
 use core::io;
diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs
index 778b915190b..8c90ec3f7f3 100644
--- a/src/librustc/metadata/encoder.rs
+++ b/src/librustc/metadata/encoder.rs
@@ -24,8 +24,8 @@ use middle;
 use util::ppaux::ty_to_str;
 
 use core::flate;
-use core::hash::{Hash, HashUtil};
-use core::hashmap::linear::{LinearMap, LinearSet};
+use core::hash::HashUtil;
+use core::hashmap::linear::LinearMap;
 use core::int;
 use core::io::{Writer, WriterUtil};
 use core::io;
diff --git a/src/librustc/metadata/tydecode.rs b/src/librustc/metadata/tydecode.rs
index e37b3a963c4..823d8e58d11 100644
--- a/src/librustc/metadata/tydecode.rs
+++ b/src/librustc/metadata/tydecode.rs
@@ -23,7 +23,7 @@ use core::uint;
 use core::vec;
 use syntax::ast;
 use syntax::ast::*;
-use syntax::codemap::{respan, dummy_sp};
+use syntax::codemap::dummy_sp;
 use syntax::opt_vec;
 
 // Compact string representation for ty::t values. API ty_str &
diff --git a/src/librustc/metadata/tyencode.rs b/src/librustc/metadata/tyencode.rs
index 6734abb7e80..e54036e66c0 100644
--- a/src/librustc/metadata/tyencode.rs
+++ b/src/librustc/metadata/tyencode.rs
@@ -13,7 +13,7 @@
 
 use core::prelude::*;
 
-use middle::ty::{Vid, param_ty};
+use middle::ty::param_ty;
 use middle::ty;
 
 use core::hashmap::linear::LinearMap;
@@ -24,7 +24,6 @@ use core::vec;
 use syntax::ast::*;
 use syntax::diagnostic::span_handler;
 use syntax::print::pprust::*;
-use middle::ty::Vid;
 
 pub struct ctxt {
     diag: @span_handler,
diff --git a/src/librustc/middle/astencode.rs b/src/librustc/middle/astencode.rs
index c2692e9fa10..c5018bbe13f 100644
--- a/src/librustc/middle/astencode.rs
+++ b/src/librustc/middle/astencode.rs
@@ -20,7 +20,7 @@ use metadata::tydecode;
 use metadata::tydecode::{DefIdSource, NominalType, TypeWithId, TypeParameter};
 use metadata::tyencode;
 use middle::freevars::freevar_entry;
-use middle::typeck::{method_origin, method_map_entry, vtable_res};
+use middle::typeck::{method_origin, method_map_entry};
 use middle::{ty, typeck, moves};
 use middle;
 use util::ppaux::ty_to_str;
diff --git a/src/librustc/middle/borrowck/check_loans.rs b/src/librustc/middle/borrowck/check_loans.rs
index 045a3b2b677..ac74dc25fd0 100644
--- a/src/librustc/middle/borrowck/check_loans.rs
+++ b/src/librustc/middle/borrowck/check_loans.rs
@@ -24,7 +24,7 @@ use middle::borrowck::{Loan, bckerr, BorrowckCtxt, inherent_mutability};
 use middle::borrowck::{ReqMaps, root_map_key, save_and_restore_managed};
 use middle::borrowck::{MoveError, MoveOk, MoveFromIllegalCmt};
 use middle::borrowck::{MoveWhileBorrowed};
-use middle::mem_categorization::{cat_arg, cat_binding, cat_comp, cat_deref};
+use middle::mem_categorization::{cat_arg, cat_comp, cat_deref};
 use middle::mem_categorization::{cat_local, cat_rvalue, cat_self};
 use middle::mem_categorization::{cat_special, cmt, gc_ptr, loan_path, lp_arg};
 use middle::mem_categorization::{lp_comp, lp_deref, lp_local};
@@ -33,7 +33,7 @@ use util::ppaux::ty_to_str;
 
 use core::hashmap::linear::LinearSet;
 use core::uint;
-use syntax::ast::{m_const, m_imm, m_mutbl};
+use syntax::ast::m_mutbl;
 use syntax::ast;
 use syntax::ast_util;
 use syntax::codemap::span;
diff --git a/src/librustc/middle/borrowck/gather_loans.rs b/src/librustc/middle/borrowck/gather_loans.rs
index d18aa1c12df..925659984d4 100644
--- a/src/librustc/middle/borrowck/gather_loans.rs
+++ b/src/librustc/middle/borrowck/gather_loans.rs
@@ -24,8 +24,7 @@ use middle::borrowck::{LoanKind, TotalFreeze, PartialFreeze,
                        TotalTake, PartialTake, Immobile};
 use middle::borrowck::ReqMaps;
 use middle::borrowck::loan;
-use middle::mem_categorization::{cat_binding, cat_discr, cmt, comp_variant};
-use middle::mem_categorization::{mem_categorization_ctxt};
+use middle::mem_categorization::{cmt, mem_categorization_ctxt};
 use middle::pat_util;
 use middle::ty::{ty_region};
 use middle::ty;
@@ -166,7 +165,7 @@ fn req_loans_in_expr(ex: @ast::expr,
         visit::visit_expr(ex, self, vt);
       }
 
-      ast::expr_method_call(rcvr, _, _, ref args, _) => {
+      ast::expr_method_call(_, _, _, ref args, _) => {
         let arg_tys = ty::ty_fn_args(ty::node_id_to_type(self.tcx(),
                                                          ex.callee_id));
         let scope_r = ty::re_scope(ex.id);
diff --git a/src/librustc/middle/borrowck/loan.rs b/src/librustc/middle/borrowck/loan.rs
index c0551436ede..146e0c712a3 100644
--- a/src/librustc/middle/borrowck/loan.rs
+++ b/src/librustc/middle/borrowck/loan.rs
@@ -55,8 +55,8 @@ use middle::mem_categorization::{gc_ptr, region_ptr};
 use middle::ty;
 use util::common::indenter;
 
-use core::result::{Err, Ok, Result};
-use syntax::ast::{m_const, m_imm, m_mutbl};
+use core::result::{Err, Ok};
+use syntax::ast::m_imm;
 use syntax::ast;
 
 pub fn loan(bccx: @BorrowckCtxt,
diff --git a/src/librustc/middle/borrowck/mod.rs b/src/librustc/middle/borrowck/mod.rs
index cdec64b7b4c..3f4f7469832 100644
--- a/src/librustc/middle/borrowck/mod.rs
+++ b/src/librustc/middle/borrowck/mod.rs
@@ -231,14 +231,14 @@ use middle::region;
 use middle::ty;
 use middle::typeck;
 use middle::moves;
-use util::common::{indenter, stmt_set};
+use util::common::stmt_set;
 use util::ppaux::note_and_explain_region;
 
 use core::hashmap::linear::{LinearSet, LinearMap};
 use core::io;
 use core::result::{Result, Ok, Err};
 use core::to_bytes;
-use syntax::ast::{mutability, m_mutbl, m_imm, m_const};
+use syntax::ast::{mutability, m_imm};
 use syntax::ast;
 use syntax::codemap::span;
 
diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs
index 3f3ffe1598a..9fb95fd489e 100644
--- a/src/librustc/middle/check_match.rs
+++ b/src/librustc/middle/check_match.rs
@@ -11,7 +11,7 @@
 use core::prelude::*;
 
 use middle::const_eval::{compare_const_vals, lookup_const_by_id};
-use middle::const_eval::{eval_const_expr, const_val, const_int, const_bool};
+use middle::const_eval::{eval_const_expr, const_val, const_bool};
 use middle::pat_util::*;
 use middle::ty::*;
 use middle::ty;
@@ -23,7 +23,7 @@ use core::uint;
 use core::vec;
 use std::sort;
 use syntax::ast::*;
-use syntax::ast_util::{variant_def_ids, unguarded_pat, walk_pat};
+use syntax::ast_util::{unguarded_pat, walk_pat};
 use syntax::codemap::{span, dummy_sp, spanned};
 use syntax::visit;
 
diff --git a/src/librustc/middle/kind.rs b/src/librustc/middle/kind.rs
index ca301182e6f..a25e2f49e09 100644
--- a/src/librustc/middle/kind.rs
+++ b/src/librustc/middle/kind.rs
@@ -20,7 +20,7 @@ use util::ppaux::{ty_to_str, tys_to_str};
 
 use syntax::ast::*;
 use syntax::attr::attrs_contains_name;
-use syntax::codemap::{span, spanned};
+use syntax::codemap::span;
 use syntax::print::pprust::expr_to_str;
 use syntax::{visit, ast_util};
 
diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs
index f2534bad588..566a52c3894 100644
--- a/src/librustc/middle/lang_items.rs
+++ b/src/librustc/middle/lang_items.rs
@@ -23,13 +23,13 @@
 use core::prelude::*;
 
 use driver::session::Session;
-use metadata::csearch::{each_lang_item, get_item_attrs};
-use metadata::cstore::{iter_crate_data};
-use syntax::ast::{crate, def_fn, def_id, def_ty, lit_str, meta_item};
+use metadata::csearch::each_lang_item;
+use metadata::cstore::iter_crate_data;
+use syntax::ast::{crate, def_id, lit_str, meta_item};
 use syntax::ast::{meta_list, meta_name_value, meta_word};
-use syntax::ast_util::{local_def};
+use syntax::ast_util::local_def;
 use syntax::visit::{default_simple_visitor, mk_simple_visitor, SimpleVisitor};
-use syntax::visit::{visit_crate, visit_item};
+use syntax::visit::visit_crate;
 
 use core::hashmap::linear::LinearMap;
 use core::ptr;
diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs
index c6d9b5068dc..398b17a65b3 100644
--- a/src/librustc/middle/lint.rs
+++ b/src/librustc/middle/lint.rs
@@ -35,8 +35,8 @@ use std::smallintmap::SmallIntMap;
 use syntax::attr;
 use syntax::codemap::span;
 use syntax::codemap;
-use syntax::print::pprust::{expr_to_str, mode_to_str, pat_to_str};
-use syntax::{ast, ast_util, visit};
+use syntax::print::pprust::mode_to_str;
+use syntax::{ast, visit};
 
 /**
  * A 'lint' check is a kind of miscellaneous constraint that a user _might_
diff --git a/src/librustc/middle/moves.rs b/src/librustc/middle/moves.rs
index a8749138549..980fb5319f8 100644
--- a/src/librustc/middle/moves.rs
+++ b/src/librustc/middle/moves.rs
@@ -211,8 +211,7 @@ use core::prelude::*;
 use middle::pat_util::{pat_bindings};
 use middle::freevars;
 use middle::ty;
-use middle::typeck::{method_map, method_map_entry};
-use middle::typeck::check::{DerefArgs, DoDerefArgs, DontDerefArgs};
+use middle::typeck::method_map;
 use util::ppaux;
 use util::common::indenter;
 
@@ -221,8 +220,7 @@ use core::vec;
 use syntax::ast::*;
 use syntax::ast_util;
 use syntax::visit;
-use syntax::visit::{fn_kind, fk_item_fn, fk_method, fk_dtor,
-                    fk_anon, fk_fn_block, vt};
+use syntax::visit::vt;
 use syntax::print::pprust;
 use syntax::codemap::span;
 
diff --git a/src/librustc/middle/pat_util.rs b/src/librustc/middle/pat_util.rs
index 6bf75b50cb4..0e47dabcce9 100644
--- a/src/librustc/middle/pat_util.rs
+++ b/src/librustc/middle/pat_util.rs
@@ -15,7 +15,7 @@ use middle::resolve;
 use core::hashmap::linear::LinearMap;
 use syntax::ast::*;
 use syntax::ast_util::{path_to_ident, walk_pat};
-use syntax::codemap::{span, respan};
+use syntax::codemap::span;
 
 pub type PatIdMap = LinearMap<ident, node_id>;
 
diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs
index 10d3de6b131..8371a6785d1 100644
--- a/src/librustc/middle/resolve.rs
+++ b/src/librustc/middle/resolve.rs
@@ -13,27 +13,27 @@ use core::prelude::*;
 use driver::session;
 use driver::session::Session;
 use metadata::csearch::{each_path, get_method_names_if_trait};
-use metadata::csearch::{get_static_methods_if_impl, get_struct_fields};
-use metadata::csearch::{get_type_name_if_impl};
+use metadata::csearch::get_static_methods_if_impl;
+use metadata::csearch::get_type_name_if_impl;
 use metadata::cstore::find_extern_mod_stmt_cnum;
 use metadata::decoder::{def_like, dl_def, dl_field, dl_impl};
 use middle::lang_items::LanguageItems;
 use middle::lint::{deny, allow, forbid, level, unused_imports, warn};
 use middle::lint::{get_lint_level, get_lint_settings_level};
-use middle::pat_util::{pat_bindings};
+use middle::pat_util::pat_bindings;
 
 use core::str;
 use core::vec;
 use syntax::ast::{RegionTyParamBound, TraitTyParamBound, _mod, add, arm};
 use syntax::ast::{binding_mode, bitand, bitor, bitxor, blk};
 use syntax::ast::{bind_infer, bind_by_ref, bind_by_copy};
-use syntax::ast::{crate, crate_num, decl_item, def, def_arg, def_binding};
+use syntax::ast::{crate, decl_item, def, def_arg, def_binding};
 use syntax::ast::{def_const, def_foreign_mod, def_fn, def_id, def_label};
 use syntax::ast::{def_local, def_mod, def_prim_ty, def_region, def_self};
 use syntax::ast::{def_self_ty, def_static_method, def_struct, def_ty};
 use syntax::ast::{def_ty_param, def_typaram_binder};
 use syntax::ast::{def_upvar, def_use, def_variant, expr, expr_assign_op};
-use syntax::ast::{expr_binary, expr_break, expr_cast, expr_field};
+use syntax::ast::{expr_binary, expr_break, expr_field};
 use syntax::ast::{expr_fn_block, expr_index, expr_method_call, expr_path};
 use syntax::ast::{def_prim_ty, def_region, def_self, def_ty, def_ty_param};
 use syntax::ast::{def_upvar, def_use, def_variant, div, eq};
@@ -41,24 +41,24 @@ use syntax::ast::{expr, expr_again, expr_assign_op};
 use syntax::ast::{expr_index, expr_loop};
 use syntax::ast::{expr_path, expr_struct, expr_unary, fn_decl};
 use syntax::ast::{foreign_item, foreign_item_const, foreign_item_fn, ge};
-use syntax::ast::{Generics};
-use syntax::ast::{gt, ident, impure_fn, inherited, item, item_struct};
+use syntax::ast::Generics;
+use syntax::ast::{gt, ident, inherited, item, item_struct};
 use syntax::ast::{item_const, item_enum, item_fn, item_foreign_mod};
 use syntax::ast::{item_impl, item_mac, item_mod, item_trait, item_ty, le};
-use syntax::ast::{local, local_crate, lt, method, mode, module_ns, mul};
+use syntax::ast::{local, local_crate, lt, method, mode, mul};
 use syntax::ast::{named_field, ne, neg, node_id, pat, pat_enum, pat_ident};
-use syntax::ast::{path, pat_box, pat_lit, pat_range, pat_struct};
-use syntax::ast::{pat_tup, pat_uniq, pat_wild, prim_ty, private, provided};
+use syntax::ast::{path, pat_lit, pat_range, pat_struct};
+use syntax::ast::{prim_ty, private, provided};
 use syntax::ast::{public, required, rem, self_ty_, shl, shr, stmt_decl};
 use syntax::ast::{struct_dtor, struct_field, struct_variant_kind};
 use syntax::ast::{sty_static, subtract, trait_ref, tuple_variant_kind, Ty};
 use syntax::ast::{ty_bool, ty_char, ty_f, ty_f32, ty_f64, ty_float, ty_i};
 use syntax::ast::{ty_i16, ty_i32, ty_i64, ty_i8, ty_int, TyParam, ty_path};
 use syntax::ast::{ty_str, ty_u, ty_u16, ty_u32, ty_u64, ty_u8, ty_uint};
-use syntax::ast::{type_value_ns, unnamed_field};
+use syntax::ast::unnamed_field;
 use syntax::ast::{variant, view_item, view_item_extern_mod};
 use syntax::ast::{view_item_use, view_path_glob, view_path_list};
-use syntax::ast::{view_path_simple, visibility, anonymous, named, not};
+use syntax::ast::{view_path_simple, anonymous, named, not};
 use syntax::ast::{unsafe_fn};
 use syntax::ast_util::{def_id_of_def, local_def};
 use syntax::ast_util::{path_to_ident, walk_pat, trait_method_to_ty_method};
@@ -67,15 +67,16 @@ use syntax::ast_util::{variant_visibility_to_privacy, visibility_to_privacy};
 use syntax::attr::{attr_metas, contains_name, attrs_contains_name};
 use syntax::parse::token::ident_interner;
 use syntax::parse::token::special_idents;
-use syntax::print::pprust::{pat_to_str, path_to_str};
+use syntax::print::pprust::path_to_str;
 use syntax::codemap::{span, dummy_sp};
-use syntax::visit::{default_visitor, fk_method, mk_vt, Visitor, visit_block};
-use syntax::visit::{visit_crate, visit_expr, visit_expr_opt, visit_fn};
-use syntax::visit::{visit_foreign_item, visit_item, visit_method_helper};
+use syntax::visit::{default_visitor, mk_vt, Visitor, visit_block};
+use syntax::visit::{visit_crate, visit_expr, visit_expr_opt};
+use syntax::visit::{visit_foreign_item, visit_item};
 use syntax::visit::{visit_mod, visit_ty, vt};
 use syntax::opt_vec::OptVec;
 
-use core::str::{connect, each_split_str};
+use core::option::Some;
+use core::str::each_split_str;
 use core::hashmap::linear::{LinearMap, LinearSet};
 
 // Definition mapping
@@ -1425,7 +1426,6 @@ pub impl Resolver {
 
                     // Build up the import directives.
                     let module_ = self.get_module_from_parent(parent);
-                    let state = @mut ImportState();
                     match view_path.node {
                         view_path_simple(binding, full_path, _, _) => {
                             let source_ident = *full_path.idents.last();
@@ -1435,19 +1435,17 @@ pub impl Resolver {
                                                         module_,
                                                         module_path,
                                                         subclass,
-                                                        view_path.span,
-                                                        state);
+                                                        view_path.span);
                         }
                         view_path_list(_, ref source_idents, _) => {
-                            for (*source_idents).each |source_ident| {
+                            for source_idents.each |source_ident| {
                                 let name = source_ident.node.name;
                                 let subclass = @SingleImport(name, name);
                                 self.build_import_directive(privacy,
                                                             module_,
                                                             copy module_path,
                                                             subclass,
-                                                            view_path.span,
-                                                            state);
+                                                            source_ident.span);
                             }
                         }
                         view_path_glob(_, _) => {
@@ -1455,8 +1453,7 @@ pub impl Resolver {
                                                         module_,
                                                         module_path,
                                                         @GlobImport,
-                                                        view_path.span,
-                                                        state);
+                                                        view_path.span);
                         }
                     }
                 }
@@ -1842,8 +1839,7 @@ pub impl Resolver {
                               module_: @mut Module,
                               +module_path: ~[ident],
                               subclass: @ImportDirectiveSubclass,
-                              span: span,
-                              state: @mut ImportState) {
+                              span: span) {
         let directive = @ImportDirective(privacy, module_path,
                                          subclass, span);
         module_.imports.push(directive);
@@ -1867,6 +1863,7 @@ pub impl Resolver {
                     }
                     None => {
                         debug!("(building import directive) creating new");
+                        let state = @mut ImportState();
                         let resolution = @mut ImportResolution(privacy,
                                                                span,
                                                                state);
diff --git a/src/librustc/middle/trans/adt.rs b/src/librustc/middle/trans/adt.rs
index 8ebf20ff68c..1564b20e4d2 100644
--- a/src/librustc/middle/trans/adt.rs
+++ b/src/librustc/middle/trans/adt.rs
@@ -54,7 +54,7 @@ use core::libc::c_ulonglong;
 use core::option::{Option, Some, None};
 use core::vec;
 
-use lib::llvm::{ValueRef, TypeRef, True, False};
+use lib::llvm::{ValueRef, TypeRef, True};
 use middle::trans::_match;
 use middle::trans::build::*;
 use middle::trans::common::*;
diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs
index 9e83552a600..4a28f014a9d 100644
--- a/src/librustc/middle/trans/base.rs
+++ b/src/librustc/middle/trans/base.rs
@@ -34,7 +34,7 @@ use lib::llvm::{True, False};
 use lib::llvm::{llvm, mk_target_data, mk_type_names};
 use lib;
 use metadata::common::LinkMeta;
-use metadata::{csearch, cstore, decoder, encoder};
+use metadata::{csearch, cstore, encoder};
 use middle::astencode;
 use middle::borrowck::RootInfo;
 use middle::resolve;
@@ -63,7 +63,7 @@ use middle::trans::type_of;
 use middle::trans::type_of::*;
 use middle::ty;
 use util::common::indenter;
-use util::ppaux::{ty_to_str, ty_to_short_str};
+use util::ppaux::ty_to_str;
 use util::ppaux;
 
 use core::hash;
@@ -72,14 +72,14 @@ use core::int;
 use core::io;
 use core::libc::{c_uint, c_ulonglong};
 use core::uint;
-use std::{time, list};
+use std::time;
 use syntax::ast::ident;
-use syntax::ast_map::{path, path_elt_to_str, path_mod, path_name};
-use syntax::ast_util::{def_id_of_def, local_def, path_to_ident};
+use syntax::ast_map::{path, path_elt_to_str, path_name};
+use syntax::ast_util::{local_def, path_to_ident};
 use syntax::attr;
 use syntax::codemap::span;
 use syntax::parse::token::special_idents;
-use syntax::print::pprust::{expr_to_str, stmt_to_str, path_to_str};
+use syntax::print::pprust::stmt_to_str;
 use syntax::visit;
 use syntax::{ast, ast_util, codemap, ast_map};
 
diff --git a/src/librustc/middle/trans/build.rs b/src/librustc/middle/trans/build.rs
index e8b85c54d48..ed6cbc20209 100644
--- a/src/librustc/middle/trans/build.rs
+++ b/src/librustc/middle/trans/build.rs
@@ -9,8 +9,8 @@
 // except according to those terms.
 
 use lib::llvm::llvm;
-use lib::llvm::{CallConv, TypeKind, AtomicBinOp, AtomicOrdering, AsmDialect};
-use lib::llvm::{Opcode, IntPredicate, RealPredicate, True, False};
+use lib::llvm::{CallConv, AtomicBinOp, AtomicOrdering, AsmDialect};
+use lib::llvm::{Opcode, IntPredicate, RealPredicate, False};
 use lib::llvm::{ValueRef, TypeRef, BasicBlockRef, BuilderRef, ModuleRef};
 use lib;
 use middle::trans::common::*;
@@ -19,7 +19,7 @@ use syntax::codemap::span;
 use core::prelude::*;
 use core::cast;
 use core::hashmap::linear::LinearMap;
-use core::libc::{c_uint, c_int, c_ulonglong, c_char};
+use core::libc::{c_uint, c_ulonglong, c_char};
 use core::libc;
 use core::option::Some;
 use core::ptr;
diff --git a/src/librustc/middle/trans/cabi_mips.rs b/src/librustc/middle/trans/cabi_mips.rs
index 4f5e9edb126..1e05cf258c7 100644
--- a/src/librustc/middle/trans/cabi_mips.rs
+++ b/src/librustc/middle/trans/cabi_mips.rs
@@ -11,9 +11,9 @@
 use core::{ptr, vec, uint};
 use core::option::*;
 use core::libc::c_uint;
-use lib::llvm::{llvm, TypeRef, ValueRef, Integer, Pointer, Float, Double};
+use lib::llvm::{llvm, TypeRef, Integer, Pointer, Float, Double};
 use lib::llvm::{Struct, Array, Attribute};
-use lib::llvm::{StructRetAttribute, ByValAttribute};
+use lib::llvm::{StructRetAttribute};
 use middle::trans::common::*;
 use middle::trans::cabi::*;
 
diff --git a/src/librustc/middle/trans/cabi_x86_64.rs b/src/librustc/middle/trans/cabi_x86_64.rs
index e9769f14b72..896ebd16257 100644
--- a/src/librustc/middle/trans/cabi_x86_64.rs
+++ b/src/librustc/middle/trans/cabi_x86_64.rs
@@ -11,7 +11,7 @@
 // The classification code for the x86_64 ABI is taken from the clay language
 // https://github.com/jckarter/clay/blob/master/compiler/src/externals.cpp
 
-use lib::llvm::{llvm, TypeRef, ValueRef, Integer, Pointer, Float, Double};
+use lib::llvm::{llvm, TypeRef, Integer, Pointer, Float, Double};
 use lib::llvm::{Struct, Array, Attribute};
 use lib::llvm::{StructRetAttribute, ByValAttribute};
 use lib::llvm::struct_tys;
diff --git a/src/librustc/middle/trans/callee.rs b/src/librustc/middle/trans/callee.rs
index 8a22e90b847..aef1fb762de 100644
--- a/src/librustc/middle/trans/callee.rs
+++ b/src/librustc/middle/trans/callee.rs
@@ -21,7 +21,7 @@ use core::prelude::*;
 use back::abi;
 use driver::session;
 use lib;
-use lib::llvm::{ValueRef, TypeRef};
+use lib::llvm::ValueRef;
 use lib::llvm::llvm;
 use metadata::csearch;
 use middle::trans::base;
diff --git a/src/librustc/middle/trans/closure.rs b/src/librustc/middle/trans/closure.rs
index 74d338bbbb5..0ea5007ca91 100644
--- a/src/librustc/middle/trans/closure.rs
+++ b/src/librustc/middle/trans/closure.rs
@@ -12,13 +12,13 @@ use core::prelude::*;
 
 use back::abi;
 use back::link::{mangle_internal_name_by_path_and_seq};
-use lib::llvm::{llvm, ValueRef, TypeRef};
+use lib::llvm::{llvm, ValueRef};
 use middle::moves;
 use middle::trans::base::*;
 use middle::trans::build::*;
 use middle::trans::callee;
 use middle::trans::common::*;
-use middle::trans::datum::{Datum, INIT, ByRef, ByValue, ZeroMem};
+use middle::trans::datum::{Datum, INIT, ByRef, ZeroMem};
 use middle::trans::expr;
 use middle::trans::glue;
 use middle::trans::machine;
@@ -27,7 +27,7 @@ use middle::ty;
 use util::ppaux::ty_to_str;
 
 use syntax::ast;
-use syntax::ast_map::{path, path_mod, path_name};
+use syntax::ast_map::path_name;
 use syntax::ast_util;
 use syntax::parse::token::special_idents;
 
diff --git a/src/librustc/middle/trans/common.rs b/src/librustc/middle/trans/common.rs
index 541a950fb55..b8c0b7f41d5 100644
--- a/src/librustc/middle/trans/common.rs
+++ b/src/librustc/middle/trans/common.rs
@@ -16,7 +16,7 @@
 
 use core::prelude::*;
 
-use back::{link, abi, upcall};
+use back::{abi, upcall};
 use driver::session;
 use driver::session::Session;
 use lib::llvm::{ModuleRef, ValueRef, TypeRef, BasicBlockRef, BuilderRef};
diff --git a/src/librustc/middle/trans/consts.rs b/src/librustc/middle/trans/consts.rs
index 04b641ed303..a495350a73f 100644
--- a/src/librustc/middle/trans/consts.rs
+++ b/src/librustc/middle/trans/consts.rs
@@ -28,7 +28,7 @@ use middle::ty;
 use util::ppaux::{expr_repr, ty_to_str};
 
 use core::libc::c_uint;
-use syntax::{ast, ast_util, codemap, ast_map};
+use syntax::{ast, ast_util, ast_map};
 use util::ppaux::ty_to_str;
 
 pub fn const_lit(cx: @CrateContext, e: @ast::expr, lit: ast::lit)
diff --git a/src/librustc/middle/trans/debuginfo.rs b/src/librustc/middle/trans/debuginfo.rs
index 45884c9c3b4..452a021ab51 100644
--- a/src/librustc/middle/trans/debuginfo.rs
+++ b/src/librustc/middle/trans/debuginfo.rs
@@ -24,7 +24,7 @@ use core::hashmap::linear::LinearMap;
 use core::libc;
 use core::option;
 use core::sys;
-use syntax::codemap::{span, CharPos};
+use syntax::codemap::span;
 use syntax::parse::token::ident_interner;
 use syntax::{ast, codemap, ast_util, ast_map};
 
diff --git a/src/librustc/middle/trans/expr.rs b/src/librustc/middle/trans/expr.rs
index 53a872696db..6825c3896e4 100644
--- a/src/librustc/middle/trans/expr.rs
+++ b/src/librustc/middle/trans/expr.rs
@@ -123,7 +123,7 @@ use core::prelude::*;
 
 use back::abi;
 use lib;
-use lib::llvm::{ValueRef, TypeRef, llvm, True};
+use lib::llvm::{ValueRef, TypeRef, llvm};
 use metadata::csearch;
 use middle::borrowck::root_map_key;
 use middle::trans::_match;
@@ -132,7 +132,7 @@ use middle::trans::asm;
 use middle::trans::base;
 use middle::trans::base::*;
 use middle::trans::build::*;
-use middle::trans::callee::{AutorefArg, DoAutorefArg, DontAutorefArg};
+use middle::trans::callee::DoAutorefArg;
 use middle::trans::callee;
 use middle::trans::closure;
 use middle::trans::common::*;
diff --git a/src/librustc/middle/trans/foreign.rs b/src/librustc/middle/trans/foreign.rs
index 92d231a96aa..038f5b79327 100644
--- a/src/librustc/middle/trans/foreign.rs
+++ b/src/librustc/middle/trans/foreign.rs
@@ -16,7 +16,7 @@ use driver::session::arch_x86_64;
 use driver::session::arch_arm;
 use driver::session::arch_mips;
 use lib::llvm::{SequentiallyConsistent, Acquire, Release, Xchg};
-use lib::llvm::{llvm, TypeRef, ValueRef, Integer, Pointer, Float, Double};
+use lib::llvm::{TypeRef, ValueRef};
 use lib;
 use middle::trans::base::*;
 use middle::trans::cabi;
@@ -27,7 +27,7 @@ use middle::trans::build::*;
 use middle::trans::callee::*;
 use middle::trans::common::*;
 use middle::trans::datum::*;
-use middle::trans::expr::{Dest, Ignore};
+use middle::trans::expr::Ignore;
 use middle::trans::machine::llsize_of;
 use middle::trans::glue;
 use middle::trans::machine;
diff --git a/src/librustc/middle/trans/inline.rs b/src/librustc/middle/trans/inline.rs
index 906519543d2..cb20e5bbd32 100644
--- a/src/librustc/middle/trans/inline.rs
+++ b/src/librustc/middle/trans/inline.rs
@@ -14,14 +14,14 @@ use metadata::csearch;
 use middle::astencode;
 use middle::trans::base::{get_insn_ctxt};
 use middle::trans::base::{impl_owned_self, impl_self, no_self};
-use middle::trans::base::{trans_item, get_item_val, self_arg, trans_fn};
+use middle::trans::base::{trans_item, get_item_val, trans_fn};
 use middle::trans::common::*;
 use middle::ty;
 use util::ppaux::ty_to_str;
 
 use core::vec;
 use syntax::ast;
-use syntax::ast_map::{path, path_mod, path_name};
+use syntax::ast_map::path_name;
 use syntax::ast_util::local_def;
 
 // `translate` will be true if this function is allowed to translate the
diff --git a/src/librustc/middle/trans/machine.rs b/src/librustc/middle/trans/machine.rs
index 047968ed569..1b9f7bae0e9 100644
--- a/src/librustc/middle/trans/machine.rs
+++ b/src/librustc/middle/trans/machine.rs
@@ -12,8 +12,8 @@
 
 use core::prelude::*;
 
-use lib::llvm::{ModuleRef, ValueRef, TypeRef, BasicBlockRef, BuilderRef};
-use lib::llvm::{True, False, Bool};
+use lib::llvm::{ValueRef, TypeRef};
+use lib::llvm::False;
 use lib::llvm::llvm;
 use middle::trans::common::*;
 use middle::trans::type_of;
diff --git a/src/librustc/middle/trans/meth.rs b/src/librustc/middle/trans/meth.rs
index c37702e8d2b..ae2d7bbee50 100644
--- a/src/librustc/middle/trans/meth.rs
+++ b/src/librustc/middle/trans/meth.rs
@@ -10,10 +10,10 @@
 
 use core::prelude::*;
 
-use back::{link, abi};
+use back::abi;
 use driver;
 use lib::llvm::llvm;
-use lib::llvm::{ValueRef, TypeRef};
+use lib::llvm::ValueRef;
 use lib;
 use metadata::csearch;
 use middle::trans::base::*;
@@ -31,9 +31,9 @@ use middle::ty;
 use middle::ty::arg;
 use middle::typeck;
 use util::common::indenter;
-use util::ppaux::{ty_to_str, tys_to_str};
+use util::ppaux::ty_to_str;
 
-use syntax::ast_map::{path, path_mod, path_name, node_id_to_str};
+use syntax::ast_map::{path, path_mod, path_name};
 use syntax::ast_util;
 use syntax::{ast, ast_map};
 
diff --git a/src/librustc/middle/trans/monomorphize.rs b/src/librustc/middle/trans/monomorphize.rs
index ed07b7e9f7f..29760eb0bb5 100644
--- a/src/librustc/middle/trans/monomorphize.rs
+++ b/src/librustc/middle/trans/monomorphize.rs
@@ -16,8 +16,8 @@ use lib::llvm::ValueRef;
 use middle::trans::base::{get_insn_ctxt};
 use middle::trans::base::{set_inline_hint_if_appr, set_inline_hint};
 use middle::trans::base::{trans_enum_variant, trans_struct_dtor};
-use middle::trans::base::{trans_fn, impl_self, decl_internal_cdecl_fn};
-use middle::trans::base::{trans_item, get_item_val, no_self, self_arg};
+use middle::trans::base::{trans_fn, decl_internal_cdecl_fn};
+use middle::trans::base::{get_item_val, no_self};
 use middle::trans::base;
 use middle::trans::common::*;
 use middle::trans::datum;
@@ -35,7 +35,7 @@ use util::ppaux::ty_to_str;
 use core::vec;
 use syntax::ast;
 use syntax::ast_map;
-use syntax::ast_map::{path, path_mod, path_name};
+use syntax::ast_map::path_name;
 use syntax::ast_util::local_def;
 use syntax::opt_vec;
 use syntax::parse::token::special_idents;
diff --git a/src/librustc/middle/trans/reachable.rs b/src/librustc/middle/trans/reachable.rs
index e1e6f557c83..f1c625e13aa 100644
--- a/src/librustc/middle/trans/reachable.rs
+++ b/src/librustc/middle/trans/reachable.rs
@@ -28,7 +28,7 @@ use syntax::ast_util::def_id_of_def;
 use syntax::attr;
 use syntax::codemap;
 use syntax::print::pprust::expr_to_str;
-use syntax::{visit, ast_util, ast_map};
+use syntax::{visit, ast_map};
 
 pub type map = @LinearSet<node_id>;
 
diff --git a/src/librustc/middle/trans/shape.rs b/src/librustc/middle/trans/shape.rs
index 9f10d4976a2..08337c918b0 100644
--- a/src/librustc/middle/trans/shape.rs
+++ b/src/librustc/middle/trans/shape.rs
@@ -13,7 +13,7 @@
 
 
 use lib::llvm::llvm;
-use lib::llvm::{True, False, ModuleRef, TypeRef, ValueRef};
+use lib::llvm::{True, ModuleRef, ValueRef};
 use middle::trans::common::*;
 use middle::trans;
 
diff --git a/src/librustc/middle/trans/type_use.rs b/src/librustc/middle/trans/type_use.rs
index 689983425a8..a4495192b18 100644
--- a/src/librustc/middle/trans/type_use.rs
+++ b/src/librustc/middle/trans/type_use.rs
@@ -35,7 +35,7 @@ use middle::trans::inline;
 use middle::ty;
 use middle::typeck;
 
-use core::option::{Some, None, Option};
+use core::option::{Some, None};
 use core::uint;
 use core::vec;
 use std::list::{List, Cons, Nil};
diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs
index d7f71bae85b..5e46fb512d4 100644
--- a/src/librustc/middle/ty.rs
+++ b/src/librustc/middle/ty.rs
@@ -23,7 +23,7 @@ use middle::ty;
 use middle::typeck;
 use middle;
 use util::ppaux::{note_and_explain_region, bound_region_to_str};
-use util::ppaux::{region_to_str, explain_region, vstore_to_str};
+use util::ppaux::{region_to_str, vstore_to_str};
 use util::ppaux::{trait_store_to_str, ty_to_str, tys_to_str};
 use util::common::{indenter};
 
diff --git a/src/librustc/middle/typeck/astconv.rs b/src/librustc/middle/typeck/astconv.rs
index b167f0c0d75..eb106f3b91f 100644
--- a/src/librustc/middle/typeck/astconv.rs
+++ b/src/librustc/middle/typeck/astconv.rs
@@ -55,12 +55,12 @@
 use core::prelude::*;
 
 use middle::const_eval;
-use middle::ty::{arg, field, substs};
+use middle::ty::{arg, substs};
 use middle::ty::{ty_param_substs_and_ty};
 use middle::ty;
-use middle::typeck::rscope::{in_binding_rscope};
-use middle::typeck::rscope::{region_scope, type_rscope, RegionError};
-use middle::typeck::rscope::{RegionParamNames};
+use middle::typeck::rscope::in_binding_rscope;
+use middle::typeck::rscope::{region_scope, RegionError};
+use middle::typeck::rscope::RegionParamNames;
 
 use core::result;
 use core::vec;
diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs
index a52a8d2f43d..18d84b96787 100644
--- a/src/librustc/middle/typeck/check/mod.rs
+++ b/src/librustc/middle/typeck/check/mod.rs
@@ -81,11 +81,11 @@ use core::prelude::*;
 use middle::const_eval;
 use middle::pat_util::pat_id_map;
 use middle::pat_util;
-use middle::ty::{TyVid, Vid, FnSig, VariantInfo_, field};
+use middle::ty::{FnSig, VariantInfo_};
 use middle::ty::{ty_param_bounds_and_ty, ty_param_substs_and_ty};
-use middle::ty::{re_bound, br_cap_avoid, substs, arg, param_ty};
+use middle::ty::{substs, arg, param_ty};
 use middle::ty;
-use middle::typeck::astconv::{AstConv, ast_path_to_ty};
+use middle::typeck::astconv::AstConv;
 use middle::typeck::astconv::{ast_region_to_region, ast_ty_to_ty};
 use middle::typeck::astconv;
 use middle::typeck::check::_match::pat_ctxt;
@@ -97,16 +97,15 @@ use middle::typeck::check::method::{TransformTypeNormally};
 use middle::typeck::check::regionmanip::replace_bound_regions_in_fn_sig;
 use middle::typeck::check::vtable::{LocationInfo, VtableContext};
 use middle::typeck::CrateCtxt;
-use middle::typeck::infer::{resolve_type, force_tvar, mk_eqty};
+use middle::typeck::infer::{resolve_type, force_tvar};
 use middle::typeck::infer;
-use middle::typeck::rscope::{binding_rscope, bound_self_region};
+use middle::typeck::rscope::bound_self_region;
 use middle::typeck::rscope::{RegionError, RegionParameterization};
-use middle::typeck::rscope::{in_binding_rscope, region_scope, type_rscope};
+use middle::typeck::rscope::region_scope;
 use middle::typeck::rscope;
-use middle::typeck::{isr_alist, lookup_def_ccx, method_map_entry};
-use middle::typeck::{method_map, vtable_map};
-use middle::typeck::{method_origin, method_self, method_trait, no_params};
-use middle::typeck::{require_same_types};
+use middle::typeck::{isr_alist, lookup_def_ccx};
+use middle::typeck::no_params;
+use middle::typeck::{require_same_types, method_map, vtable_map};
 use util::common::{block_query, indenter, loop_query};
 use util::ppaux::{bound_region_to_str, expr_repr, pat_repr};
 use util::ppaux;
@@ -119,12 +118,12 @@ use core::result;
 use core::str;
 use core::vec;
 use std::list::Nil;
-use syntax::ast::{provided, required, ty_i};
+use syntax::ast::{provided, required};
 use syntax::ast;
 use syntax::ast_map;
-use syntax::ast_util::{Private, Public, is_local, local_def};
+use syntax::ast_util::local_def;
 use syntax::ast_util;
-use syntax::codemap::{span, spanned, respan};
+use syntax::codemap::span;
 use syntax::codemap;
 use syntax::opt_vec::OptVec;
 use syntax::opt_vec;
diff --git a/src/librustc/middle/typeck/check/regionck.rs b/src/librustc/middle/typeck/check/regionck.rs
index 02102110d9b..d161df22976 100644
--- a/src/librustc/middle/typeck/check/regionck.rs
+++ b/src/librustc/middle/typeck/check/regionck.rs
@@ -30,13 +30,13 @@ this point a bit better.
 use core::prelude::*;
 
 use middle::freevars::get_freevars;
-use middle::pat_util::{pat_bindings, pat_is_binding};
+use middle::pat_util::pat_bindings;
 use middle::ty::{encl_region, re_scope};
 use middle::ty;
 use middle::typeck::check::FnCtxt;
 use middle::typeck::check::lookup_def;
-use middle::typeck::infer::{fres, resolve_and_force_all_but_regions};
-use middle::typeck::infer::{resolve_type};
+use middle::typeck::infer::resolve_and_force_all_but_regions;
+use middle::typeck::infer::resolve_type;
 use util::ppaux::{note_and_explain_region, ty_to_str};
 
 use core::result;
diff --git a/src/librustc/middle/typeck/check/vtable.rs b/src/librustc/middle/typeck/check/vtable.rs
index 8146213d3be..d485ca447fc 100644
--- a/src/librustc/middle/typeck/check/vtable.rs
+++ b/src/librustc/middle/typeck/check/vtable.rs
@@ -15,16 +15,16 @@ use middle::ty::{param_ty, substs};
 use middle::ty;
 use middle::typeck::check::{FnCtxt, impl_self_ty};
 use middle::typeck::check::{structurally_resolved_type};
-use middle::typeck::infer::{fixup_err_to_str, InferCtxt};
+use middle::typeck::infer::fixup_err_to_str;
 use middle::typeck::infer::{resolve_and_force_all_but_regions, resolve_type};
 use middle::typeck::infer;
 use middle::typeck::{CrateCtxt, vtable_origin, vtable_param, vtable_res};
-use middle::typeck::{vtable_static};
+use middle::typeck::vtable_static;
 use util::common::indenter;
 use util::ppaux::tys_to_str;
 use util::ppaux;
 
-use core::result::{Result, Ok, Err};
+use core::result::{Ok, Err};
 use core::result;
 use core::uint;
 use core::vec;
diff --git a/src/librustc/middle/typeck/check/writeback.rs b/src/librustc/middle/typeck/check/writeback.rs
index 9ba98a4d27f..31301db2a0a 100644
--- a/src/librustc/middle/typeck/check/writeback.rs
+++ b/src/librustc/middle/typeck/check/writeback.rs
@@ -19,15 +19,15 @@ use middle::ty::arg;
 use middle::ty;
 use middle::typeck::check::{FnCtxt, SelfInfo};
 use middle::typeck::infer::{force_all, resolve_all, resolve_region};
-use middle::typeck::infer::{resolve_type};
+use middle::typeck::infer::resolve_type;
 use middle::typeck::infer;
-use middle::typeck::{method_map_entry};
 use middle::typeck::{vtable_origin, vtable_static, vtable_param};
-use middle::typeck::{vtable_param, write_substs_to_tcx};
-use middle::typeck::{write_ty_to_tcx};
+use middle::typeck::method_map_entry;
+use middle::typeck::write_substs_to_tcx;
+use middle::typeck::write_ty_to_tcx;
 use util::ppaux;
 
-use core::result::{Result, Ok, Err};
+use core::result::{Ok, Err};
 use core::vec;
 use syntax::ast;
 use syntax::codemap::span;
diff --git a/src/librustc/middle/typeck/coherence.rs b/src/librustc/middle/typeck/coherence.rs
index 7089ac4dd12..498ad2c5bff 100644
--- a/src/librustc/middle/typeck/coherence.rs
+++ b/src/librustc/middle/typeck/coherence.rs
@@ -17,7 +17,7 @@
 use core::prelude::*;
 
 use driver;
-use metadata::csearch::{ProvidedTraitMethodInfo, each_path, get_impl_traits};
+use metadata::csearch::{each_path, get_impl_traits};
 use metadata::csearch::{get_impls_for_mod};
 use metadata::csearch;
 use metadata::cstore::{CStore, iter_crate_data};
@@ -35,14 +35,11 @@ use middle::ty::{type_is_ty_var};
 use middle::ty;
 use middle::typeck::CrateCtxt;
 use middle::typeck::infer::combine::Combine;
-use middle::typeck::infer::{InferCtxt, can_mk_subty};
+use middle::typeck::infer::InferCtxt;
 use middle::typeck::infer::{new_infer_ctxt, resolve_ivar};
 use middle::typeck::infer::{resolve_nested_tvar, resolve_type};
 use syntax::ast::{crate, def_id, def_mod, def_ty};
-use syntax::ast::{item, item_struct, item_const, item_enum, item_fn};
-use syntax::ast::{item_foreign_mod, item_impl, item_mac, item_mod};
-use syntax::ast::{item_trait, item_ty, local_crate, method, node_id};
-use syntax::ast::{trait_ref};
+use syntax::ast::{item, item_impl, item_mod, local_crate, method, trait_ref};
 use syntax::ast;
 use syntax::ast_map::node_item;
 use syntax::ast_map;
diff --git a/src/librustc/middle/typeck/collect.rs b/src/librustc/middle/typeck/collect.rs
index 0f84975c89c..f2d10d53427 100644
--- a/src/librustc/middle/typeck/collect.rs
+++ b/src/librustc/middle/typeck/collect.rs
@@ -33,7 +33,7 @@ are represented as `ty_param()` instances.
 use core::prelude::*;
 
 use metadata::csearch;
-use middle::ty::{InstantiatedTraitRef, arg};
+use middle::ty::InstantiatedTraitRef;
 use middle::ty::{substs, ty_param_bounds_and_ty, ty_param_substs_and_ty};
 use middle::ty;
 use middle::typeck::astconv::{AstConv, ty_of_arg};
diff --git a/src/librustc/middle/typeck/infer/coercion.rs b/src/librustc/middle/typeck/infer/coercion.rs
index 91c987acc6a..e2b135a6a64 100644
--- a/src/librustc/middle/typeck/infer/coercion.rs
+++ b/src/librustc/middle/typeck/infer/coercion.rs
@@ -66,9 +66,9 @@ we may want to adjust precisely when coercions occur.
 
 use core::prelude::*;
 
-use middle::ty::{TyVar, AutoPtr, AutoBorrowVec, AutoBorrowFn};
-use middle::ty::{AutoAdjustment, AutoDerefRef, AutoRef};
-use middle::ty::{vstore_slice, vstore_box, vstore_uniq, vstore_fixed};
+use middle::ty::{AutoPtr, AutoBorrowVec, AutoBorrowFn};
+use middle::ty::{AutoDerefRef, AutoRef};
+use middle::ty::{vstore_slice, vstore_box, vstore_uniq};
 use middle::ty::{mt};
 use middle::ty;
 use middle::typeck::infer::{CoerceResult, resolve_type};
@@ -76,9 +76,9 @@ use middle::typeck::infer::combine::CombineFields;
 use middle::typeck::infer::sub::Sub;
 use middle::typeck::infer::to_str::InferStr;
 use middle::typeck::infer::resolve::try_resolve_tvar_shallow;
-use util::common::{indent, indenter};
+use util::common::indenter;
 
-use syntax::ast::{m_const, m_imm, m_mutbl};
+use syntax::ast::m_imm;
 use syntax::ast;
 
 // Note: Coerce is not actually a combiner, in that it does not
diff --git a/src/librustc/middle/typeck/infer/combine.rs b/src/librustc/middle/typeck/infer/combine.rs
index 2c053e2bbe0..f90bc8314a4 100644
--- a/src/librustc/middle/typeck/infer/combine.rs
+++ b/src/librustc/middle/typeck/infer/combine.rs
@@ -68,7 +68,7 @@ use util::common::indent;
 
 use core::result::{iter_vec2, map_vec2};
 use core::vec;
-use syntax::ast::{Onceness, purity, ret_style};
+use syntax::ast::{Onceness, purity};
 use syntax::ast;
 use syntax::opt_vec;
 use syntax::codemap::span;
diff --git a/src/librustc/middle/typeck/infer/glb.rs b/src/librustc/middle/typeck/infer/glb.rs
index 55bfa9888c0..2ed73061743 100644
--- a/src/librustc/middle/typeck/infer/glb.rs
+++ b/src/librustc/middle/typeck/infer/glb.rs
@@ -21,8 +21,7 @@ use middle::typeck::infer::{cres, InferCtxt};
 use middle::typeck::isr_alist;
 use syntax::ast;
 use syntax::ast::{Many, Once, extern_fn, impure_fn, m_const, m_imm, m_mutbl};
-use syntax::ast::{noreturn, pure_fn, ret_style, return_val, unsafe_fn};
-use syntax::ast::{Onceness, purity};
+use syntax::ast::{pure_fn, unsafe_fn, Onceness, purity};
 use syntax::codemap::span;
 use util::common::{indent, indenter};
 use util::ppaux::mt_to_str;
diff --git a/src/librustc/middle/typeck/infer/lub.rs b/src/librustc/middle/typeck/infer/lub.rs
index 59cc15dfc02..8821926be35 100644
--- a/src/librustc/middle/typeck/infer/lub.rs
+++ b/src/librustc/middle/typeck/infer/lub.rs
@@ -24,8 +24,8 @@ use util::ppaux::mt_to_str;
 
 use std::list;
 use syntax::ast;
-use syntax::ast::{Many, Once, extern_fn, m_const, impure_fn, noreturn};
-use syntax::ast::{pure_fn, ret_style, return_val, unsafe_fn};
+use syntax::ast::{Many, Once, extern_fn, m_const, impure_fn};
+use syntax::ast::{pure_fn, unsafe_fn};
 use syntax::ast::{Onceness, purity};
 use syntax::codemap::span;
 
diff --git a/src/librustc/middle/typeck/infer/mod.rs b/src/librustc/middle/typeck/infer/mod.rs
index c376fef696c..ca59ee0328a 100644
--- a/src/librustc/middle/typeck/infer/mod.rs
+++ b/src/librustc/middle/typeck/infer/mod.rs
@@ -264,16 +264,16 @@ use middle::typeck::infer::sub::Sub;
 use middle::typeck::infer::to_str::InferStr;
 use middle::typeck::infer::unify::{ValsAndBindings, Root};
 use middle::typeck::isr_alist;
-use util::common::{indent, indenter};
-use util::ppaux::{bound_region_to_str, ty_to_str, mt_to_str};
+use util::common::indent;
+use util::ppaux::{bound_region_to_str, ty_to_str};
 
 use core::cmp::Eq;
-use core::result::{Result, Ok, Err, map_vec, map_vec2, iter_vec2};
+use core::result::{Result, Ok, Err};
 use core::result;
 use core::vec;
 use std::list::Nil;
 use std::smallintmap::SmallIntMap;
-use syntax::ast::{m_const, m_imm, m_mutbl};
+use syntax::ast::{m_imm, m_mutbl};
 use syntax::ast;
 use syntax::codemap;
 use syntax::codemap::span;
diff --git a/src/librustc/middle/typeck/infer/region_inference.rs b/src/librustc/middle/typeck/infer/region_inference.rs
index 24d763eaee1..19c06804ea0 100644
--- a/src/librustc/middle/typeck/infer/region_inference.rs
+++ b/src/librustc/middle/typeck/infer/region_inference.rs
@@ -549,7 +549,7 @@ use util::ppaux::note_and_explain_region;
 
 use core::cell::{Cell, empty_cell};
 use core::hashmap::linear::{LinearMap, LinearSet};
-use core::result::{Err, Ok, Result};
+use core::result::{Err, Ok};
 use core::to_bytes;
 use core::uint;
 use core::vec;
diff --git a/src/librustc/middle/typeck/infer/sub.rs b/src/librustc/middle/typeck/infer/sub.rs
index 561fabd9d70..1fcd89ea73f 100644
--- a/src/librustc/middle/typeck/infer/sub.rs
+++ b/src/librustc/middle/typeck/infer/sub.rs
@@ -25,7 +25,7 @@ use util::ppaux::bound_region_to_str;
 use std::list::Nil;
 use std::list;
 use syntax::ast;
-use syntax::ast::{Onceness, m_const, purity, ret_style};
+use syntax::ast::{Onceness, m_const, purity};
 use syntax::codemap::span;
 
 
diff --git a/src/librustc/middle/typeck/infer/to_str.rs b/src/librustc/middle/typeck/infer/to_str.rs
index 7a28e7d1607..559d29e66ef 100644
--- a/src/librustc/middle/typeck/infer/to_str.rs
+++ b/src/librustc/middle/typeck/infer/to_str.rs
@@ -11,14 +11,14 @@
 use core::prelude::*;
 
 use middle::ty::{FnSig, Vid};
-use middle::ty::{IntVarValue, IntType, UintType};
+use middle::ty::IntVarValue;
 use middle::ty;
 use middle::typeck::infer::{Bound, Bounds};
 use middle::typeck::infer::InferCtxt;
 use middle::typeck::infer::unify::{Redirect, Root, VarValue};
 use util::ppaux::{mt_to_str, ty_to_str};
 
-use syntax::{ast, ast_util};
+use syntax::ast;
 
 use core::uint;
 use core::str;
diff --git a/src/librustc/middle/typeck/infer/unify.rs b/src/librustc/middle/typeck/infer/unify.rs
index f31568a50a3..3c5470dc22f 100644
--- a/src/librustc/middle/typeck/infer/unify.rs
+++ b/src/librustc/middle/typeck/infer/unify.rs
@@ -13,7 +13,7 @@ use std::smallintmap::SmallIntMap;
 
 use middle::ty::{Vid, expected_found, IntVarValue};
 use middle::ty;
-use middle::typeck::infer::{Bound, Bounds, cres, uok, ures};
+use middle::typeck::infer::{Bounds, uok, ures};
 use middle::typeck::infer::InferCtxt;
 use middle::typeck::infer::to_str::InferStr;
 use syntax::ast;
diff --git a/src/librustc/middle/typeck/mod.rs b/src/librustc/middle/typeck/mod.rs
index 77022b80feb..ea577c758af 100644
--- a/src/librustc/middle/typeck/mod.rs
+++ b/src/librustc/middle/typeck/mod.rs
@@ -58,11 +58,11 @@ use util::ppaux;
 use core::hashmap::linear::LinearMap;
 use core::result;
 use core::vec;
-use std::list::{List, Nil, Cons};
+use std::list::List;
 use std::list;
-use syntax::codemap::{span, spanned, respan};
+use syntax::codemap::span;
 use syntax::print::pprust::*;
-use syntax::{ast, ast_util, ast_map};
+use syntax::{ast, ast_map};
 
 #[path = "check/mod.rs"]
 pub mod check;
diff --git a/src/librustc/util/ppaux.rs b/src/librustc/util/ppaux.rs
index bf2a35dbf7c..48ed754a4a6 100644
--- a/src/librustc/util/ppaux.rs
+++ b/src/librustc/util/ppaux.rs
@@ -11,7 +11,7 @@
 use core::prelude::*;
 
 use middle::ty;
-use middle::ty::{arg, canon_mode};
+use middle::ty::canon_mode;
 use middle::ty::{bound_region, br_anon, br_named, br_self, br_cap_avoid,
                  br_fresh};
 use middle::ty::{ctxt, field, method};
@@ -27,7 +27,7 @@ use middle::ty::{ty_uint, ty_unboxed_vec, ty_infer};
 use metadata::encoder;
 use syntax::codemap::span;
 use syntax::print::pprust;
-use syntax::print::pprust::{path_to_str, mode_to_str};
+use syntax::print::pprust::mode_to_str;
 use syntax::{ast, ast_util};
 use syntax::ast_map;
 
diff --git a/src/librustdoc/astsrv.rs b/src/librustdoc/astsrv.rs
index 5bf7e18552f..d3108f690c1 100644
--- a/src/librustdoc/astsrv.rs
+++ b/src/librustdoc/astsrv.rs
@@ -22,7 +22,7 @@ use core::prelude::*;
 use parse;
 
 use core::cell::Cell;
-use core::comm::{stream, Chan, SharedChan, Port};
+use core::comm::{stream, SharedChan, Port};
 use rustc::driver::driver;
 use rustc::driver::session::Session;
 use rustc::driver::session::{basic_options, options};
diff --git a/src/librustdoc/page_pass.rs b/src/librustdoc/page_pass.rs
index 49db98e3200..e1996409a76 100644
--- a/src/librustdoc/page_pass.rs
+++ b/src/librustdoc/page_pass.rs
@@ -19,7 +19,7 @@ use core::prelude::*;
 
 use astsrv;
 use config;
-use doc::{ItemUtils, PageUtils};
+use doc::ItemUtils;
 use doc;
 use fold::Fold;
 use fold;
@@ -29,6 +29,8 @@ use util::NominalOp;
 use core::comm::*;
 use syntax::ast;
 
+#[cfg(test)] use doc::PageUtils;
+
 pub fn mk_pass(output_style: config::OutputStyle) -> Pass {
     Pass {
         name: ~"page",
diff --git a/src/librusti/rusti.rc b/src/librusti/rusti.rc
index ddde66157bb..98c4c0409d4 100644
--- a/src/librusti/rusti.rc
+++ b/src/librusti/rusti.rc
@@ -29,9 +29,9 @@ extern mod rustc(vers = "0.6");
 extern mod syntax(vers = "0.6");
 
 use core::*;
-use core::io::{ReaderUtil, WriterUtil};
+use core::io::WriterUtil;
 use rustc::driver::{driver, session};
-use syntax::{ast, ast_util, codemap, diagnostic, fold, parse, print, visit};
+use syntax::{ast, diagnostic};
 use syntax::ast_util::*;
 use syntax::parse::token;
 use syntax::print::{pp, pprust};
diff --git a/src/librustpkg/rustpkg.rc b/src/librustpkg/rustpkg.rc
index 50414bf2d1c..caab57dd23a 100644
--- a/src/librustpkg/rustpkg.rc
+++ b/src/librustpkg/rustpkg.rc
@@ -29,14 +29,13 @@ extern mod syntax(vers = "0.6");
 use core::*;
 use core::container::Map;
 use core::hashmap::linear::LinearMap;
-use core::io::{ReaderUtil, WriterUtil};
+use core::io::WriterUtil;
 use rustc::driver::{driver, session};
 use rustc::metadata::filesearch;
 use std::net::url;
 use std::{json, semver, getopts};
 use syntax::codemap::spanned;
-use syntax::{ast, attr, codemap, diagnostic, parse, visit};
-
+use syntax::{ast, diagnostic};
 use util::Package;
 
 mod usage;
diff --git a/src/librustpkg/util.rs b/src/librustpkg/util.rs
index 58a286a1854..f9dc13f1989 100644
--- a/src/librustpkg/util.rs
+++ b/src/librustpkg/util.rs
@@ -9,7 +9,7 @@
 // except according to those terms.
 
 use core::*;
-use core::hash::{Hash, HashUtil, Streaming};
+use core::hash::Streaming;
 use core::hashmap::linear::LinearMap;
 use rustc::driver::{driver, session};
 use rustc::metadata::filesearch;
@@ -17,10 +17,10 @@ use std::getopts::groups::getopts;
 use std::semver;
 use std::{json, term, sort, getopts};
 use syntax::ast_util::*;
-use syntax::codemap::{span, dummy_sp, spanned};
+use syntax::codemap::{dummy_sp, spanned};
 use syntax::ext::base::{mk_ctxt, ext_ctxt};
 use syntax::ext::build;
-use syntax::{ast, attr, codemap, diagnostic, fold, parse, visit};
+use syntax::{ast, attr, codemap, diagnostic, fold};
 
 pub struct Package {
     id: ~str,
diff --git a/src/libstd/bigint.rs b/src/libstd/bigint.rs
index 7d20eb7b891..9671112bec0 100644
--- a/src/libstd/bigint.rs
+++ b/src/libstd/bigint.rs
@@ -866,7 +866,7 @@ mod biguint_tests {
 
     use core::*;
     use core::num::{IntConvertible, Zero, One};
-    use super::{BigInt, BigUint, BigDigit};
+    use super::{BigUint, BigDigit};
 
     #[test]
     fn test_from_slice() {
diff --git a/src/libstd/ebml.rs b/src/libstd/ebml.rs
index 331bede5b7a..98c4b3c6b16 100644
--- a/src/libstd/ebml.rs
+++ b/src/libstd/ebml.rs
@@ -54,7 +54,7 @@ pub enum EbmlEncoderTag {
 
 pub mod reader {
     use ebml::{Doc, EbmlEncoderTag, EsBool, EsEnum, EsEnumBody, EsEnumVid};
-    use ebml::{EsF32, EsF64, EsFloat, EsI16, EsI32, EsI64, EsI8, EsInt};
+    use ebml::{EsI16, EsI32, EsI64, EsI8, EsInt};
     use ebml::{EsLabel, EsOpaque, EsStr, EsU16, EsU32, EsU64, EsU8, EsUint};
     use ebml::{EsVec, EsVecElt, EsVecLen, TaggedDoc};
     use serialize;
@@ -443,10 +443,10 @@ pub mod reader {
 }
 
 pub mod writer {
-    use ebml::{Doc, EbmlEncoderTag, EsBool, EsEnum, EsEnumBody, EsEnumVid};
-    use ebml::{EsF32, EsF64, EsFloat, EsI16, EsI32, EsI64, EsI8, EsInt};
+    use ebml::{EbmlEncoderTag, EsBool, EsEnum, EsEnumBody, EsEnumVid};
+    use ebml::{EsI16, EsI32, EsI64, EsI8, EsInt};
     use ebml::{EsLabel, EsOpaque, EsStr, EsU16, EsU32, EsU64, EsU8, EsUint};
-    use ebml::{EsVec, EsVecElt, EsVecLen, TaggedDoc};
+    use ebml::{EsVec, EsVecElt, EsVecLen};
 
     use core::io;
     use core::str;
diff --git a/src/libstd/flatpipes.rs b/src/libstd/flatpipes.rs
index 1a3a28f7492..ab6844b80ff 100644
--- a/src/libstd/flatpipes.rs
+++ b/src/libstd/flatpipes.rs
@@ -334,13 +334,13 @@ pub impl<T,F:Flattener<T>,C:ByteChan> FlatChan<T, F, C> {
 
 pub mod flatteners {
     use ebml;
-    use flatpipes::{ByteChan, BytePort, Flattener, Unflattener};
+    use flatpipes::{Flattener, Unflattener};
     use io_util::BufReader;
     use json;
     use serialize::{Encoder, Decoder, Encodable, Decodable};
 
     use core::cast;
-    use core::io::{Writer, Reader, BytesWriter, ReaderUtil};
+    use core::io::{Writer, Reader, ReaderUtil};
     use core::prelude::*;
     use core::ptr;
     use core::sys::size_of;
@@ -637,7 +637,7 @@ mod test {
     use net::tcp::TcpSocketBuf;
 
     use core::int;
-    use core::io::{BytesReader, BytesWriter};
+    use core::io::BytesWriter;
     use core::prelude::*;
     use core::result;
     use core::task;
diff --git a/src/libstd/future.rs b/src/libstd/future.rs
index 29771fa3501..8504b3e8ae5 100644
--- a/src/libstd/future.rs
+++ b/src/libstd/future.rs
@@ -23,7 +23,7 @@
 
 use core::cast;
 use core::cell::Cell;
-use core::comm::{oneshot, ChanOne, PortOne, send_one, recv_one};
+use core::comm::{oneshot, PortOne, send_one};
 use core::pipes::recv;
 use core::prelude::*;
 use core::task;
diff --git a/src/libstd/getopts.rs b/src/libstd/getopts.rs
index ae783fb9b69..4525dc0ae61 100644
--- a/src/libstd/getopts.rs
+++ b/src/libstd/getopts.rs
@@ -461,7 +461,7 @@ pub enum FailType {
  */
 pub mod groups {
     use getopts::{HasArg, Long, Maybe, Multi, No, Occur, Opt, Optional, Req};
-    use getopts::{Result, Short, Yes};
+    use getopts::{Short, Yes};
 
     use core::prelude::*;
     use core::str;
diff --git a/src/libstd/net_ip.rs b/src/libstd/net_ip.rs
index 4d82d35cc32..4fd06f43164 100644
--- a/src/libstd/net_ip.rs
+++ b/src/libstd/net_ip.rs
@@ -149,7 +149,7 @@ pub fn get_addr(node: &str, iotask: &iotask)
 }
 
 pub mod v4 {
-    use net::ip::{IpAddr, Ipv4, Ipv6, ParseAddrErr};
+    use net::ip::{IpAddr, Ipv4, ParseAddrErr};
     use uv::ll;
     use uv_ip4_addr = uv::ll::ip4_addr;
     use uv_ip4_name = uv::ll::ip4_name;
diff --git a/src/libstd/net_tcp.rs b/src/libstd/net_tcp.rs
index a47a53caab9..998b8640b68 100644
--- a/src/libstd/net_tcp.rs
+++ b/src/libstd/net_tcp.rs
@@ -24,7 +24,7 @@ use core::io::{Reader, ReaderUtil, Writer};
 use core::io;
 use core::libc::size_t;
 use core::libc;
-use core::comm::{stream, Chan, Port, SharedChan};
+use core::comm::{stream, Port, SharedChan};
 use core::prelude::*;
 use core::ptr;
 use core::result::{Result};
@@ -1449,7 +1449,7 @@ pub mod test {
     use uv;
 
     use core::io;
-    use core::comm::{stream, Chan, Port, SharedChan};
+    use core::comm::{stream, SharedChan};
     use core::prelude::*;
     use core::result;
     use core::str;
diff --git a/src/libstd/sort.rs b/src/libstd/sort.rs
index 1588d688148..761a17352a9 100644
--- a/src/libstd/sort.rs
+++ b/src/libstd/sort.rs
@@ -13,7 +13,7 @@
 use core::cmp::{Eq, Ord};
 use core::prelude::*;
 use core::util;
-use core::vec::{len, push};
+use core::vec::len;
 use core::vec;
 
 type Le<'self, T> = &'self fn(v1: &T, v2: &T) -> bool;
diff --git a/src/libstd/task_pool.rs b/src/libstd/task_pool.rs
index 16645f151ee..dbfe3d6a8b5 100644
--- a/src/libstd/task_pool.rs
+++ b/src/libstd/task_pool.rs
@@ -11,12 +11,14 @@
 /// A task pool abstraction. Useful for achieving predictable CPU
 /// parallelism.
 
-use core::comm::{Chan, Port};
+use core::comm::Chan;
 use core::prelude::*;
-use core::task::{SchedMode, SingleThreaded};
+use core::task::SchedMode;
 use core::task;
 use core::vec;
 
+#[cfg(test)] use core::task::SingleThreaded;
+
 enum Msg<T> {
     Execute(~fn(&T)),
     Quit
diff --git a/src/libstd/test.rs b/src/libstd/test.rs
index 93170668c13..853a17abb55 100644
--- a/src/libstd/test.rs
+++ b/src/libstd/test.rs
@@ -26,7 +26,7 @@ use core::either::Either;
 use core::either;
 use core::io::WriterUtil;
 use core::io;
-use core::comm::{stream, Chan, Port, SharedChan};
+use core::comm::{stream, SharedChan};
 use core::option;
 use core::prelude::*;
 use core::result;
diff --git a/src/libstd/uv_global_loop.rs b/src/libstd/uv_global_loop.rs
index 1f3dc2f01de..3130abdc7cd 100644
--- a/src/libstd/uv_global_loop.rs
+++ b/src/libstd/uv_global_loop.rs
@@ -14,9 +14,9 @@ use iotask = uv_iotask;
 use uv_iotask::{IoTask, spawn_iotask};
 
 use core::clone::Clone;
-use core::comm::{Port, Chan, SharedChan, select2i};
+use core::comm::Chan;
 use core::option::{Some, None};
-use core::task::{task, SingleThreaded, spawn};
+use core::task::task;
 use core::task;
 use core::unstable::global::{global_data_clone_create, global_data_clone};
 use core::unstable::weak_task::weaken_task;
diff --git a/src/libstd/uv_ll.rs b/src/libstd/uv_ll.rs
index 57d769d707e..f6cc35e0c9e 100644
--- a/src/libstd/uv_ll.rs
+++ b/src/libstd/uv_ll.rs
@@ -375,11 +375,15 @@ pub mod uv_ll_struct_stubgen {
     #[cfg(target_os = "freebsd")]
     use super::{
         uv_async_t_32bit_unix_riders,
-        uv_tcp_t_32bit_unix_riders,
         uv_timer_t_32bit_unix_riders,
         uv_write_t_32bit_unix_riders,
     };
 
+    #[cfg(target_os = "linux")]
+    #[cfg(target_os = "android")]
+    #[cfg(target_os = "freebsd")]
+    use super::uv_tcp_t_32bit_unix_riders;
+
     pub fn gen_stub_uv_tcp_t() -> uv_tcp_t {
         return gen_stub_os();
         #[cfg(target_os = "linux")]
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs
index c2f098f3c3e..d7fc2f2f264 100644
--- a/src/libsyntax/ast.rs
+++ b/src/libsyntax/ast.rs
@@ -10,7 +10,7 @@
 
 // The Rust abstract syntax tree.
 
-use codemap::{span, FileName, spanned};
+use codemap::{span, spanned};
 
 use core::cast;
 use core::option::{None, Option, Some};
diff --git a/src/libsyntax/ast_map.rs b/src/libsyntax/ast_map.rs
index eef14ac8b7a..11178054b4c 100644
--- a/src/libsyntax/ast_map.rs
+++ b/src/libsyntax/ast_map.rs
@@ -12,7 +12,7 @@ use core::prelude::*;
 
 use ast::*;
 use ast;
-use ast_util::{inlined_item_utils, path_to_ident, stmt_id};
+use ast_util::{inlined_item_utils, stmt_id};
 use ast_util;
 use attr;
 use codemap;
diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs
index 764393e0feb..131b6616df6 100644
--- a/src/libsyntax/ast_util.rs
+++ b/src/libsyntax/ast_util.rs
@@ -13,7 +13,7 @@ use core::prelude::*;
 use ast::*;
 use ast;
 use ast_util;
-use codemap::{span, BytePos, dummy_sp, spanned};
+use codemap::{span, dummy_sp, spanned};
 use parse::token;
 use visit;
 use opt_vec;
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs
index d93a997213d..93e2ad64c8c 100644
--- a/src/libsyntax/ext/base.rs
+++ b/src/libsyntax/ext/base.rs
@@ -12,12 +12,12 @@ use core::prelude::*;
 
 use ast;
 use codemap;
-use codemap::{CodeMap, span, ExpnInfo, ExpandedFrom, dummy_sp};
-use codemap::{CallInfo, NameAndSpan};
+use codemap::{CodeMap, span, ExpnInfo, ExpandedFrom};
+use codemap::CallInfo;
 use diagnostic::span_handler;
 use ext;
 use parse;
-use parse::{parser, token};
+use parse::token;
 
 use core::vec;
 use core::hashmap::linear::LinearMap;
diff --git a/src/libsyntax/ext/deriving/clone.rs b/src/libsyntax/ext/deriving/clone.rs
index 6516bd85270..c9e17715999 100644
--- a/src/libsyntax/ext/deriving/clone.rs
+++ b/src/libsyntax/ext/deriving/clone.rs
@@ -11,14 +11,7 @@
 use core::prelude::*;
 
 use ast;
-use ast::{TraitTyParamBound, Ty, and, bind_by_ref, binop, deref, enum_def};
-use ast::{expr, expr_match, ident, impure_fn, item, item_};
-use ast::{item_enum, item_impl, item_struct, Generics};
-use ast::{m_imm, meta_item, method};
-use ast::{named_field, or, pat, pat_ident, pat_wild, public, pure_fn};
-use ast::{stmt, struct_def, struct_variant_kind};
-use ast::{sty_region, tuple_variant_kind, ty_nil, TyParam};
-use ast::{TyParamBound, ty_path, ty_rptr, unnamed_field, variant};
+use ast::*;
 use ext::base::ext_ctxt;
 use ext::build;
 use ext::deriving::*;
diff --git a/src/libsyntax/ext/deriving/eq.rs b/src/libsyntax/ext/deriving/eq.rs
index a1cb981e3bd..07b2835d44c 100644
--- a/src/libsyntax/ext/deriving/eq.rs
+++ b/src/libsyntax/ext/deriving/eq.rs
@@ -11,14 +11,7 @@
 use core::prelude::*;
 
 use ast;
-use ast::{TraitTyParamBound, Ty, and, bind_by_ref, binop, deref, enum_def};
-use ast::{expr, expr_match, ident, impure_fn, item, item_};
-use ast::{item_enum, item_impl, item_struct, Generics};
-use ast::{m_imm, meta_item, method};
-use ast::{named_field, or, pat, pat_ident, pat_wild, public, pure_fn};
-use ast::{stmt, struct_def, struct_variant_kind};
-use ast::{sty_region, tuple_variant_kind, ty_nil, TyParam};
-use ast::{TyParamBound, ty_path, ty_rptr, unnamed_field, variant};
+use ast::*;
 use ext::base::ext_ctxt;
 use ext::build;
 use ext::deriving::*;
diff --git a/src/libsyntax/ext/deriving/iter_bytes.rs b/src/libsyntax/ext/deriving/iter_bytes.rs
index 3be8bf6efb5..e2a43591ef0 100644
--- a/src/libsyntax/ext/deriving/iter_bytes.rs
+++ b/src/libsyntax/ext/deriving/iter_bytes.rs
@@ -11,14 +11,7 @@
 use core::prelude::*;
 
 use ast;
-use ast::{TraitTyParamBound, Ty, and, bind_by_ref, binop, deref, enum_def};
-use ast::{expr, expr_match, ident, impure_fn, item, item_};
-use ast::{item_enum, item_impl, item_struct, Generics};
-use ast::{m_imm, meta_item, method};
-use ast::{named_field, or, pat, pat_ident, pat_wild, public, pure_fn};
-use ast::{stmt, struct_def, struct_variant_kind};
-use ast::{sty_region, tuple_variant_kind, ty_nil, TyParam};
-use ast::{TyParamBound, ty_path, ty_rptr, unnamed_field, variant};
+use ast::*;
 use ext::base::ext_ctxt;
 use ext::build;
 use ext::deriving::*;
diff --git a/src/libsyntax/ext/deriving/mod.rs b/src/libsyntax/ext/deriving/mod.rs
index 1b81380ec9b..e2c52fad110 100644
--- a/src/libsyntax/ext/deriving/mod.rs
+++ b/src/libsyntax/ext/deriving/mod.rs
@@ -14,17 +14,17 @@
 use core::prelude::*;
 
 use ast;
-use ast::{TraitTyParamBound, Ty, and, bind_by_ref, binop, deref, enum_def};
-use ast::{expr, expr_match, ident, impure_fn, item, item_};
+use ast::{TraitTyParamBound, Ty, bind_by_ref, deref, enum_def};
+use ast::{expr, expr_match, ident, item, item_};
 use ast::{item_enum, item_impl, item_struct, Generics};
 use ast::{m_imm, meta_item, method};
-use ast::{named_field, or, pat, pat_ident, pat_wild, public, pure_fn};
-use ast::{stmt, struct_def, struct_variant_kind};
-use ast::{sty_region, tuple_variant_kind, ty_nil, TyParam};
-use ast::{TyParamBound, ty_path, ty_rptr, unnamed_field, variant};
+use ast::{named_field, pat, pat_ident, public};
+use ast::{struct_def, struct_variant_kind};
+use ast::{tuple_variant_kind};
+use ast::{ty_path, unnamed_field, variant};
 use ext::base::ext_ctxt;
 use ext::build;
-use codemap::{span, spanned};
+use codemap::span;
 use parse::token::special_idents::clownshoes_extensions;
 use opt_vec;
 
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index 07ed6b7dfe2..6f49fe02239 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -12,7 +12,7 @@ use core::prelude::*;
 
 use ast::{blk_, attribute_, attr_outer, meta_word};
 use ast::{crate, expr_, expr_mac, mac_invoc_tt};
-use ast::{tt_delim, tt_tok, item_mac, stmt_, stmt_mac, stmt_expr, stmt_semi};
+use ast::{item_mac, stmt_, stmt_mac, stmt_expr, stmt_semi};
 use ast;
 use attr;
 use codemap;
@@ -20,7 +20,7 @@ use codemap::{span, CallInfo, ExpandedFrom, NameAndSpan, spanned};
 use ext::base::*;
 use fold::*;
 use parse;
-use parse::{parser, parse_item_from_source_str, new_parser_from_tts};
+use parse::{parse_item_from_source_str};
 
 use core::vec;
 
diff --git a/src/libsyntax/ext/pipes/ast_builder.rs b/src/libsyntax/ext/pipes/ast_builder.rs
index 76b70225c6c..075474a2a0d 100644
--- a/src/libsyntax/ext/pipes/ast_builder.rs
+++ b/src/libsyntax/ext/pipes/ast_builder.rs
@@ -15,12 +15,12 @@
 
 use core::prelude::*;
 
-use ast::{ident, node_id};
+use ast::ident;
 use ast;
 use ast_util;
 use codemap::{span, respan, dummy_sp, spanned};
 use codemap;
-use ext::base::{ext_ctxt, mk_ctxt};
+use ext::base::ext_ctxt;
 use ext::quote::rt::*;
 use opt_vec;
 use opt_vec::OptVec;
diff --git a/src/libsyntax/ext/pipes/mod.rs b/src/libsyntax/ext/pipes/mod.rs
index 327cb0ae517..81b2442ea82 100644
--- a/src/libsyntax/ext/pipes/mod.rs
+++ b/src/libsyntax/ext/pipes/mod.rs
@@ -49,7 +49,7 @@ use ext::base;
 use ext::base::ext_ctxt;
 use ext::pipes::parse_proto::proto_parser;
 use ext::pipes::pipec::gen_init;
-use ext::pipes::proto::{visit, protocol};
+use ext::pipes::proto::visit;
 use parse::lexer::{new_tt_reader, reader};
 use parse::parser::Parser;
 
diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs
index b7ba9c5c6c0..e6619d6dcfa 100644
--- a/src/libsyntax/ext/tt/macro_parser.rs
+++ b/src/libsyntax/ext/tt/macro_parser.rs
@@ -19,8 +19,8 @@ use parse::parser::Parser;
 use parse::token::{Token, EOF, to_str, nonterminal};
 use parse::token;
 
-use core::hashmap::linear::LinearMap;
 use core::prelude::*;
+use core::hashmap::linear::LinearMap;
 
 /* This is an Earley-like parser, without support for in-grammar nonterminals,
 only by calling out to the main rust parser for named nonterminals (which it
diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs
index 6bd72b95109..9a8c288c3a1 100644
--- a/src/libsyntax/ext/tt/macro_rules.rs
+++ b/src/libsyntax/ext/tt/macro_rules.rs
@@ -22,7 +22,7 @@ use ext::tt::macro_parser::{parse, parse_or_else, success, failure};
 use parse::lexer::{new_tt_reader, reader};
 use parse::parser::Parser;
 use parse::token::special_idents;
-use parse::token::{FAT_ARROW, SEMI, LBRACE, RBRACE, nt_matchers, nt_tt};
+use parse::token::{FAT_ARROW, SEMI, nt_matchers, nt_tt};
 use print;
 
 use core::io;
diff --git a/src/libsyntax/parse/comments.rs b/src/libsyntax/parse/comments.rs
index e5685cdb4c7..0804951327a 100644
--- a/src/libsyntax/parse/comments.rs
+++ b/src/libsyntax/parse/comments.rs
@@ -11,7 +11,7 @@
 use core::prelude::*;
 
 use ast;
-use codemap::{BytePos, CharPos, CodeMap, FileMap, Pos};
+use codemap::{BytePos, CharPos, CodeMap, Pos};
 use diagnostic;
 use parse::lexer::{is_whitespace, get_str_from, reader};
 use parse::lexer::{StringReader, bump, is_eof, nextch, TokenAndSpan};
diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs
index 0ddf9111e02..cdb67129c35 100644
--- a/src/libsyntax/parse/mod.rs
+++ b/src/libsyntax/parse/mod.rs
@@ -13,16 +13,16 @@
 
 use ast::node_id;
 use ast;
-use codemap::{span, CodeMap, FileMap, CharPos, BytePos};
+use codemap::{span, CodeMap};
 use codemap;
 use diagnostic::{span_handler, mk_span_handler, mk_handler, Emitter};
 use parse::attr::parser_attr;
-use parse::lexer::{reader, StringReader};
+use parse::lexer::reader;
 use parse::parser::Parser;
 use parse::token::{ident_interner, mk_ident_interner};
 
 use core::io;
-use core::option::{None, Option, Some};
+use core::option::{None, Option};
 use core::path::Path;
 use core::result::{Err, Ok, Result};
 
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index c52162b7f14..d93e5995d4f 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -14,7 +14,7 @@ use ast::{Sigil, BorrowedSigil, ManagedSigil, OwnedSigil, RustAbi};
 use ast::{CallSugar, NoSugar, DoSugar, ForSugar};
 use ast::{TyBareFn, TyClosure};
 use ast::{RegionTyParamBound, TraitTyParamBound};
-use ast::{provided, public, pure_fn, purity};
+use ast::{provided, public, purity};
 use ast::{_mod, add, arg, arm, attribute, bind_by_ref, bind_infer};
 use ast::{bind_by_copy, bitand, bitor, bitxor, blk};
 use ast::{blk_check_mode, box, by_copy, by_ref};
@@ -27,7 +27,7 @@ use ast::{expr_field, expr_fn_block, expr_if, expr_index};
 use ast::{expr_lit, expr_log, expr_loop, expr_loop_body, expr_mac};
 use ast::{expr_method_call, expr_paren, expr_path, expr_repeat};
 use ast::{expr_ret, expr_swap, expr_struct, expr_tup, expr_unary};
-use ast::{expr_vec, expr_vstore, expr_vstore_mut_box, expr_inline_asm};
+use ast::{expr_vec, expr_vstore, expr_vstore_mut_box};
 use ast::{expr_vstore_slice, expr_vstore_box};
 use ast::{expr_vstore_mut_slice, expr_while, extern_fn, field, fn_decl};
 use ast::{expr_vstore_uniq, TyClosure, TyBareFn, Onceness, Once, Many};
@@ -41,7 +41,7 @@ use ast::{m_imm, m_mutbl, mac_, mac_invoc_tt, matcher, match_nonterminal};
 use ast::{match_seq, match_tok, method, mode, module_ns, mt, mul, mutability};
 use ast::{named_field, neg, node_id, noreturn, not, pat, pat_box, pat_enum};
 use ast::{pat_ident, pat_lit, pat_range, pat_region, pat_struct};
-use ast::{pat_tup, pat_uniq, pat_wild, path, private};
+use ast::{pat_tup, pat_uniq, pat_wild, private};
 use ast::{rem, required};
 use ast::{ret_style, return_val, self_ty, shl, shr, stmt, stmt_decl};
 use ast::{stmt_expr, stmt_semi, stmt_mac, struct_def, struct_field};
@@ -50,17 +50,17 @@ use ast::{sty_box, sty_region, sty_static, sty_uniq, sty_value};
 use ast::{token_tree, trait_method, trait_ref, tt_delim, tt_seq, tt_tok};
 use ast::{tt_nonterminal, tuple_variant_kind, Ty, ty_, ty_bot, ty_box};
 use ast::{ty_field, ty_fixed_length_vec, ty_closure, ty_bare_fn};
-use ast::{ty_infer, ty_mac, ty_method};
+use ast::{ty_infer, ty_method};
 use ast::{ty_nil, TyParam, TyParamBound, ty_path, ty_ptr, ty_rptr};
 use ast::{ty_tup, ty_u32, ty_uniq, ty_vec, type_value_ns, uniq};
-use ast::{unnamed_field, unsafe_blk, unsafe_fn, variant, view_item};
+use ast::{unnamed_field, unsafe_blk, unsafe_fn, view_item};
 use ast::{view_item_, view_item_extern_mod, view_item_use};
 use ast::{view_path, view_path_glob, view_path_list, view_path_simple};
-use ast::{visibility, vstore, vstore_box, vstore_fixed, vstore_slice};
+use ast::visibility;
 use ast;
 use ast_util::{ident_to_path, operator_prec};
 use ast_util;
-use codemap::{span,FssNone, BytePos, spanned, respan, mk_sp};
+use codemap::{span, BytePos, spanned, mk_sp};
 use codemap;
 use parse::attr::parser_attr;
 use parse::classify;
@@ -68,7 +68,7 @@ use parse::common::{seq_sep_none, token_to_str};
 use parse::common::{seq_sep_trailing_disallowed, seq_sep_trailing_allowed};
 use parse::lexer::reader;
 use parse::lexer::TokenAndSpan;
-use parse::obsolete::{ObsoleteClassTraits, ObsoleteModeInFnType};
+use parse::obsolete::{ObsoleteClassTraits};
 use parse::obsolete::{ObsoleteLet, ObsoleteFieldTerminator};
 use parse::obsolete::{ObsoleteMoveInit, ObsoleteBinaryMove};
 use parse::obsolete::{ObsoleteSyntax, ObsoleteLowerCaseKindBounds};
@@ -78,7 +78,7 @@ use parse::obsolete::{ObsoleteMutVector, ObsoleteTraitImplVisibility};
 use parse::obsolete::{ObsoleteRecordType, ObsoleteRecordPattern};
 use parse::obsolete::{ObsoletePostFnTySigil};
 use parse::obsolete::{ObsoleteBareFnType, ObsoleteNewtypeEnum};
-use parse::obsolete::{ObsoleteMode, ObsoleteImplicitSelf};
+use parse::obsolete::ObsoleteMode;
 use parse::obsolete::{ObsoleteLifetimeNotation, ObsoleteConstManagedPointer};
 use parse::obsolete::{ObsoletePurity, ObsoleteStaticMethod};
 use parse::obsolete::{ObsoleteConstItem, ObsoleteFixedLengthVectorType};
@@ -90,7 +90,7 @@ use parse::{new_sub_parser_from_file, next_node_id, ParseSess};
 use opt_vec;
 use opt_vec::OptVec;
 
-use core::either::{Either, Left, Right};
+use core::either::Either;
 use core::either;
 use core::hashmap::linear::LinearSet;
 use core::vec;
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index 242156f2d7e..66907471c98 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -19,11 +19,11 @@ use attr;
 use codemap::{CodeMap, BytePos};
 use codemap;
 use diagnostic;
-use parse::classify::{expr_is_simple_block, expr_requires_semi_to_be_stmt};
+use parse::classify::expr_is_simple_block;
 use parse::token::ident_interner;
-use parse::{comments, lexer, token};
+use parse::{comments, token};
 use parse;
-use print::pp::{break_offset, word, Printer, space, zerobreak, hardbreak};
+use print::pp::{break_offset, word, space, zerobreak, hardbreak};
 use print::pp::{breaks, consistent, inconsistent, eof};
 use print::pp;
 use print::pprust;
diff --git a/src/test/compile-fail/unused-imports-warn.rs b/src/test/compile-fail/unused-imports-warn.rs
index 7756f96b470..f3b0a1f73f9 100644
--- a/src/test/compile-fail/unused-imports-warn.rs
+++ b/src/test/compile-fail/unused-imports-warn.rs
@@ -17,14 +17,19 @@ use core::either::Right;        //~ ERROR unused import
 use core::util::*;              // shouldn't get errors for not using
                                 // everything imported
 
-// Should only get one error instead of two errors here
+// Should get errors for both 'Some' and 'None'
 use core::option::{Some, None}; //~ ERROR unused import
+                                //~^ ERROR unused import
 
 use core::io::ReaderUtil;       //~ ERROR unused import
 // Be sure that if we just bring some methods into scope that they're also
 // counted as being used.
 use core::io::WriterUtil;
 
+// Make sure this import is warned about when at least one of its imported names
+// is unused
+use core::vec::{filter, map};   //~ ERROR unused import
+
 mod foo {
     pub struct Point{x: int, y: int}
     pub struct Square{p: Point, h: uint, w: uint}
@@ -51,4 +56,7 @@ fn main() {
     let a = 3;
     ignore(a);
     io::stdout().write_str(~"a");
+    let _a = do map(~[2]) |&x| {
+      x + 2
+    };
 }