@@ -309,7 +309,7 @@ pub struct Iter<'a, T: 'a> {
309
309
/// An owning iterator over messages on a receiver, this iterator will block
310
310
/// whenever `next` is called, waiting for a new message, and `None` will be
311
311
/// 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" ) ]
313
313
pub struct IntoIter < T > {
314
314
rx : Receiver < T >
315
315
}
@@ -907,7 +907,7 @@ impl<'a, T> Iterator for Iter<'a, T> {
907
907
fn next ( & mut self ) -> Option < T > { self . rx . recv ( ) . ok ( ) }
908
908
}
909
909
910
- #[ stable( feature = "rust1_1 " , since = "1.1.0" ) ]
910
+ #[ stable( feature = "receiver_into_iter " , since = "1.1.0" ) ]
911
911
impl < ' a , T > IntoIterator for & ' a Receiver < T > {
912
912
type Item = T ;
913
913
type IntoIter = Iter < ' a , T > ;
@@ -920,7 +920,7 @@ impl<T> Iterator for IntoIter<T> {
920
920
fn next ( & mut self ) -> Option < T > { self . rx . recv ( ) . ok ( ) }
921
921
}
922
922
923
- #[ stable( feature = "rust1_1 " , since = "1.1.0" ) ]
923
+ #[ stable( feature = "receiver_into_iter " , since = "1.1.0" ) ]
924
924
impl < T > IntoIterator for Receiver < T > {
925
925
type Item = T ;
926
926
type IntoIter = IntoIter < T > ;
@@ -1539,9 +1539,7 @@ mod test {
1539
1539
}
1540
1540
1541
1541
#[ test]
1542
- fn test_recv_into_iter ( ) {
1543
- use iter:: IntoIterator ;
1544
-
1542
+ fn test_recv_into_iter_owned ( ) {
1545
1543
let mut iter = {
1546
1544
let ( tx, rx) = channel :: < i32 > ( ) ;
1547
1545
tx. send ( 1 ) . unwrap ( ) ;
@@ -1554,6 +1552,17 @@ mod test {
1554
1552
assert_eq ! ( iter. next( ) . is_none( ) , true ) ;
1555
1553
}
1556
1554
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
+
1557
1566
#[ test]
1558
1567
fn try_recv_states ( ) {
1559
1568
let ( tx1, rx1) = channel :: < i32 > ( ) ;
0 commit comments