@@ -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" ) ]
313313pub 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" ) ]
911911impl < ' 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" ) ]
924924impl < 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