about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2013-01-25 11:57:51 -0800
committerTim Chevalier <chevalier@alum.wellesley.edu>2013-01-25 11:57:51 -0800
commit85a34c2898b6a64f319f288e69b8cd433a660a17 (patch)
tree901255df7138d69cda1affc99ed1a6da77ef1e1c
parent4a7e1ab3745f519536ef6e0377427fc41e47f7c6 (diff)
parente4337a9defcad3f2a65da285ab78f8ede554f379 (diff)
Merge pull request #4625 from thestinger/container
more little container improvements
-rw-r--r--src/compiletest/compiletest.rc2
-rw-r--r--src/compiletest/runtest.rs6
-rw-r--r--src/libcore/core.rc3
-rw-r--r--src/libcore/dlist.rs4
-rw-r--r--src/libcore/float.rs2
-rw-r--r--src/libcore/prelude.rs3
-rw-r--r--src/libcore/str.rs13
-rw-r--r--src/libcore/util.rs2
-rw-r--r--src/libcore/vec.rs40
-rw-r--r--src/librustc/back/rpath.rs2
-rw-r--r--src/librustc/front/test.rs6
-rw-r--r--src/librustc/lib/llvm.rs2
-rw-r--r--src/librustc/metadata/creader.rs4
-rw-r--r--src/librustc/metadata/encoder.rs4
-rw-r--r--src/librustc/metadata/loader.rs2
-rw-r--r--src/librustc/middle/check_match.rs2
-rw-r--r--src/librustc/middle/lint.rs2
-rw-r--r--src/librustc/middle/trans/base.rs2
-rw-r--r--src/librustc/middle/typeck/check/mod.rs2
-rw-r--r--src/librustc/middle/typeck/mod.rs2
-rw-r--r--src/librustdoc/attr_parser.rs2
-rw-r--r--src/librustdoc/desc_to_brief_pass.rs6
-rw-r--r--src/librustdoc/unindent_pass.rs2
-rw-r--r--src/libstd/bigint.rs2
-rw-r--r--src/libstd/flatpipes.rs4
-rw-r--r--src/libstd/getopts.rs6
-rw-r--r--src/libstd/list.rs9
-rw-r--r--src/libsyntax/attr.rs2
-rw-r--r--src/libsyntax/diagnostic.rs2
-rw-r--r--src/libsyntax/parse/parser.rs2
-rw-r--r--src/libsyntax/print/pprust.rs16
-rw-r--r--src/test/run-pass/non-boolean-pure-fns.rs2
-rw-r--r--src/test/run-pass/zip-same-length.rs2
33 files changed, 66 insertions, 96 deletions
diff --git a/src/compiletest/compiletest.rc b/src/compiletest/compiletest.rc
index a62e5ff9d32..82949bf200c 100644
--- a/src/compiletest/compiletest.rc
+++ b/src/compiletest/compiletest.rc
@@ -70,7 +70,7 @@ fn parse_config(args: ~[~str]) -> config {
           getopts::optopt(~"logfile"),
           getopts::optflag(~"jit")];
 
-    assert (vec::is_not_empty(args));
+    assert !args.is_empty();
     let args_ = vec::tail(args);
     let matches =
         &match getopts::getopts(args_, opts) {
diff --git a/src/compiletest/runtest.rs b/src/compiletest/runtest.rs
index f1af335eebf..62842d04e78 100644
--- a/src/compiletest/runtest.rs
+++ b/src/compiletest/runtest.rs
@@ -59,8 +59,8 @@ fn run_cfail_test(config: config, props: test_props, testfile: &Path) {
     check_correct_failure_status(procres);
 
     let expected_errors = errors::load_errors(testfile);
-    if vec::is_not_empty(expected_errors) {
-        if vec::is_not_empty(props.error_patterns) {
+    if !expected_errors.is_empty() {
+        if !props.error_patterns.is_empty() {
             fatal(~"both error pattern and expected errors specified");
         }
         check_expected_errors(expected_errors, testfile, procres);
@@ -440,7 +440,7 @@ fn compose_and_run_compiler(
     args: procargs,
     input: Option<~str>) -> procres {
 
-    if props.aux_builds.is_not_empty() {
+    if !props.aux_builds.is_empty() {
         ensure_dir(&aux_output_dir_name(config, testfile));
     }
 
diff --git a/src/libcore/core.rc b/src/libcore/core.rc
index 20057fa1038..f7a65ed1fe4 100644
--- a/src/libcore/core.rc
+++ b/src/libcore/core.rc
@@ -190,7 +190,8 @@ pub use path::PosixPath;
 
 pub use tuple::{CopyableTuple, ImmutableTuple, ExtendedTupleOps};
 pub use str::{StrSlice, Trimmable};
-pub use vec::{ConstVector, CopyableVector, ImmutableVector};
+pub use container::{Container, Mutable};
+pub use vec::{CopyableVector, ImmutableVector};
 pub use vec::{ImmutableEqVector, ImmutableCopyableVector};
 pub use vec::{OwnedVector, OwnedCopyableVector};
 pub use iter::{BaseIter, ExtendedIter, EqIter, CopyableIter};
diff --git a/src/libcore/dlist.rs b/src/libcore/dlist.rs
index 4f0d76d69f3..bb41da432b5 100644
--- a/src/libcore/dlist.rs
+++ b/src/libcore/dlist.rs
@@ -208,8 +208,6 @@ impl<T> DList<T> {
     pure fn len(@self) -> uint { self.size }
     /// Returns true if the list is empty. O(1).
     pure fn is_empty(@self) -> bool { self.len() == 0 }
-    /// Returns true if the list is not empty. O(1).
-    pure fn is_not_empty(@self) -> bool { self.len() != 0 }
 
     /// Add data to the head of the list. O(1).
     fn push_head(@self, data: T) {
@@ -648,8 +646,6 @@ mod tests {
         let full1 = from_vec(~[1,2,3]);
         assert empty.is_empty();
         assert !full1.is_empty();
-        assert !empty.is_not_empty();
-        assert full1.is_not_empty();
     }
     #[test]
     fn test_dlist_head_tail() {
diff --git a/src/libcore/float.rs b/src/libcore/float.rs
index 4c79069ad09..999e0df007b 100644
--- a/src/libcore/float.rs
+++ b/src/libcore/float.rs
@@ -157,7 +157,7 @@ pub pure fn to_str_common(num: float, digits: uint, exact: bool) -> ~str {
 
     // turn digits into string
     // using stack of digits
-    while fractionalParts.is_not_empty() {
+    while !fractionalParts.is_empty() {
         // Bleh; shouldn't need to be unsafe
         let mut adjusted_digit = carry + unsafe { fractionalParts.pop() };
 
diff --git a/src/libcore/prelude.rs b/src/libcore/prelude.rs
index 63b7628f119..72aa828ff12 100644
--- a/src/libcore/prelude.rs
+++ b/src/libcore/prelude.rs
@@ -29,7 +29,8 @@ pub use path::PosixPath;
 
 pub use tuple::{CopyableTuple, ImmutableTuple, ExtendedTupleOps};
 pub use str::{StrSlice, Trimmable};
-pub use vec::{ConstVector, CopyableVector, ImmutableVector};
+pub use container::{Container, Mutable};
+pub use vec::{CopyableVector, ImmutableVector};
 pub use vec::{ImmutableEqVector, ImmutableCopyableVector};
 pub use vec::{OwnedVector, OwnedCopyableVector};
 pub use iter::{BaseIter, ExtendedIter, EqIter, CopyableIter};
diff --git a/src/libcore/str.rs b/src/libcore/str.rs
index 12246255b77..312bfab58c0 100644
--- a/src/libcore/str.rs
+++ b/src/libcore/str.rs
@@ -1419,9 +1419,6 @@ pub pure fn is_ascii(s: &str) -> bool {
 /// Returns true if the string has length 0
 pub pure fn is_empty(s: &str) -> bool { len(s) == 0u }
 
-/// Returns true if the string has length greater than 0
-pub pure fn is_not_empty(s: &str) -> bool { !is_empty(s) }
-
 /**
  * Returns true if the string contains only whitespace
  *
@@ -2167,7 +2164,6 @@ pub trait StrSlice {
     pure fn each_chari(it: fn(uint, char) -> bool);
     pure fn ends_with(needle: &str) -> bool;
     pure fn is_empty() -> bool;
-    pure fn is_not_empty() -> bool;
     pure fn is_whitespace() -> bool;
     pure fn is_alphanumeric() -> bool;
     pure fn len() -> uint;
@@ -2229,9 +2225,6 @@ impl &str: StrSlice {
     /// Returns true if the string has length 0
     #[inline]
     pure fn is_empty() -> bool { is_empty(self) }
-    /// Returns true if the string has length greater than 0
-    #[inline]
-    pure fn is_not_empty() -> bool { is_not_empty(self) }
     /**
      * Returns true if the string contains only whitespace
      *
@@ -2740,12 +2733,6 @@ mod tests {
     }
 
     #[test]
-    fn test_is_not_empty() {
-        assert (is_not_empty(~"a"));
-        assert (!is_not_empty(~""));
-    }
-
-    #[test]
     fn test_replace() {
         let a = ~"a";
         assert replace(~"", a, ~"b") == ~"";
diff --git a/src/libcore/util.rs b/src/libcore/util.rs
index 423dbaedf26..0faa72364f2 100644
--- a/src/libcore/util.rs
+++ b/src/libcore/util.rs
@@ -84,7 +84,7 @@ terminate normally, but instead directly return from a function.
 
 ~~~
 fn choose_weighted_item(v: &[Item]) -> Item {
-    assert v.is_not_empty();
+    assert !v.is_empty();
     let mut so_far = 0u;
     for v.each |item| {
         so_far += item.weight;
diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs
index ebfcfd37577..e9d60d0f269 100644
--- a/src/libcore/vec.rs
+++ b/src/libcore/vec.rs
@@ -14,6 +14,7 @@
 #[forbid(deprecated_pattern)];
 #[warn(non_camel_case_types)];
 
+use container::{Container, Mutable};
 use cast::transmute;
 use cast;
 use cmp::{Eq, Ord};
@@ -48,11 +49,6 @@ pub pure fn is_empty<T>(v: &[const T]) -> bool {
     as_const_buf(v, |_p, len| len == 0u)
 }
 
-/// Returns true if a vector contains some elements
-pub pure fn is_not_empty<T>(v: &[const T]) -> bool {
-    as_const_buf(v, |_p, len| len > 0u)
-}
-
 /// Returns true if two vectors have the same length
 pub pure fn same_length<T, U>(xs: &[const T], ys: &[const U]) -> bool {
     len(xs) == len(ys)
@@ -453,7 +449,7 @@ pub pure fn partitioned<T: Copy>(v: &[T], f: fn(&T) -> bool) -> (~[T], ~[T]) {
 /// Removes the first element from a vector and return it
 pub fn shift<T>(v: &mut ~[T]) -> T {
     unsafe {
-        assert v.is_not_empty();
+        assert !v.is_empty();
 
         if v.len() == 1 { return v.pop() }
 
@@ -1647,20 +1643,11 @@ pub mod traits {
     }
 }
 
-pub trait ConstVector {
-    pure fn is_empty(&self) -> bool;
-    pure fn is_not_empty(&self) -> bool;
-    pure fn len(&self) -> uint;
-}
-
-/// Extension methods for vectors
-impl<T> &[const T]: ConstVector {
+impl<T> &[const T]: Container {
     /// Returns true if a vector contains no elements
     #[inline]
     pure fn is_empty(&self) -> bool { is_empty(*self) }
-    /// Returns true if a vector contains some elements
-    #[inline]
-    pure fn is_not_empty(&self) -> bool { is_not_empty(*self) }
+
     /// Returns the length of a vector
     #[inline]
     pure fn len(&self) -> uint { len(*self) }
@@ -1949,6 +1936,11 @@ impl<T> ~[T]: OwnedVector<T> {
     }
 }
 
+impl<T> ~[T]: Mutable {
+    /// Clear the vector, removing all values.
+    fn clear(&mut self) { self.truncate(0) }
+}
+
 pub trait OwnedCopyableVector<T: Copy> {
     fn push_all(&mut self, rhs: &[const T]);
     fn grow(&mut self, n: uint, initval: &T);
@@ -2519,12 +2511,6 @@ mod tests {
     }
 
     #[test]
-    fn test_is_not_empty() {
-        assert (is_not_empty(~[0]));
-        assert (!is_not_empty::<int>(~[]));
-    }
-
-    #[test]
     fn test_len_divzero() {
         type Z = [i8 * 0];
         let v0 : &[Z] = &[];
@@ -2701,6 +2687,14 @@ mod tests {
     }
 
     #[test]
+    fn test_clear() {
+        let mut v = ~[@6,@5,@4];
+        v.clear();
+        assert(v.len() == 0);
+        // If the unsafe block didn't drop things properly, we blow up here.
+    }
+
+    #[test]
     fn test_dedup() {
         fn case(a: ~[uint], b: ~[uint]) {
             let mut v = a;
diff --git a/src/librustc/back/rpath.rs b/src/librustc/back/rpath.rs
index 005a5404b37..1896730285f 100644
--- a/src/librustc/back/rpath.rs
+++ b/src/librustc/back/rpath.rs
@@ -167,7 +167,7 @@ fn get_relative_to(abs1: &Path, abs2: &Path) -> Path {
 
     path.push_all(vec::view(split2, start_idx, len2 - 1));
 
-    if vec::is_not_empty(path) {
+    if !path.is_empty() {
         return Path("").push_many(path);
     } else {
         return Path(".");
diff --git a/src/librustc/front/test.rs b/src/librustc/front/test.rs
index 813dc268d56..75b7c70db9f 100644
--- a/src/librustc/front/test.rs
+++ b/src/librustc/front/test.rs
@@ -147,8 +147,8 @@ fn fold_item(cx: test_ctxt, &&i: @ast::item, fld: fold::ast_fold) ->
 }
 
 fn is_test_fn(i: @ast::item) -> bool {
-    let has_test_attr = attr::find_attrs_by_name(i.attrs,
-                                                 ~"test").is_not_empty();
+    let has_test_attr = !attr::find_attrs_by_name(i.attrs,
+                                                  ~"test").is_empty();
 
     fn has_test_signature(i: @ast::item) -> bool {
         match &i.node {
@@ -171,7 +171,7 @@ fn is_ignored(cx: test_ctxt, i: @ast::item) -> bool {
     let ignoreitems = attr::attr_metas(ignoreattrs);
     let cfg_metas = vec::concat(vec::filter_map(ignoreitems,
         |i| attr::get_meta_item_list(*i)));
-    return if vec::is_not_empty(ignoreitems) {
+    return if !ignoreitems.is_empty() {
         config::metas_in_cfg(/*bad*/copy cx.crate.node.config, cfg_metas)
     } else {
         false
diff --git a/src/librustc/lib/llvm.rs b/src/librustc/lib/llvm.rs
index d647e8f9a26..ed87857e384 100644
--- a/src/librustc/lib/llvm.rs
+++ b/src/librustc/lib/llvm.rs
@@ -1331,7 +1331,7 @@ fn type_to_str_inner(names: type_names, +outer0: ~[TypeRef], ty: TypeRef) ->
           Struct => {
             let n_elts = llvm::LLVMCountStructElementTypes(ty) as uint;
             let mut elts = vec::from_elem(n_elts, 0 as TypeRef);
-            if elts.is_not_empty() {
+            if !elts.is_empty() {
                 llvm::LLVMGetStructElementTypes(
                     ty, ptr::to_mut_unsafe_ptr(&mut elts[0]));
             }
diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs
index c42da9e2750..0099683102d 100644
--- a/src/librustc/metadata/creader.rs
+++ b/src/librustc/metadata/creader.rs
@@ -95,7 +95,7 @@ fn warn_if_multiple_versions(e: env, diag: span_handler,
                 }
             }));
 
-        assert matches.is_not_empty();
+        assert !matches.is_empty();
 
         if matches.len() != 1u {
             diag.handler().warn(
@@ -168,7 +168,7 @@ fn visit_item(e: env, i: @ast::item) {
                 already_added = !cstore::add_used_library(cstore,
                                                           foreign_name);
             }
-            if link_args.is_not_empty() && already_added {
+            if !link_args.is_empty() && already_added {
                 e.diag.span_fatal(i.span, ~"library '" + foreign_name +
                            ~"' already added: can't specify link_args.");
             }
diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs
index 0633ce4f2e3..79ce755137e 100644
--- a/src/librustc/metadata/encoder.rs
+++ b/src/librustc/metadata/encoder.rs
@@ -1018,8 +1018,8 @@ fn synthesize_crate_attrs(ecx: @encode_ctxt, crate: &crate) -> ~[attribute] {
     fn synthesize_link_attr(ecx: @encode_ctxt, +items: ~[@meta_item]) ->
        attribute {
 
-        assert ecx.link_meta.name.is_not_empty();
-        assert ecx.link_meta.vers.is_not_empty();
+        assert !ecx.link_meta.name.is_empty();
+        assert !ecx.link_meta.vers.is_empty();
 
         let name_item =
             attr::mk_name_value_item_str(~"name",
diff --git a/src/librustc/metadata/loader.rs b/src/librustc/metadata/loader.rs
index 8c9998ee25a..f15817551b6 100644
--- a/src/librustc/metadata/loader.rs
+++ b/src/librustc/metadata/loader.rs
@@ -179,7 +179,7 @@ fn crate_matches(crate_data: @~[u8], +metas: ~[@ast::meta_item],
                  hash: ~str) -> bool {
     let attrs = decoder::get_crate_attributes(crate_data);
     let linkage_metas = attr::find_linkage_metas(attrs);
-    if hash.is_not_empty() {
+    if !hash.is_empty() {
         let chash = decoder::get_crate_hash(crate_data);
         if chash != hash { return false; }
     }
diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs
index bd3b96d73eb..d76e1b179b1 100644
--- a/src/librustc/middle/check_match.rs
+++ b/src/librustc/middle/check_match.rs
@@ -132,7 +132,7 @@ fn raw_pat(p: @pat) -> @pat {
 }
 
 fn check_exhaustive(cx: @MatchCheckCtxt, sp: span, pats: ~[@pat]) {
-    assert(pats.is_not_empty());
+    assert(!pats.is_empty());
     let ext = match is_useful(cx, vec::map(pats, |p| ~[*p]), ~[wild()]) {
       not_useful => return, // This is good, wildcard pattern isn't reachable
       useful_ => None,
diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs
index 63161a6302e..515666445e3 100644
--- a/src/librustc/middle/lint.rs
+++ b/src/librustc/middle/lint.rs
@@ -820,7 +820,7 @@ fn check_item_path_statement(cx: ty::ctxt, it: @ast::item) {
 fn check_item_non_camel_case_types(cx: ty::ctxt, it: @ast::item) {
     fn is_camel_case(cx: ty::ctxt, ident: ast::ident) -> bool {
         let ident = cx.sess.str_of(ident);
-        assert ident.is_not_empty();
+        assert !ident.is_empty();
         let ident = ident_without_trailing_underscores(ident);
         let ident = ident_without_leading_underscores(ident);
         char::is_uppercase(str::char_at(ident, 0)) &&
diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs
index 6aed737ba33..3bf1547a7d9 100644
--- a/src/librustc/middle/trans/base.rs
+++ b/src/librustc/middle/trans/base.rs
@@ -459,7 +459,7 @@ fn get_res_dtor(ccx: @crate_ctxt, did: ast::def_id,
                 parent_id: ast::def_id, substs: ~[ty::t])
    -> ValueRef {
     let _icx = ccx.insn_ctxt("trans_res_dtor");
-    if (substs.is_not_empty()) {
+    if !substs.is_empty() {
         let did = if did.crate != ast::local_crate {
             inline::maybe_instantiate_inline(ccx, did, true)
         } else { did };
diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs
index c0c990763fb..e1a549bcc7b 100644
--- a/src/librustc/middle/typeck/check/mod.rs
+++ b/src/librustc/middle/typeck/check/mod.rs
@@ -635,7 +635,7 @@ fn check_item(ccx: @crate_ctxt, it: @ast::item) {
         } else {
             for m.items.each |item| {
                 let tpt = ty::lookup_item_type(ccx.tcx, local_def(item.id));
-                if (*tpt.bounds).is_not_empty() {
+                if !tpt.bounds.is_empty() {
                     ccx.tcx.sess.span_err(
                         item.span,
                         fmt!("foreign items may not have type parameters"));
diff --git a/src/librustc/middle/typeck/mod.rs b/src/librustc/middle/typeck/mod.rs
index 341ce666e61..142f1e989a0 100644
--- a/src/librustc/middle/typeck/mod.rs
+++ b/src/librustc/middle/typeck/mod.rs
@@ -356,7 +356,7 @@ fn check_main_fn_ty(ccx: @crate_ctxt,
                 Some(ast_map::node_item(it,_)) => {
                     match it.node {
                         ast::item_fn(_, _, ref ps, _)
-                        if vec::is_not_empty(*ps) => {
+                        if !ps.is_empty() => {
                             tcx.sess.span_err(
                                 main_span,
                                 ~"main function is not allowed \
diff --git a/src/librustdoc/attr_parser.rs b/src/librustdoc/attr_parser.rs
index aa6e40ab1d1..311245ccc34 100644
--- a/src/librustdoc/attr_parser.rs
+++ b/src/librustdoc/attr_parser.rs
@@ -127,7 +127,7 @@ pub fn parse_hidden(+attrs: ~[ast::attribute]) -> bool {
         match attr::get_meta_item_list(*meta) {
           Some(metas) => {
             let hiddens = attr::find_meta_items_by_name(metas, ~"hidden");
-            vec::is_not_empty(hiddens)
+            !hiddens.is_empty()
           }
           None => false
         }
diff --git a/src/librustdoc/desc_to_brief_pass.rs b/src/librustdoc/desc_to_brief_pass.rs
index 4074d9aa691..f53e0058b63 100644
--- a/src/librustdoc/desc_to_brief_pass.rs
+++ b/src/librustdoc/desc_to_brief_pass.rs
@@ -143,7 +143,7 @@ fn parse_desc(desc: ~str) -> Option<~str> {
 
 fn first_sentence(s: ~str) -> Option<~str> {
     let paras = paragraphs(s);
-    if vec::is_not_empty(paras) {
+    if !paras.is_empty() {
         let first_para = vec::head(paras);
         Some(str::replace(first_sentence_(first_para), ~"\n", ~" "))
     } else {
@@ -193,7 +193,7 @@ fn paragraphs(s: ~str) -> ~[~str] {
             whitespace_lines += 1;
         } else {
             if whitespace_lines > 0 {
-                if str::is_not_empty(accum) {
+                if !accum.is_empty() {
                     res += ~[accum];
                     accum = ~"";
                 }
@@ -211,7 +211,7 @@ fn paragraphs(s: ~str) -> ~[~str] {
         res
     };
 
-    if str::is_not_empty(accum) {
+    if !accum.is_empty() {
         paras + ~[accum]
     } else {
         paras
diff --git a/src/librustdoc/unindent_pass.rs b/src/librustdoc/unindent_pass.rs
index 87c249a7a18..d97dae1bbb6 100644
--- a/src/librustdoc/unindent_pass.rs
+++ b/src/librustdoc/unindent_pass.rs
@@ -78,7 +78,7 @@ fn unindent(s: ~str) -> ~str {
         }
     };
 
-    if vec::is_not_empty(lines) {
+    if !lines.is_empty() {
         let unindented = ~[str::trim(vec::head(lines))]
             + do par::map(vec::tail(lines)) |line| {
             if str::is_whitespace(*line) {
diff --git a/src/libstd/bigint.rs b/src/libstd/bigint.rs
index 678565ee325..fc783429126 100644
--- a/src/libstd/bigint.rs
+++ b/src/libstd/bigint.rs
@@ -402,7 +402,7 @@ pub impl BigUint {
     }
 
     pure fn is_zero(&self) -> bool { self.data.is_empty() }
-    pure fn is_not_zero(&self) -> bool { self.data.is_not_empty() }
+    pure fn is_not_zero(&self) -> bool { !self.data.is_empty() }
     pure fn is_positive(&self) -> bool { self.is_not_zero() }
     pure fn is_negative(&self) -> bool { false }
     pure fn is_nonpositive(&self) -> bool { self.is_zero() }
diff --git a/src/libstd/flatpipes.rs b/src/libstd/flatpipes.rs
index 534f1b7d479..ea7b2442bb9 100644
--- a/src/libstd/flatpipes.rs
+++ b/src/libstd/flatpipes.rs
@@ -599,7 +599,7 @@ pub mod bytepipes {
             } else if self.buf.is_empty() {
                 match self.port.try_recv() {
                     Some(move buf) => {
-                        assert buf.is_not_empty();
+                        assert !buf.is_empty();
                         self.buf = move buf;
                         return self.try_recv(count);
                     }
@@ -904,7 +904,7 @@ mod test {
         fn pipe_port_loader(bytes: ~[u8]
                            ) -> pod::PipePort<int> {
             let (port, chan) = pipes::stream();
-            if bytes.is_not_empty() {
+            if !bytes.is_empty() {
                 chan.send(move bytes);
             }
             pod::pipe_port(move port)
diff --git a/src/libstd/getopts.rs b/src/libstd/getopts.rs
index e3cc6797abf..b3e5854bf45 100644
--- a/src/libstd/getopts.rs
+++ b/src/libstd/getopts.rs
@@ -45,7 +45,7 @@
  *     }
  *
  *     fn main(args: ~[str]) {
- *         check vec::is_not_empty(args);
+ *         check !args.is_empty()
  *
  *         let program : str = vec::head(args);
  *
@@ -63,7 +63,7 @@
  *             return;
  *         }
  *         let output = opt_maybe_str(matches, "o");
- *         let input = if vec::is_not_empty(matches.free) {
+ *         let input = if !matches.free.is_empty() {
  *             matches.free[0]
  *         } else {
  *             print_usage(program);
@@ -357,7 +357,7 @@ fn opt_val(mm: &Matches, nm: &str) -> Optval { return opt_vals(mm, nm)[0]; }
 
 /// Returns true if an option was matched
 pub fn opt_present(mm: &Matches, nm: &str) -> bool {
-    opt_vals(mm, nm).is_not_empty()
+    !opt_vals(mm, nm).is_empty()
 }
 
 /// Returns the number of times an option was matched
diff --git a/src/libstd/list.rs b/src/libstd/list.rs
index 2d9c96b28a9..0aee29932c5 100644
--- a/src/libstd/list.rs
+++ b/src/libstd/list.rs
@@ -83,11 +83,6 @@ pub pure fn is_empty<T: Copy>(ls: @List<T>) -> bool {
     }
 }
 
-/// Returns true if the list is not empty
-pub pure fn is_not_empty<T: Copy>(ls: @List<T>) -> bool {
-    return !is_empty(ls);
-}
-
 /// Returns the length of a list
 pub pure fn len<T>(ls: @List<T>) -> uint {
     let mut count = 0u;
@@ -177,10 +172,6 @@ mod tests {
         assert is_empty(empty);
         assert !is_empty(full1);
         assert !is_empty(full2);
-
-        assert !is_not_empty(empty);
-        assert is_not_empty(full1);
-        assert is_not_empty(full2);
     }
 
     #[test]
diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs
index 56fe46251e9..ed52fbd0f5a 100644
--- a/src/libsyntax/attr.rs
+++ b/src/libsyntax/attr.rs
@@ -245,7 +245,7 @@ fn contains_name(metas: &[@ast::meta_item], name: &str) -> bool {
 }
 
 fn attrs_contains_name(attrs: &[ast::attribute], name: &str) -> bool {
-    vec::is_not_empty(find_attrs_by_name(attrs, name))
+    !find_attrs_by_name(attrs, name).is_empty()
 }
 
 fn first_attr_value_str_by_name(attrs: ~[ast::attribute], name: ~str)
diff --git a/src/libsyntax/diagnostic.rs b/src/libsyntax/diagnostic.rs
index c00b956f553..6112313cf48 100644
--- a/src/libsyntax/diagnostic.rs
+++ b/src/libsyntax/diagnostic.rs
@@ -192,7 +192,7 @@ fn diagnosticcolor(lvl: level) -> u8 {
 fn print_diagnostic(topic: ~str, lvl: level, msg: &str) {
     let use_color = term::color_supported() &&
         io::stderr().get_type() == io::Screen;
-    if str::is_not_empty(topic) {
+    if !topic.is_empty() {
         io::stderr().write_str(fmt!("%s ", topic));
     }
     if use_color {
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 7183b623ef4..0bd08250617 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -2237,7 +2237,7 @@ impl Parser {
 
         fn check_expected_item(p: Parser, current_attrs: ~[attribute]) {
             // If we have attributes then we should have an item
-            if vec::is_not_empty(current_attrs) {
+            if !current_attrs.is_empty() {
                 p.fatal(~"expected item after attrs");
             }
         }
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index 2dfb689682c..47d139b8641 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -532,7 +532,7 @@ fn print_item(s: ps, &&item: @ast::item) {
 
       ast::item_impl(tps, opt_trait, ty, methods) => {
         head(s, visibility_qualified(item.vis, ~"impl"));
-        if tps.is_not_empty() {
+        if !tps.is_empty() {
             print_type_params(s, tps);
             space(s.s);
         }
@@ -770,7 +770,7 @@ fn print_variant(s: ps, v: ast::variant) {
     match v.node.kind {
         ast::tuple_variant_kind(args) => {
             print_ident(s, v.node.name);
-            if args.is_not_empty() {
+            if !args.is_empty() {
                 popen(s);
                 fn print_variant_arg(s: ps, arg: ast::variant_arg) {
                     print_type(s, arg.ty);
@@ -1054,7 +1054,7 @@ fn print_call_post(s: ps,
                    has_block: bool,
                    blk: &Option<@ast::expr>,
                    base_args: &mut ~[@ast::expr]) {
-    if !has_block || base_args.is_not_empty() {
+    if !has_block || !base_args.is_empty() {
         popen(s);
         commasep_exprs(s, inconsistent, *base_args);
         pclose(s);
@@ -1564,7 +1564,7 @@ fn print_pat(s: ps, &&pat: @ast::pat, refutable: bool) {
         match args_ {
           None => word(s.s, ~"(*)"),
           Some(args) => {
-            if args.is_not_empty() {
+            if !args.is_empty() {
               popen(s);
               commasep(s, inconsistent, args,
                        |s, p| print_pat(s, p, refutable));
@@ -1762,7 +1762,7 @@ fn print_arg_mode(s: ps, m: ast::mode) {
 }
 
 fn print_bounds(s: ps, bounds: @~[ast::ty_param_bound]) {
-    if bounds.is_not_empty() {
+    if !bounds.is_empty() {
         word(s.s, ~":");
         let mut first = true;
         for vec::each(*bounds) |&bound| {
@@ -1855,7 +1855,7 @@ fn print_view_item(s: ps, item: @ast::view_item) {
       ast::view_item_use(id, mta, _) => {
         head(s, ~"extern mod");
         print_ident(s, id);
-        if mta.is_not_empty() {
+        if !mta.is_empty() {
             popen(s);
             commasep(s, consistent, mta, print_meta_item);
             pclose(s);
@@ -2101,7 +2101,7 @@ fn print_comment(s: ps, cmnt: comments::cmnt) {
         for cmnt.lines.each |line| {
             // Don't print empty lines because they will end up as trailing
             // whitespace
-            if str::is_not_empty(*line) { word(s.s, *line); }
+            if !line.is_empty() { word(s.s, *line); }
             hardbreak(s.s);
         }
       }
@@ -2113,7 +2113,7 @@ fn print_comment(s: ps, cmnt: comments::cmnt) {
         } else {
             ibox(s, 0u);
             for cmnt.lines.each |line| {
-                if str::is_not_empty(*line) { word(s.s, *line); }
+                if !line.is_empty() { word(s.s, *line); }
                 hardbreak(s.s);
             }
             end(s);
diff --git a/src/test/run-pass/non-boolean-pure-fns.rs b/src/test/run-pass/non-boolean-pure-fns.rs
index 620bd049053..ae0af82057f 100644
--- a/src/test/run-pass/non-boolean-pure-fns.rs
+++ b/src/test/run-pass/non-boolean-pure-fns.rs
@@ -23,7 +23,7 @@ pure fn pure_length<T: Copy>(ls: @List<T>) -> uint { pure_length_go(ls, 0u) }
 pure fn nonempty_list<T: Copy>(ls: @List<T>) -> bool { pure_length(ls) > 0u }
 
 fn safe_head<T: Copy>(ls: @List<T>) -> T {
-    assert is_not_empty(ls);
+    assert !is_empty(ls);
     return head(ls);
 }
 
diff --git a/src/test/run-pass/zip-same-length.rs b/src/test/run-pass/zip-same-length.rs
index c5a3c8baa3d..62b6ebf20ae 100644
--- a/src/test/run-pass/zip-same-length.rs
+++ b/src/test/run-pass/zip-same-length.rs
@@ -10,7 +10,7 @@
 
 // In this case, the code should compile and should
 // succeed at runtime
-use vec::{head, is_not_empty, last, same_length, zip};
+use vec::{head, last, same_length, zip};
 
 fn enum_chars(start: u8, end: u8) -> ~[char] {
     assert start < end;