Skip to content

Commit d86a31b

Browse files
committed
made feature label specific and added test for into_iter of borrowed receiver
1 parent ae688f0 commit d86a31b

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

src/libstd/sync/mpsc/mod.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ pub struct Iter<'a, T: 'a> {
309309
/// An owning iterator over messages on a receiver, this iterator will block
310310
/// whenever `next` is called, waiting for a new message, and `None` will be
311311
/// returned when the corresponding channel has hung up.
312-
#[stable(feature = "rust1_1", since = "1.1.0")]
312+
#[stable(feature = "receiver_into_iter", since = "1.1.0")]
313313
pub struct IntoIter<T> {
314314
rx: Receiver<T>
315315
}
@@ -907,7 +907,7 @@ impl<'a, T> Iterator for Iter<'a, T> {
907907
fn next(&mut self) -> Option<T> { self.rx.recv().ok() }
908908
}
909909

910-
#[stable(feature = "rust1_1", since = "1.1.0")]
910+
#[stable(feature = "receiver_into_iter", since = "1.1.0")]
911911
impl<'a, T> IntoIterator for &'a Receiver<T> {
912912
type Item = T;
913913
type IntoIter = Iter<'a, T>;
@@ -920,7 +920,7 @@ impl<T> Iterator for IntoIter<T> {
920920
fn next(&mut self) -> Option<T> { self.rx.recv().ok() }
921921
}
922922

923-
#[stable(feature = "rust1_1", since = "1.1.0")]
923+
#[stable(feature = "receiver_into_iter", since = "1.1.0")]
924924
impl <T> IntoIterator for Receiver<T> {
925925
type Item = T;
926926
type IntoIter = IntoIter<T>;
@@ -1539,9 +1539,7 @@ mod test {
15391539
}
15401540

15411541
#[test]
1542-
fn test_recv_into_iter() {
1543-
use iter::IntoIterator;
1544-
1542+
fn test_recv_into_iter_owned() {
15451543
let mut iter = {
15461544
let (tx, rx) = channel::<i32>();
15471545
tx.send(1).unwrap();
@@ -1554,6 +1552,17 @@ mod test {
15541552
assert_eq!(iter.next().is_none(), true);
15551553
}
15561554

1555+
#[test]
1556+
fn test_recv_into_iter_borrowed() {
1557+
let (tx, rx) = channel::<i32>();
1558+
tx.send(1).unwrap();
1559+
tx.send(2).unwrap();
1560+
let mut iter = (&rx).into_iter();
1561+
assert_eq!(iter.next().unwrap(), 1);
1562+
assert_eq!(iter.next().unwrap(), 2);
1563+
assert_eq!(iter.next().is_none(), true);
1564+
}
1565+
15571566
#[test]
15581567
fn try_recv_states() {
15591568
let (tx1, rx1) = channel::<i32>();

0 commit comments

Comments
 (0)