about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-05-31 01:06:40 -0700
committerbors <bors@rust-lang.org>2014-05-31 01:06:40 -0700
commitfaa7ba75a71b47151ed9b8c299d3fcc9af4207b5 (patch)
treebe5729412c9921961cdd4bc35c59107c6475acf1
parent92c43dba501be7df23a38842de2b12212212f49f (diff)
parent1959925e514d9ecd5149435a3530dbdf0191f117 (diff)
auto merge of #14553 : reem/rust/nuke-owned-vectors, r=alexcrichton
I removed all remaining deprecated owned vectors from the docs. All example tests pass.
-rw-r--r--src/doc/complement-cheatsheet.md9
-rw-r--r--src/doc/guide-macros.md2
-rw-r--r--src/doc/intro.md30
-rw-r--r--src/doc/rust.md20
-rw-r--r--src/doc/tutorial.md18
5 files changed, 41 insertions, 38 deletions
diff --git a/src/doc/complement-cheatsheet.md b/src/doc/complement-cheatsheet.md
index f14b70afc7a..1c3352a829c 100644
--- a/src/doc/complement-cheatsheet.md
+++ b/src/doc/complement-cheatsheet.md
@@ -53,9 +53,8 @@ To return a Borrowed String Slice (&str) use the str helper function
 ~~~
 use std::str;
 
-let bytes = ~[104u8,105u8];
-let x: Option<&str> = str::from_utf8(bytes);
-let y: &str = x.unwrap();
+let bytes = &[104u8,105u8];
+let x: &str = str::from_utf8(bytes).unwrap();
 ~~~
 
 To return an Owned String use the str helper function
@@ -136,7 +135,7 @@ let index: Option<uint> = str.find_str("rand");
 The [`Container`](../std/container/trait.Container.html) trait provides the `len` method.
 
 ~~~
-let u: ~[u32] = ~[0, 1, 2];
+let u: Vec<u32> = vec![0, 1, 2];
 let v: &[u32] = &[0, 1, 2, 3];
 let w: [u32, .. 5] = [0, 1, 2, 3, 4];
 
@@ -148,7 +147,7 @@ println!("u: {}, v: {}, w: {}", u.len(), v.len(), w.len()); // 3, 4, 5
 Use the [`iter`](../std/vec/trait.ImmutableVector.html#tymethod.iter) method.
 
 ~~~
-let values: ~[int] = ~[1, 2, 3, 4, 5];
+let values: Vec<int> = vec![1, 2, 3, 4, 5];
 for value in values.iter() {  // value: &int
     println!("{}", *value);
 }
diff --git a/src/doc/guide-macros.md b/src/doc/guide-macros.md
index 12a0ee6931c..b86a6aa1b61 100644
--- a/src/doc/guide-macros.md
+++ b/src/doc/guide-macros.md
@@ -85,7 +85,7 @@ To take as an argument a fragment of Rust code, write `$` followed by a name
   `foo`.)
 * `expr` (an expression. Examples: `2 + 2`; `if true then { 1 } else { 2 }`;
   `f(42)`.)
-* `ty` (a type. Examples: `int`, `~[(char, String)]`, `&T`.)
+* `ty` (a type. Examples: `int`, `Vec<(char, String)>`, `&T`.)
 * `pat` (a pattern, usually appearing in a `match` or on the left-hand side of
   a declaration. Examples: `Some(t)`; `(17, 'a')`; `_`.)
 * `block` (a sequence of actions. Example: `{ log(error, "hi"); return 12; }`)
diff --git a/src/doc/intro.md b/src/doc/intro.md
index 71356eba6d9..0e9114d7b76 100644
--- a/src/doc/intro.md
+++ b/src/doc/intro.md
@@ -198,14 +198,14 @@ Typically, tasks do not share memory but instead communicate amongst each other
 
 ```
 fn main() {
-    let numbers = ~[1,2,3];
+    let numbers = vec![1,2,3];
 
     let (tx, rx)  = channel();
     tx.send(numbers);
 
     spawn(proc() {
         let numbers = rx.recv();
-        println!("{}", numbers[0]);
+        println!("{}", *numbers.get(0));
     })
 }
 ```
@@ -237,18 +237,18 @@ try to modify the previous example to continue using the variable `numbers`:
 
 ```ignore
 fn main() {
-    let numbers = ~[1,2,3];
+    let numbers = vec![1,2,3];
 
     let (tx, rx)  = channel();
     tx.send(numbers);
 
     spawn(proc() {
         let numbers = rx.recv();
-        println!("{}", numbers[0]);
+        println!("{}", numbers.get(0));
     });
 
     // Try to print a number from the original task
-    println!("{}", numbers[0]);
+    println!("{}", *numbers.get(0));
 }
 ```
 
@@ -256,7 +256,7 @@ This will result an error indicating that the value is no longer in scope:
 
 ```notrust
 concurrency.rs:12:20: 12:27 error: use of moved value: 'numbers'
-concurrency.rs:12     println!("{}", numbers[0]);
+concurrency.rs:12     println!("{}", numbers.get(0));
                                      ^~~~~~~
 ```
 
@@ -267,7 +267,7 @@ Let's see an example that uses the `clone` method to create copies of the data:
 
 ```
 fn main() {
-    let numbers = ~[1,2,3];
+    let numbers = vec![1,2,3];
 
     for num in range(0, 3) {
         let (tx, rx)  = channel();
@@ -276,7 +276,7 @@ fn main() {
 
         spawn(proc() {
             let numbers = rx.recv();
-            println!("{:d}", numbers[num as uint]);
+            println!("{:d}", *numbers.get(num as uint));
         })
     }
 }
@@ -301,7 +301,7 @@ extern crate sync;
 use sync::Arc;
 
 fn main() {
-    let numbers = ~[1,2,3];
+    let numbers = vec![1,2,3];
     let numbers = Arc::new(numbers);
 
     for num in range(0, 3) {
@@ -310,7 +310,7 @@ fn main() {
 
         spawn(proc() {
             let numbers = rx.recv();
-            println!("{:d}", numbers[num as uint]);
+            println!("{:d}", *numbers.get(num as uint));
         })
     }
 }
@@ -348,7 +348,7 @@ extern crate sync;
 use sync::{Arc, Mutex};
 
 fn main() {
-    let numbers = ~[1,2,3];
+    let numbers = vec![1,2,3];
     let numbers_lock = Arc::new(Mutex::new(numbers));
 
     for num in range(0, 3) {
@@ -360,9 +360,13 @@ fn main() {
 
             // Take the lock, along with exclusive access to the underlying array
             let mut numbers = numbers_lock.lock();
-            numbers[num as uint] += 1;
 
-            println!("{}", numbers[num as uint]);
+            // This is ugly for now, but will be replaced by
+            // `numbers[num as uint] += 1` in the near future.
+            // See: https://github.com/mozilla/rust/issues/6515
+            *numbers.get_mut(num as uint) = *numbers.get_mut(num as uint) + 1;
+
+            println!("{}", *numbers.get(num as uint));
 
             // When `numbers` goes out of scope the lock is dropped
         })
diff --git a/src/doc/rust.md b/src/doc/rust.md
index ee37cd2126c..cde26bd8813 100644
--- a/src/doc/rust.md
+++ b/src/doc/rust.md
@@ -886,8 +886,8 @@ fn main() {
     // Equivalent to 'std::iter::range_step(0, 10, 2);'
     range_step(0, 10, 2);
 
-    // Equivalent to 'foo(~[std::option::Some(1.0), std::option::None]);'
-    foo(~[Some(1.0), None]);
+    // Equivalent to 'foo(vec![std::option::Some(1.0), std::option::None]);'
+    foo(vec![Some(1.0), None]);
 }
 ~~~~
 
@@ -995,8 +995,8 @@ the function name.
 fn iter<T>(seq: &[T], f: |T|) {
     for elt in seq.iter() { f(elt); }
 }
-fn map<T, U>(seq: &[T], f: |T| -> U) -> ~[U] {
-    let mut acc = ~[];
+fn map<T, U>(seq: &[T], f: |T| -> U) -> Vec<U> {
+    let mut acc = vec![];
     for elt in seq.iter() { acc.push(f(elt)); }
     acc
 }
@@ -1159,10 +1159,10 @@ except that they have the `extern` modifier.
 
 ~~~~
 // Declares an extern fn, the ABI defaults to "C"
-extern fn new_vec() -> ~[int] { ~[] }
+extern fn new_int() -> int { 0 }
 
 // Declares an extern fn with "stdcall" ABI
-extern "stdcall" fn new_vec_stdcall() -> ~[int] { ~[] }
+extern "stdcall" fn new_int_stdcall() -> int { 0 }
 ~~~~
 
 Unlike normal functions, extern fns have an `extern "ABI" fn()`.
@@ -1170,8 +1170,8 @@ This is the same type as the functions declared in an extern
 block.
 
 ~~~~
-# extern fn new_vec() -> ~[int] { ~[] }
-let fptr: extern "C" fn() -> ~[int] = new_vec;
+# extern fn new_int() -> int { 0 }
+let fptr: extern "C" fn() -> int = new_int;
 ~~~~
 
 Extern functions may be called directly from Rust code as Rust uses large,
@@ -1509,7 +1509,7 @@ Implementation parameters are written after the `impl` keyword.
 
 ~~~~
 # trait Seq<T> { }
-impl<T> Seq<T> for ~[T] {
+impl<T> Seq<T> for Vec<T> {
    /* ... */
 }
 impl Seq<bool> for u32 {
@@ -3347,7 +3347,7 @@ Such a definite-sized vector type is a first-class type, since its size is known
 A vector without such a size is said to be of _indefinite_ size,
 and is therefore not a _first-class_ type.
 An indefinite-size vector can only be instantiated through a pointer type,
-such as `&[T]` or `~[T]`.
+such as `&[T]` or `Vec<T>`.
 The kind of a vector type depends on the kind of its element type,
 as with other simple structural types.
 
diff --git a/src/doc/tutorial.md b/src/doc/tutorial.md
index a4c89436d50..98cb3cd86fb 100644
--- a/src/doc/tutorial.md
+++ b/src/doc/tutorial.md
@@ -2062,7 +2062,7 @@ extern crate collections;
 type Set<T> = collections::HashMap<T, ()>;
 
 struct Stack<T> {
-    elements: ~[T]
+    elements: Vec<T>
 }
 
 enum Option<T> {
@@ -2320,7 +2320,7 @@ trait Seq<T> {
     fn length(&self) -> uint;
 }
 
-impl<T> Seq<T> for ~[T] {
+impl<T> Seq<T> for Vec<T> {
     fn length(&self) -> uint { self.len() }
 }
 ~~~~
@@ -2392,7 +2392,7 @@ generic types.
 
 ~~~~
 # trait Printable { fn print(&self); }
-fn print_all<T: Printable>(printable_things: ~[T]) {
+fn print_all<T: Printable>(printable_things: Vec<T>) {
     for thing in printable_things.iter() {
         thing.print();
     }
@@ -2410,10 +2410,10 @@ as in this version of `print_all` that copies elements.
 
 ~~~
 # trait Printable { fn print(&self); }
-fn print_all<T: Printable + Clone>(printable_things: ~[T]) {
+fn print_all<T: Printable + Clone>(printable_things: Vec<T>) {
     let mut i = 0;
     while i < printable_things.len() {
-        let copy_of_thing = printable_things[i].clone();
+        let copy_of_thing = printable_things.get(i).clone();
         copy_of_thing.print();
         i += 1;
     }
@@ -2438,11 +2438,11 @@ However, consider this function:
 # fn new_circle() -> int { 1 }
 trait Drawable { fn draw(&self); }
 
-fn draw_all<T: Drawable>(shapes: ~[T]) {
+fn draw_all<T: Drawable>(shapes: Vec<T>) {
     for shape in shapes.iter() { shape.draw(); }
 }
 # let c: Circle = new_circle();
-# draw_all(~[c]);
+# draw_all(vec![c]);
 ~~~~
 
 You can call that on a vector of circles, or a vector of rectangles
@@ -2742,9 +2742,9 @@ mod farm {
 # pub type Chicken = int;
 # struct Human(int);
 # impl Human { pub fn rest(&self) { } }
-# pub fn make_me_a_farm() -> Farm { Farm { chickens: ~[], farmer: Human(0) } }
+# pub fn make_me_a_farm() -> Farm { Farm { chickens: vec![], farmer: Human(0) } }
     pub struct Farm {
-        chickens: ~[Chicken],
+        chickens: Vec<Chicken>,
         pub farmer: Human
     }