Skip to content

Commit 00dc001

Browse files
committed
---
yaml --- r: 50667 b: refs/heads/try c: c64a5d2 h: refs/heads/master i: 50665: ce2ccb1 50663: 2d73f08 v: v3
1 parent 5a3efd4 commit 00dc001

File tree

4 files changed

+34
-12
lines changed

4 files changed

+34
-12
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 5f13e9ccc2e3328d4cd8ca49f84e6840dd998346
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: f7a2371c176663d59062ec5158f39faecba45768
5-
refs/heads/try: 34113dcf6a45d445bf557e6aa85dbc35bfd1f12a
5+
refs/heads/try: c64a5d2d37a91e2151da41324a7f5dfc2b9c05d3
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/src/libcore/iter.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ pub trait ReverseIter<A>: BaseIter<A> {
3131
pure fn each_reverse(&self, blk: &fn(&A) -> bool);
3232
}
3333

34+
pub trait MutableIter<A>: BaseIter<A> {
35+
fn each_mut(&mut self, blk: &fn(&mut A) -> bool);
36+
}
37+
3438
pub trait ExtendedIter<A> {
3539
pure fn eachi(&self, blk: &fn(uint, v: &A) -> bool);
3640
pure fn all(&self, blk: &fn(&A) -> bool) -> bool;

branches/try/src/libcore/prelude.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@ pub use clone::Clone;
2727
pub use cmp::{Eq, Ord, TotalOrd, Ordering, Less, Equal, Greater};
2828
pub use container::{Container, Mutable, Map, Set};
2929
pub use hash::Hash;
30-
pub use iter::{BaseIter, ReverseIter, ExtendedIter, EqIter, CopyableIter};
31-
pub use iter::{CopyableOrderedIter, CopyableNonstrictIter, Times};
30+
pub use iter::{BaseIter, ReverseIter, MutableIter, ExtendedIter, EqIter};
31+
pub use iter::{CopyableIter, CopyableOrderedIter, CopyableNonstrictIter};
32+
pub use iter::Times;
3233
pub use num::NumCast;
3334
pub use path::GenericPath;
3435
pub use path::Path;
@@ -43,10 +44,6 @@ pub use vec::{CopyableVector, ImmutableVector};
4344
pub use vec::{ImmutableEqVector, ImmutableCopyableVector};
4445
pub use vec::{OwnedVector, OwnedCopyableVector};
4546

46-
/* Reexported runtime types */
47-
pub use comm::{stream, Port, Chan, GenericChan, GenericSmartChan, GenericPort, Peekable};
48-
pub use task::spawn;
49-
5047
/* Reexported modules */
5148

5249
pub use at_vec;

branches/try/src/libcore/vec.rs

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,7 +1358,7 @@ pub pure fn each<T>(v: &r/[T], f: &fn(&r/T) -> bool) {
13581358
/// a vector with mutable contents and you would like
13591359
/// to mutate the contents as you iterate.
13601360
#[inline(always)]
1361-
pub fn each_mut<T>(v: &mut [T], f: &fn(elem: &mut T) -> bool) {
1361+
pub fn each_mut<T>(v: &'r mut [T], f: &fn(elem: &'r mut T) -> bool) {
13621362
let mut i = 0;
13631363
let n = v.len();
13641364
while i < n {
@@ -2282,11 +2282,9 @@ pub mod bytes {
22822282
// ___________________________________________________________________________
22832283
// ITERATION TRAIT METHODS
22842284

2285-
impl<A> iter::BaseIter<A> for &self/[A] {
2285+
impl<A> iter::BaseIter<A> for &'self [A] {
22862286
#[inline(always)]
2287-
pub pure fn each(&self, blk: &fn(v: &'self A) -> bool) {
2288-
each(*self, blk)
2289-
}
2287+
pure fn each(&self, blk: &fn(v: &'self A) -> bool) { each(*self, blk) }
22902288
#[inline(always)]
22912289
pure fn size_hint(&self) -> Option<uint> { Some(self.len()) }
22922290
}
@@ -2307,6 +2305,29 @@ impl<A> iter::BaseIter<A> for @[A] {
23072305
pure fn size_hint(&self) -> Option<uint> { Some(self.len()) }
23082306
}
23092307

2308+
impl<A> iter::MutableIter<A> for &'self mut [A] {
2309+
#[inline(always)]
2310+
fn each_mut(&mut self, blk: &fn(v: &'self mut A) -> bool) {
2311+
each_mut(*self, blk)
2312+
}
2313+
}
2314+
2315+
// FIXME(#4148): This should be redundant
2316+
impl<A> iter::MutableIter<A> for ~[A] {
2317+
#[inline(always)]
2318+
fn each_mut(&mut self, blk: &fn(v: &'self mut A) -> bool) {
2319+
each_mut(*self, blk)
2320+
}
2321+
}
2322+
2323+
// FIXME(#4148): This should be redundant
2324+
impl<A> iter::MutableIter<A> for @mut [A] {
2325+
#[inline(always)]
2326+
fn each_mut(&mut self, blk: &fn(v: &mut A) -> bool) {
2327+
each_mut(*self, blk)
2328+
}
2329+
}
2330+
23102331
impl<A> iter::ExtendedIter<A> for &self/[A] {
23112332
pub pure fn eachi(&self, blk: &fn(uint, v: &A) -> bool) {
23122333
iter::eachi(self, blk)

0 commit comments

Comments
 (0)