From d3907b4d5747bb1dd67ded50f6141a1c0131f2dd Mon Sep 17 00:00:00 2001 From: Andrew Barchuk Date: Tue, 13 Jan 2015 23:22:32 +0200 Subject: [PATCH 1/3] Fix intro concurrency examples compilation warns * Use range notation instead of deprecated `range()` * Remove deprecated `u` integer suffixes used in ranges * Replace deprecated `i` integer suffixes with `is` for vector numbers `Thread::spawn()` still gives "use of unstable item" warning which I hadn't found a way to fix. --- src/doc/intro.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/doc/intro.md b/src/doc/intro.md index d93b680ae6de7..b5e5fab7469c0 100644 --- a/src/doc/intro.md +++ b/src/doc/intro.md @@ -424,11 +424,11 @@ Let's see an example. This Rust code will not compile: use std::thread::Thread; fn main() { - let mut numbers = vec![1i, 2i, 3i]; + let mut numbers = vec![1is, 2is, 3is]; - for i in range(0u, 3u) { + for i in 0..3 { Thread::spawn(move || { - for j in range(0, 3) { numbers[j] += 1 } + for j in 0..3 { numbers[j] += 1 } }); } } @@ -478,9 +478,9 @@ use std::thread::Thread; use std::sync::{Arc,Mutex}; fn main() { - let numbers = Arc::new(Mutex::new(vec![1i, 2i, 3i])); + let numbers = Arc::new(Mutex::new(vec![1is, 2is, 3is])); - for i in range(0u, 3u) { + for i in 0..3 { let number = numbers.clone(); Thread::spawn(move || { let mut array = number.lock().unwrap(); From 84d4236b736879e65d70241215f955e2890c5009 Mon Sep 17 00:00:00 2001 From: Andrew Barchuk Date: Wed, 14 Jan 2015 21:59:46 +0200 Subject: [PATCH 2/3] Remove Thread::detach() call from intro example The mentioned method are no longer part of Thread. Spawned threads are detached by default as of now. --- src/doc/intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/intro.md b/src/doc/intro.md index b5e5fab7469c0..98ce6e1466daa 100644 --- a/src/doc/intro.md +++ b/src/doc/intro.md @@ -546,7 +546,7 @@ fn main() { for i in range(0u, 3) { Thread::spawn(move || { println!("{}", vec[i]); - }).detach(); + }); } } ``` From 37970f1831b0e65605c9d3780793b805848807e2 Mon Sep 17 00:00:00 2001 From: Andrew Barchuk Date: Wed, 14 Jan 2015 22:28:48 +0200 Subject: [PATCH 3/3] Replace obsolete constructions in into examples Replace deprecated integer suffixes. Remove integer type notations altogether where possible. Replace uses of deprecated `range()` function with range notation. --- src/doc/intro.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/doc/intro.md b/src/doc/intro.md index 98ce6e1466daa..3487738467fbc 100644 --- a/src/doc/intro.md +++ b/src/doc/intro.md @@ -424,7 +424,7 @@ Let's see an example. This Rust code will not compile: use std::thread::Thread; fn main() { - let mut numbers = vec![1is, 2is, 3is]; + let mut numbers = vec![1is, 2, 3]; for i in 0..3 { Thread::spawn(move || { @@ -438,15 +438,15 @@ It gives us this error: ```text 6:71 error: capture of moved value: `numbers` - for j in range(0, 3) { numbers[j] += 1 } - ^~~~~~~ + for j in 0..3 { numbers[j] += 1 } + ^~~~~~~ 7:50 note: `numbers` moved into closure environment here spawn(move || { - for j in range(0, 3) { numbers[j] += 1 } + for j in 0..3 { numbers[j] += 1 } }); 6:79 error: cannot assign to immutable dereference (dereference is implicit, due to indexing) - for j in range(0, 3) { numbers[j] += 1 } - ^~~~~~~~~~~~~~~ + for j in 0..3 { numbers[j] += 1 } + ^~~~~~~~~~~~~~~ ``` It mentions that "numbers moved into closure environment". Because we @@ -478,7 +478,7 @@ use std::thread::Thread; use std::sync::{Arc,Mutex}; fn main() { - let numbers = Arc::new(Mutex::new(vec![1is, 2is, 3is])); + let numbers = Arc::new(Mutex::new(vec![1is, 2, 3])); for i in 0..3 { let number = numbers.clone(); @@ -541,9 +541,9 @@ safety check that makes this an error about moved values: use std::thread::Thread; fn main() { - let vec = vec![1i, 2, 3]; + let vec = vec![1is, 2, 3]; - for i in range(0u, 3) { + for i in 0us..3 { Thread::spawn(move || { println!("{}", vec[i]); }); @@ -557,9 +557,9 @@ you can remove it. As an example, this is a poor way to iterate through a vector: ```{rust} -let vec = vec![1i, 2, 3]; +let vec = vec![1, 2, 3]; -for i in range(0u, vec.len()) { +for i in 0..vec.len() { println!("{}", vec[i]); } ``` @@ -569,7 +569,7 @@ that we don't try to access an invalid index. However, we can remove this while retaining safety. The answer is iterators: ```{rust} -let vec = vec![1i, 2, 3]; +let vec = vec![1, 2, 3]; for x in vec.iter() { println!("{}", x);