@@ -190,7 +190,7 @@ pure fn from_fn<T>(n_elts: uint, op: iter::InitOp<T>) -> ~[T] {
190
190
let mut i: uint = 0 u;
191
191
while i < n_elts unsafe { unsafe :: set ( v, i, op ( i) ) ; i += 1 u; }
192
192
unsafe { unsafe :: set_len ( v, n_elts) ; }
193
- return v ;
193
+ move v
194
194
}
195
195
196
196
/**
@@ -207,7 +207,7 @@ pure fn from_elem<T: Copy>(n_elts: uint, t: T) -> ~[T] {
207
207
while i < n_elts { unsafe :: set ( v, i, t) ; i += 1 u; }
208
208
unsafe { unsafe :: set_len ( v, n_elts) ; }
209
209
}
210
- return v ;
210
+ move v
211
211
}
212
212
213
213
/// Creates a new unique vector with the same contents as the slice
@@ -231,8 +231,8 @@ pure fn from_slice<T: Copy>(t: &[T]) -> ~[T] {
231
231
pure fn build_sized < A > ( size : uint , builder : fn ( push : pure fn( +A ) ) ) -> ~[ A ] {
232
232
let mut vec = ~[ ] ;
233
233
unchecked { reserve( vec, size) ; }
234
- builder ( |+x| unchecked { push( vec, x) } ) ;
235
- return vec;
234
+ builder ( |+x| unchecked { push( vec, move x) } ) ;
235
+ move vec
236
236
}
237
237
238
238
/**
@@ -325,7 +325,7 @@ pure fn slice<T: Copy>(v: &[const T], start: uint, end: uint) -> ~[T] {
325
325
unchecked {
326
326
for uint:: range ( start, end) |i| { vec:: push ( result, v[ i] ) }
327
327
}
328
- return result;
328
+ move result
329
329
}
330
330
331
331
/// Return a slice that points into another slice.
@@ -381,7 +381,7 @@ fn split<T: Copy>(v: &[T], f: fn(T) -> bool) -> ~[~[T]] {
381
381
}
382
382
}
383
383
push ( result, slice ( v, start, ln) ) ;
384
- result
384
+ move result
385
385
}
386
386
387
387
/**
@@ -407,7 +407,7 @@ fn splitn<T: Copy>(v: &[T], n: uint, f: fn(T) -> bool) -> ~[~[T]] {
407
407
}
408
408
}
409
409
push ( result, slice ( v, start, ln) ) ;
410
- result
410
+ move result
411
411
}
412
412
413
413
/**
@@ -458,7 +458,7 @@ fn rsplitn<T: Copy>(v: &[T], n: uint, f: fn(T) -> bool) -> ~[~[T]] {
458
458
}
459
459
push ( result, slice ( v, 0 u, end) ) ;
460
460
reverse ( result) ;
461
- return from_mut ( result) ;
461
+ move from_mut ( move result)
462
462
}
463
463
464
464
// Mutators
@@ -479,18 +479,18 @@ fn shift<T>(&v: ~[T]) -> T {
479
479
480
480
for uint:: range( 1 , ln) |i| {
481
481
let r <- * ptr:: offset ( vv , i ) ;
482
- push ( v , r ) ;
482
+ push ( v , move r) ;
483
483
}
484
484
}
485
485
unsafe :: set_len ( vv , 0 ) ;
486
486
487
- rr
487
+ move rr
488
488
}
489
489
}
490
490
491
491
/// Prepend an element to the vector
492
492
fn unshift < T > ( & v: ~[ T ] , +x : T ) {
493
- let mut vv = ~[ x] ;
493
+ let mut vv = ~[ move x] ;
494
494
v <-> vv;
495
495
while len ( vv) > 0 {
496
496
push ( v, shift ( vv) ) ;
@@ -501,7 +501,7 @@ fn consume<T>(+v: ~[T], f: fn(uint, +T)) unsafe {
501
501
do as_buf ( v) |p, ln| {
502
502
for uint:: range( 0 , ln) |i| {
503
503
let x <- * ptr:: offset ( p , i ) ;
504
- f ( i , x ) ;
504
+ f ( i , move x) ;
505
505
}
506
506
}
507
507
@@ -512,7 +512,7 @@ fn consume_mut<T>(+v: ~[mut T], f: fn(uint, +T)) unsafe {
512
512
do as_buf ( v ) |p , ln| {
513
513
for uint:: range( 0 , ln) |i| {
514
514
let x <- * ptr:: offset ( p , i ) ;
515
- f ( i , x ) ;
515
+ f ( i , move x) ;
516
516
}
517
517
}
518
518
@@ -529,7 +529,7 @@ fn pop<T>(&v: ~[const T]) -> T {
529
529
unsafe {
530
530
let val <- * valptr;
531
531
unsafe :: set_len ( v , ln - 1 u ) ;
532
- val
532
+ move val
533
533
}
534
534
}
535
535
@@ -552,7 +552,7 @@ fn swap_remove<T>(&v: ~[const T], index: uint) -> T {
552
552
* valptr <-> val;
553
553
}
554
554
unsafe:: set_len ( v, ln - 1 ) ;
555
- val
555
+ move val
556
556
}
557
557
}
558
558
@@ -563,10 +563,10 @@ fn push<T>(&v: ~[const T], +initval: T) {
563
563
let repr: * * unsafe :: VecRepr = :: unsafe:: reinterpret_cast ( & addr_of ( v) ) ;
564
564
let fill = ( * * repr) . fill ;
565
565
if ( * * repr) . alloc > fill {
566
- push_fast ( v, initval) ;
566
+ push_fast ( v, move initval) ;
567
567
}
568
568
else {
569
- push_slow ( v, initval) ;
569
+ push_slow ( v, move initval) ;
570
570
}
571
571
}
572
572
}
@@ -585,7 +585,7 @@ unsafe fn push_fast<T>(&v: ~[const T], +initval: T) {
585
585
#[ inline( never) ]
586
586
fn push_slow < T > ( & v: ~[ const T ] , +initval : T ) {
587
587
reserve_at_least ( v, v. len ( ) + 1 u) ;
588
- unsafe { push_fast ( v, initval) }
588
+ unsafe { push_fast ( v, move initval) }
589
589
}
590
590
591
591
#[ inline( always) ]
@@ -604,7 +604,7 @@ fn push_all_move<T>(&v: ~[const T], -rhs: ~[const T]) {
604
604
do as_buf ( rhs) |p, len| {
605
605
for uint:: range( 0 , len) |i| {
606
606
let x <- * ptr:: offset ( p , i ) ;
607
- push ( v , x ) ;
607
+ push ( v , move x) ;
608
608
}
609
609
}
610
610
unsafe :: set_len ( rhs , 0 ) ;
@@ -632,14 +632,14 @@ pure fn append<T: Copy>(+lhs: ~[T], rhs: &[const T]) -> ~[T] {
632
632
unchecked {
633
633
push_all( v, rhs) ;
634
634
}
635
- return v ;
635
+ move v
636
636
}
637
637
638
638
#[ inline( always) ]
639
639
pure fn append_one < T > ( +lhs : ~[ T ] , +x : T ) -> ~[ T ] {
640
640
let mut v <- lhs;
641
- unchecked { push( v, x) ; }
642
- v
641
+ unchecked { push( v, move x) ; }
642
+ move v
643
643
}
644
644
645
645
#[ inline( always) ]
@@ -659,7 +659,7 @@ pure fn append_mut<T: Copy>(lhs: &[mut T], rhs: &[const T]) -> ~[mut T] {
659
659
}
660
660
i += 1 u;
661
661
}
662
- return v ;
662
+ move v
663
663
}
664
664
665
665
/**
@@ -717,23 +717,23 @@ pure fn map<T, U>(v: &[T], f: fn(T) -> U) -> ~[U] {
717
717
let mut result = ~[ ] ;
718
718
unchecked { reserve( result, len ( v) ) ; }
719
719
for each( v) |elem| { unsafe { push ( result, f ( elem) ) ; } }
720
- return result;
720
+ move result
721
721
}
722
722
723
723
fn map_consume<T , U > ( +v: ~[ T ] , f: fn ( +T ) -> U ) -> ~[ U ] {
724
724
let mut result = ~[ ] ;
725
- do consume( v) |_i, x| {
726
- vec:: push ( result, f ( x) ) ;
725
+ do consume( move v) |_i, x| {
726
+ vec:: push ( result, f( move x) ) ;
727
727
}
728
- result
728
+ move result
729
729
}
730
730
731
731
/// Apply a function to each element of a vector and return the results
732
732
pure fn mapi< T , U > ( v: & [ T ] , f: fn ( uint, T ) -> U ) -> ~[ U ] {
733
733
let mut result = ~[ ] ;
734
734
unchecked{ reserve( result, len( v) ) ; }
735
735
for eachi( v) |i, elem| { unsafe { push( result, f( i, elem) ) ; } }
736
- return result;
736
+ move result
737
737
}
738
738
739
739
/**
@@ -743,7 +743,7 @@ pure fn mapi<T, U>(v: &[T], f: fn(uint, T) -> U) -> ~[U] {
743
743
pure fn flat_map<T , U >( v: & [ T ] , f: fn ( T ) -> ~[ U ] ) -> ~[ U ] {
744
744
let mut result = ~[ ] ;
745
745
for each( v) |elem| { unchecked{ push_all_move( result, f( elem) ) ; } }
746
- return result;
746
+ move result
747
747
}
748
748
749
749
/// Apply a function to each pair of elements and return the results
@@ -757,7 +757,7 @@ pure fn map2<T: Copy, U: Copy, V>(v0: &[T], v1: &[U],
757
757
unsafe { push( u, f( copy v0[ i] , copy v1[ i] ) ) } ;
758
758
i += 1 u;
759
759
}
760
- return u ;
760
+ move u
761
761
}
762
762
763
763
/**
@@ -775,7 +775,7 @@ pure fn filter_map<T, U: Copy>(v: &[T], f: fn(T) -> Option<U>)
775
775
Some ( result_elem) => unsafe { push( result, result_elem) ; }
776
776
}
777
777
}
778
- return result;
778
+ move result
779
779
}
780
780
781
781
/**
@@ -790,7 +790,7 @@ pure fn filter<T: Copy>(v: &[T], f: fn(T) -> bool) -> ~[T] {
790
790
for each( v) |elem| {
791
791
if f( elem) { unsafe { push( result, elem) ; } }
792
792
}
793
- return result;
793
+ move result
794
794
}
795
795
796
796
/**
@@ -801,7 +801,7 @@ pure fn filter<T: Copy>(v: &[T], f: fn(T) -> bool) -> ~[T] {
801
801
pure fn concat<T : Copy >( v: & [ ~[ T ] ] ) -> ~[ T ] {
802
802
let mut r = ~[ ] ;
803
803
for each( v) |inner| { unsafe { push_all( r, inner) ; } }
804
- return r ;
804
+ move r
805
805
}
806
806
807
807
/// Concatenate a vector of vectors, placing a given separator between each
@@ -812,7 +812,7 @@ pure fn connect<T: Copy>(v: &[~[T]], sep: T) -> ~[T] {
812
812
if first { first = false ; } else { unsafe { push( r, sep) ; } }
813
813
unchecked { push_all( r, inner) } ;
814
814
}
815
- return r ;
815
+ move r
816
816
}
817
817
818
818
/// Reduce a vector from left to right
@@ -1037,7 +1037,7 @@ pure fn unzip_slice<T: Copy, U: Copy>(v: &[(T, U)]) -> (~[T], ~[U]) {
1037
1037
vec:: push( bs, b) ;
1038
1038
}
1039
1039
}
1040
- return ( as_, bs) ;
1040
+ return ( move as_, move bs) ;
1041
1041
}
1042
1042
1043
1043
/**
@@ -1051,13 +1051,13 @@ pure fn unzip_slice<T: Copy, U: Copy>(v: &[(T, U)]) -> (~[T], ~[U]) {
1051
1051
pure fn unzip<T , U >( +v: ~[ ( T , U ) ] ) -> ( ~[ T ] , ~[ U ] ) {
1052
1052
let mut ts = ~[ ] , us = ~[ ] ;
1053
1053
unchecked {
1054
- do consume( v) |_i, p| {
1055
- let ( a, b) = p;
1056
- push ( ts, a) ;
1057
- push ( us, b) ;
1054
+ do consume( move v) |_i, p| {
1055
+ let ( a, b) = move p;
1056
+ push( ts, move a) ;
1057
+ push( us, move b) ;
1058
1058
}
1059
1059
}
1060
- ( ts, us)
1060
+ ( move ts, move us)
1061
1061
}
1062
1062
1063
1063
/**
@@ -1070,7 +1070,7 @@ pure fn zip_slice<T: Copy, U: Copy>(v: &[const T], u: &[const U])
1070
1070
let mut i = 0 u;
1071
1071
assert sz == len( u) ;
1072
1072
while i < sz unchecked { vec:: push( zipped, ( v[ i] , u[ i] ) ) ; i += 1 u; }
1073
- return zipped;
1073
+ move zipped
1074
1074
}
1075
1075
1076
1076
/**
@@ -1080,15 +1080,15 @@ pure fn zip_slice<T: Copy, U: Copy>(v: &[const T], u: &[const U])
1080
1080
* i-th elements from each of the input vectors.
1081
1081
*/
1082
1082
pure fn zip<T , U >( +v: ~[ const T ] , +u: ~[ const U ] ) -> ~[ ( T , U ) ] {
1083
- let mut v = v, u = u, i = len ( v) ;
1083
+ let mut v = move v, u = move u, i = len( v) ;
1084
1084
assert i == len( u) ;
1085
1085
let mut w = ~[ mut ] ;
1086
1086
while i > 0 {
1087
1087
unchecked { push( w, ( pop( v) , pop( u) ) ) ; }
1088
1088
i -= 1 ;
1089
1089
}
1090
1090
unchecked { reverse( w) ; }
1091
- from_mut( w)
1091
+ from_mut( move w)
1092
1092
}
1093
1093
1094
1094
/**
@@ -1116,12 +1116,12 @@ fn reverse<T>(v: ~[mut T]) {
1116
1116
pure fn reversed<T : Copy >( v: & [ const T ] ) -> ~[ T ] {
1117
1117
let mut rs: ~[ T ] = ~[ ] ;
1118
1118
let mut i = len:: <T >( v) ;
1119
- if i == 0 u { return rs ; } else { i -= 1 u ; }
1119
+ if i == 0 { return ( move rs ) ; } else { i -= 1 ; }
1120
1120
unchecked {
1121
- while i != 0 u { vec : : push ( rs, v[ i] ) ; i -= 1 u ; }
1121
+ while i != 0 { vec:: push( rs, v[ i] ) ; i -= 1 ; }
1122
1122
vec:: push( rs, v[ 0 ] ) ;
1123
1123
}
1124
- return rs;
1124
+ move rs
1125
1125
}
1126
1126
1127
1127
/**
@@ -1346,7 +1346,7 @@ pure fn windowed<TT: Copy>(nn: uint, xx: &[TT]) -> ~[~[TT]] {
1346
1346
vec:: push( ww, vec:: slice( xx, ii, ii+nn) ) ;
1347
1347
}
1348
1348
} ) ;
1349
- return ww;
1349
+ move ww
1350
1350
}
1351
1351
1352
1352
/**
@@ -1617,7 +1617,7 @@ impl<T> &[T]: ImmutableVector<T> {
1617
1617
push( r, f( & self [ i] ) ) ;
1618
1618
i += 1 ;
1619
1619
}
1620
- r
1620
+ move r
1621
1621
}
1622
1622
1623
1623
/**
@@ -1730,7 +1730,7 @@ mod unsafe {
1730
1730
reserve( dst, elts) ;
1731
1731
set_len( dst, elts) ;
1732
1732
as_buf( dst, |p_dst, _len_dst| ptr:: memcpy( p_dst, ptr, elts) ) ;
1733
- dst
1733
+ move dst
1734
1734
}
1735
1735
1736
1736
/**
@@ -1794,12 +1794,12 @@ mod unsafe {
1794
1794
*/
1795
1795
#[ inline( always) ]
1796
1796
unsafe fn set<T >( v: & [ mut T ] , i: uint, +val: T ) {
1797
- let mut box = Some ( val) ;
1797
+ let mut box = Some ( move val) ;
1798
1798
do as_mut_buf( v) |p, _len| {
1799
1799
let mut box2 = None ;
1800
1800
box2 <-> box;
1801
1801
rusti:: move_val_init( * ptr:: mut_offset( p, i) ,
1802
- option:: unwrap ( box2) ) ;
1802
+ option:: unwrap( move box2) ) ;
1803
1803
}
1804
1804
}
1805
1805
@@ -1926,7 +1926,7 @@ impl<A> &[const A]: iter::ExtendedIter<A> {
1926
1926
pure fn all( blk: fn ( A ) -> bool ) -> bool { iter:: all( self , blk) }
1927
1927
pure fn any( blk: fn ( A ) -> bool ) -> bool { iter:: any( self , blk) }
1928
1928
pure fn foldl<B >( +b0: B , blk: fn ( B , A ) -> B ) -> B {
1929
- iter:: foldl ( self , b0, blk)
1929
+ iter:: foldl( self , move b0, blk)
1930
1930
}
1931
1931
}
1932
1932
0 commit comments