about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiletest/compiletest.rs1
-rw-r--r--src/libarena/lib.rs1
-rw-r--r--src/libcollections/lib.rs1
-rw-r--r--src/libextra/lib.rs1
-rw-r--r--src/libflate/lib.rs1
-rw-r--r--src/libgetopts/lib.rs1
-rw-r--r--src/libglob/lib.rs1
-rw-r--r--src/libgreen/lib.rs1
-rw-r--r--src/libnative/lib.rs1
-rw-r--r--src/libnum/lib.rs1
-rw-r--r--src/librand/lib.rs1
-rw-r--r--src/librustc/lib.rs1
-rw-r--r--src/librustc/middle/lint.rs23
-rw-r--r--src/librustdoc/lib.rs1
-rw-r--r--src/librustdoc/test.rs3
-rw-r--r--src/librustuv/lib.rs1
-rw-r--r--src/libsemver/lib.rs2
-rw-r--r--src/libserialize/lib.rs1
-rw-r--r--src/libstd/lib.rs1
-rw-r--r--src/libstd/vec_ng.rs6
-rw-r--r--src/libsync/lib.rs2
-rw-r--r--src/libsyntax/lib.rs1
-rw-r--r--src/libterm/lib.rs1
-rw-r--r--src/libtest/lib.rs1
-rw-r--r--src/libtime/lib.rs1
-rw-r--r--src/libuuid/lib.rs2
-rw-r--r--src/test/compile-fail/issue-2150.rs1
-rw-r--r--src/test/compile-fail/issue-8727.rs1
-rw-r--r--src/test/compile-fail/lint-deprecated-owned-vector.rs17
-rw-r--r--src/test/compile-fail/lint-heap-memory.rs1
-rw-r--r--src/test/compile-fail/lint-unused-imports.rs1
-rw-r--r--src/test/compile-fail/lint-unused-mut-variables.rs1
-rw-r--r--src/test/compile-fail/lint-unused-unsafe.rs1
-rw-r--r--src/test/run-pass/ifmt.rs1
34 files changed, 79 insertions, 3 deletions
diff --git a/src/compiletest/compiletest.rs b/src/compiletest/compiletest.rs
index 5f8c63d6071..35e1c242fe2 100644
--- a/src/compiletest/compiletest.rs
+++ b/src/compiletest/compiletest.rs
@@ -12,6 +12,7 @@
 
 #[allow(non_camel_case_types)];
 #[deny(warnings)];
+#[allow(deprecated_owned_vector)];
 
 extern crate test;
 extern crate getopts;
diff --git a/src/libarena/lib.rs b/src/libarena/lib.rs
index 2ccb8e9c4c2..895c498aa87 100644
--- a/src/libarena/lib.rs
+++ b/src/libarena/lib.rs
@@ -21,6 +21,7 @@
 #[license = "MIT/ASL2"];
 #[allow(missing_doc)];
 #[feature(managed_boxes)];
+#[allow(deprecated_owned_vector)];
 
 extern crate collections;
 
diff --git a/src/libcollections/lib.rs b/src/libcollections/lib.rs
index a087180d9a5..b5199913f02 100644
--- a/src/libcollections/lib.rs
+++ b/src/libcollections/lib.rs
@@ -22,6 +22,7 @@
 // NOTE remove the following two attributes after the next snapshot.
 #[allow(unrecognized_lint)];
 #[allow(default_type_param_usage)];
+#[allow(deprecated_owned_vector)];
 
 extern crate rand;
 
diff --git a/src/libextra/lib.rs b/src/libextra/lib.rs
index 32de7bf0866..4bb6b0050b8 100644
--- a/src/libextra/lib.rs
+++ b/src/libextra/lib.rs
@@ -31,6 +31,7 @@ Rust extras are part of the standard Rust distribution.
 
 #[feature(macro_rules, globs, managed_boxes, asm, default_type_params)];
 
+#[allow(deprecated_owned_vector)];
 #[deny(non_camel_case_types)];
 #[deny(missing_doc)];
 
diff --git a/src/libflate/lib.rs b/src/libflate/lib.rs
index 6bf5092bb2d..e0da51a75af 100644
--- a/src/libflate/lib.rs
+++ b/src/libflate/lib.rs
@@ -90,6 +90,7 @@ pub fn inflate_bytes_zlib(bytes: &[u8]) -> CVec<u8> {
 
 #[cfg(test)]
 mod tests {
+    #[allow(deprecated_owned_vector)];
     extern crate rand;
 
     use super::{inflate_bytes, deflate_bytes};
diff --git a/src/libgetopts/lib.rs b/src/libgetopts/lib.rs
index b1b8351b040..007557c1d58 100644
--- a/src/libgetopts/lib.rs
+++ b/src/libgetopts/lib.rs
@@ -81,6 +81,7 @@
 #[crate_type = "dylib"];
 #[license = "MIT/ASL2"];
 #[allow(missing_doc)];
+#[allow(deprecated_owned_vector)];
 
 #[feature(globs)];
 
diff --git a/src/libglob/lib.rs b/src/libglob/lib.rs
index a33d041ab20..126eebaa1d3 100644
--- a/src/libglob/lib.rs
+++ b/src/libglob/lib.rs
@@ -27,6 +27,7 @@
 #[crate_type = "rlib"];
 #[crate_type = "dylib"];
 #[license = "MIT/ASL2"];
+#[allow(deprecated_owned_vector)];
 
 use std::cell::Cell;
 use std::{cmp, os, path};
diff --git a/src/libgreen/lib.rs b/src/libgreen/lib.rs
index 93b7ec2aecf..c697b1c8fd7 100644
--- a/src/libgreen/lib.rs
+++ b/src/libgreen/lib.rs
@@ -174,6 +174,7 @@
 // NB this does *not* include globs, please keep it that way.
 #[feature(macro_rules)];
 #[allow(visible_private_types)];
+#[allow(deprecated_owned_vector)];
 
 extern crate rand;
 
diff --git a/src/libnative/lib.rs b/src/libnative/lib.rs
index 4b6942a1083..b7a38dec1ac 100644
--- a/src/libnative/lib.rs
+++ b/src/libnative/lib.rs
@@ -50,6 +50,7 @@
       html_root_url = "http://static.rust-lang.org/doc/master")];
 #[deny(unused_result, unused_must_use)];
 #[allow(non_camel_case_types)];
+#[allow(deprecated_owned_vector)];
 
 // NB this crate explicitly does *not* allow glob imports, please seriously
 //    consider whether they're needed before adding that feature here (the
diff --git a/src/libnum/lib.rs b/src/libnum/lib.rs
index 8ff042ba362..1cbb7a279a5 100644
--- a/src/libnum/lib.rs
+++ b/src/libnum/lib.rs
@@ -14,6 +14,7 @@
 #[crate_type = "rlib"];
 #[crate_type = "dylib"];
 #[license = "MIT/ASL2"];
+#[allow(deprecated_owned_vector)];
 
 extern crate rand;
 
diff --git a/src/librand/lib.rs b/src/librand/lib.rs
index 87a18497b8a..70e5bb92816 100644
--- a/src/librand/lib.rs
+++ b/src/librand/lib.rs
@@ -71,6 +71,7 @@ println!("{:?}", tuple_ptr)
       html_root_url = "http://static.rust-lang.org/doc/master")];
 
 #[feature(macro_rules, managed_boxes)];
+#[allow(deprecated_owned_vector)];
 
 use std::cast;
 use std::kinds::marker;
diff --git a/src/librustc/lib.rs b/src/librustc/lib.rs
index 764eba56dae..b8c1bdd1b4d 100644
--- a/src/librustc/lib.rs
+++ b/src/librustc/lib.rs
@@ -28,6 +28,7 @@ This API is completely unstable and subject to change.
       html_root_url = "http://static.rust-lang.org/doc/master")];
 
 #[allow(deprecated)];
+#[allow(deprecated_owned_vector)];
 #[feature(macro_rules, globs, struct_variant, managed_boxes)];
 #[feature(quote, default_type_params)];
 
diff --git a/src/librustc/middle/lint.rs b/src/librustc/middle/lint.rs
index 31d705dc6aa..ae260053355 100644
--- a/src/librustc/middle/lint.rs
+++ b/src/librustc/middle/lint.rs
@@ -113,6 +113,8 @@ pub enum Lint {
     UnusedMustUse,
     UnusedResult,
 
+    DeprecatedOwnedVector,
+
     Warnings,
 }
 
@@ -397,7 +399,14 @@ static lint_table: &'static [(&'static str, LintSpec)] = &[
         lint: UnusedResult,
         desc: "unused result of an expression in a statement",
         default: allow,
-    })
+    }),
+
+    ("deprecated_owned_vector",
+     LintSpec {
+        lint: DeprecatedOwnedVector,
+        desc: "use of a `~[T]` vector",
+        default: warn
+    }),
 ];
 
 /*
@@ -1107,6 +1116,17 @@ fn check_unused_result(cx: &Context, s: &ast::Stmt) {
     }
 }
 
+fn check_deprecated_owned_vector(cx: &Context, e: &ast::Expr) {
+    let t = ty::expr_ty(cx.tcx, e);
+    match ty::get(t).sty {
+        ty::ty_vec(_, ty::vstore_uniq) => {
+            cx.span_lint(DeprecatedOwnedVector, e.span,
+                         "use of deprecated `~[]` vector; replaced by `std::vec_ng::Vec`")
+        }
+        _ => {}
+    }
+}
+
 fn check_item_non_camel_case_types(cx: &Context, it: &ast::Item) {
     fn is_camel_case(ident: ast::Ident) -> bool {
         let ident = token::get_ident(ident);
@@ -1634,6 +1654,7 @@ impl<'a> Visitor<()> for Context<'a> {
 
         check_type_limits(self, e);
         check_unused_casts(self, e);
+        check_deprecated_owned_vector(self, e);
 
         visit::walk_expr(self, e, ());
     }
diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs
index e6b4e2c0943..c4fef224552 100644
--- a/src/librustdoc/lib.rs
+++ b/src/librustdoc/lib.rs
@@ -14,6 +14,7 @@
 #[crate_type = "dylib"];
 #[crate_type = "rlib"];
 
+#[allow(deprecated_owned_vector)];
 #[feature(globs, struct_variant, managed_boxes, macro_rules)];
 
 extern crate syntax;
diff --git a/src/librustdoc/test.rs b/src/librustdoc/test.rs
index 66dc9567e75..24dc3480544 100644
--- a/src/librustdoc/test.rs
+++ b/src/librustdoc/test.rs
@@ -166,6 +166,9 @@ fn maketest(s: &str, cratename: &str, loose_feature_gating: bool) -> ~str {
     let mut prog = ~r"
 #[deny(warnings)];
 #[allow(unused_variable, dead_assignment, unused_mut, attribute_usage, dead_code)];
+
+// FIXME: remove when ~[] disappears from tests.
+#[allow(deprecated_owned_vector)];
 ";
 
     if loose_feature_gating {
diff --git a/src/librustuv/lib.rs b/src/librustuv/lib.rs
index 890f44faabc..e2d13d65da0 100644
--- a/src/librustuv/lib.rs
+++ b/src/librustuv/lib.rs
@@ -42,6 +42,7 @@ via `close` and `delete` methods.
 #[feature(macro_rules)];
 #[deny(unused_result, unused_must_use)];
 #[allow(visible_private_types)];
+#[allow(deprecated_owned_vector)];
 
 #[cfg(test)] extern crate green;
 
diff --git a/src/libsemver/lib.rs b/src/libsemver/lib.rs
index 700dc986794..3ffafbada91 100644
--- a/src/libsemver/lib.rs
+++ b/src/libsemver/lib.rs
@@ -33,6 +33,8 @@
 #[crate_type = "dylib"];
 #[license = "MIT/ASL2"];
 
+#[allow(deprecated_owned_vector)];
+
 use std::char;
 use std::cmp;
 use std::fmt;
diff --git a/src/libserialize/lib.rs b/src/libserialize/lib.rs
index 028e1e742c4..2f4996a9268 100644
--- a/src/libserialize/lib.rs
+++ b/src/libserialize/lib.rs
@@ -25,6 +25,7 @@ Core encoding and decoding interfaces.
 // NOTE remove the following two attributes after the next snapshot.
 #[allow(unrecognized_lint)];
 #[allow(default_type_param_usage)];
+#[allow(deprecated_owned_vector)];
 
 // test harness access
 #[cfg(test)]
diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs
index a873eccfb03..24a77b71fba 100644
--- a/src/libstd/lib.rs
+++ b/src/libstd/lib.rs
@@ -65,6 +65,7 @@
 #[deny(non_camel_case_types)];
 #[deny(missing_doc)];
 #[allow(unknown_features)];
+#[allow(deprecated_owned_vector)];
 
 // When testing libstd, bring in libuv as the I/O backend so tests can print
 // things and all of the std::io tests have an I/O interface to run on top
diff --git a/src/libstd/vec_ng.rs b/src/libstd/vec_ng.rs
index 199fc68be47..7b77a4b60fb 100644
--- a/src/libstd/vec_ng.rs
+++ b/src/libstd/vec_ng.rs
@@ -8,8 +8,10 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-// Migrate documentation over from `std::vec` when it is removed.
-#[doc(hidden)];
+// Migrate documentation over from `std::vec` progressively.  (This is
+// shown in docs so that people have something to refer too, even if
+// the page is rather empty.)
+#[allow(missing_doc)];
 
 use cast::{forget, transmute};
 use clone::Clone;
diff --git a/src/libsync/lib.rs b/src/libsync/lib.rs
index dd6ae7c77f5..9a297150db4 100644
--- a/src/libsync/lib.rs
+++ b/src/libsync/lib.rs
@@ -17,6 +17,8 @@
 #[crate_type = "dylib"];
 #[license = "MIT/ASL2"];
 
+#[allow(deprecated_owned_vector)];
+
 pub use arc::{Arc, MutexArc, RWArc, RWWriteMode, RWReadMode, ArcCondvar, CowArc};
 pub use sync::{Mutex, RWLock, Condvar, Semaphore, RWLockWriteMode,
                RWLockReadMode, Barrier, one, mutex};
diff --git a/src/libsyntax/lib.rs b/src/libsyntax/lib.rs
index 0d465e8475c..e84d43117e5 100644
--- a/src/libsyntax/lib.rs
+++ b/src/libsyntax/lib.rs
@@ -32,6 +32,7 @@ This API is completely unstable and subject to change.
 
 #[allow(deprecated)];
 #[deny(non_camel_case_types)];
+#[allow(deprecated_owned_vector)];
 
 extern crate serialize;
 extern crate term;
diff --git a/src/libterm/lib.rs b/src/libterm/lib.rs
index 903fede5faa..ca142ab8697 100644
--- a/src/libterm/lib.rs
+++ b/src/libterm/lib.rs
@@ -22,6 +22,7 @@
 #[feature(macro_rules)];
 #[deny(non_camel_case_types)];
 #[allow(missing_doc)];
+#[allow(deprecated_owned_vector)];
 
 extern crate collections;
 
diff --git a/src/libtest/lib.rs b/src/libtest/lib.rs
index 44488f86ae4..a3e68591d50 100644
--- a/src/libtest/lib.rs
+++ b/src/libtest/lib.rs
@@ -30,6 +30,7 @@
 #[crate_type = "dylib"];
 
 #[feature(asm)];
+#[allow(deprecated_owned_vector)];
 
 extern crate collections;
 extern crate extra;
diff --git a/src/libtime/lib.rs b/src/libtime/lib.rs
index 7ac338a92a4..019ad2c4b4c 100644
--- a/src/libtime/lib.rs
+++ b/src/libtime/lib.rs
@@ -14,6 +14,7 @@
 #[license = "MIT/ASL2"];
 
 #[allow(missing_doc)];
+#[allow(deprecated_owned_vector)];
 
 extern crate serialize;
 
diff --git a/src/libuuid/lib.rs b/src/libuuid/lib.rs
index 922393d8bb3..2fa6c0906c7 100644
--- a/src/libuuid/lib.rs
+++ b/src/libuuid/lib.rs
@@ -59,6 +59,8 @@ Examples of string representations:
 #[crate_type = "dylib"];
 #[license = "MIT/ASL2"];
 
+#[allow(deprecated_owned_vector)];
+
 #[feature(default_type_params)];
 
 // NOTE remove the following two attributes after the next snapshot.
diff --git a/src/test/compile-fail/issue-2150.rs b/src/test/compile-fail/issue-2150.rs
index 2c54b622021..b5269519bb7 100644
--- a/src/test/compile-fail/issue-2150.rs
+++ b/src/test/compile-fail/issue-2150.rs
@@ -11,6 +11,7 @@
 #[deny(unreachable_code)];
 #[allow(unused_variable)];
 #[allow(dead_code)];
+#[allow(deprecated_owned_vector)];
 
 fn fail_len(v: ~[int]) -> uint {
     let mut i = 3;
diff --git a/src/test/compile-fail/issue-8727.rs b/src/test/compile-fail/issue-8727.rs
index fca59ed74ee..be676becd5a 100644
--- a/src/test/compile-fail/issue-8727.rs
+++ b/src/test/compile-fail/issue-8727.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+#[allow(deprecated_owned_vector)];
 
 // Verify the compiler fails with an error on infinite function
 // recursions.
diff --git a/src/test/compile-fail/lint-deprecated-owned-vector.rs b/src/test/compile-fail/lint-deprecated-owned-vector.rs
new file mode 100644
index 00000000000..c21ca87e244
--- /dev/null
+++ b/src/test/compile-fail/lint-deprecated-owned-vector.rs
@@ -0,0 +1,17 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#[deny(deprecated_owned_vector)];
+
+fn main() {
+    ~[1]; //~ ERROR use of deprecated `~[]`
+    //~^ ERROR use of deprecated `~[]`
+    std::vec::with_capacity::<int>(10); //~ ERROR use of deprecated `~[]`
+}
diff --git a/src/test/compile-fail/lint-heap-memory.rs b/src/test/compile-fail/lint-heap-memory.rs
index fa359dcd538..4c178cdf65c 100644
--- a/src/test/compile-fail/lint-heap-memory.rs
+++ b/src/test/compile-fail/lint-heap-memory.rs
@@ -11,6 +11,7 @@
 #[feature(managed_boxes)];
 #[forbid(heap_memory)];
 #[allow(dead_code)];
+#[allow(deprecated_owned_vector)];
 
 struct Foo {
     x: @int //~ ERROR type uses managed
diff --git a/src/test/compile-fail/lint-unused-imports.rs b/src/test/compile-fail/lint-unused-imports.rs
index 8d294af3e3e..c20546d8590 100644
--- a/src/test/compile-fail/lint-unused-imports.rs
+++ b/src/test/compile-fail/lint-unused-imports.rs
@@ -11,6 +11,7 @@
 #[feature(globs)];
 #[deny(unused_imports)];
 #[allow(dead_code)];
+#[allow(deprecated_owned_vector)];
 
 use cal = bar::c::cc;
 
diff --git a/src/test/compile-fail/lint-unused-mut-variables.rs b/src/test/compile-fail/lint-unused-mut-variables.rs
index 271aedd3f6a..6b6311739f0 100644
--- a/src/test/compile-fail/lint-unused-mut-variables.rs
+++ b/src/test/compile-fail/lint-unused-mut-variables.rs
@@ -13,6 +13,7 @@
 #[allow(dead_assignment)];
 #[allow(unused_variable)];
 #[allow(dead_code)];
+#[allow(deprecated_owned_vector)];
 #[deny(unused_mut)];
 
 fn main() {
diff --git a/src/test/compile-fail/lint-unused-unsafe.rs b/src/test/compile-fail/lint-unused-unsafe.rs
index 96a4c2adca3..de01a711a3e 100644
--- a/src/test/compile-fail/lint-unused-unsafe.rs
+++ b/src/test/compile-fail/lint-unused-unsafe.rs
@@ -12,6 +12,7 @@
 
 #[allow(dead_code)];
 #[deny(unused_unsafe)];
+#[allow(deprecated_owned_vector)];
 
 mod foo {
     extern {
diff --git a/src/test/run-pass/ifmt.rs b/src/test/run-pass/ifmt.rs
index 564f7b43426..753e98422b3 100644
--- a/src/test/run-pass/ifmt.rs
+++ b/src/test/run-pass/ifmt.rs
@@ -13,6 +13,7 @@
 #[feature(macro_rules)];
 #[deny(warnings)];
 #[allow(unused_must_use)];
+#[allow(deprecated_owned_vector)];
 
 use std::fmt;
 use std::io::MemWriter;