@@ -1272,19 +1272,19 @@ impl<T> ops::SliceMut<uint, [T]> for Vec<T> {
12721272 }
12731273}
12741274
1275- #[ experimental = "waiting on Deref stability" ]
1275+ #[ stable ]
12761276impl < T > ops:: Deref for Vec < T > {
12771277 type Target = [ T ] ;
12781278
12791279 fn deref < ' a > ( & ' a self ) -> & ' a [ T ] { self . as_slice ( ) }
12801280}
12811281
1282- #[ experimental = "waiting on DerefMut stability" ]
1282+ #[ stable ]
12831283impl < T > ops:: DerefMut for Vec < T > {
12841284 fn deref_mut < ' a > ( & ' a mut self ) -> & ' a mut [ T ] { self . as_mut_slice ( ) }
12851285}
12861286
1287- #[ experimental = "waiting on FromIterator stability" ]
1287+ #[ stable ]
12881288impl < T > FromIterator < T > for Vec < T > {
12891289 #[ inline]
12901290 fn from_iter < I : Iterator < Item =T > > ( mut iterator : I ) -> Vec < T > {
@@ -1414,6 +1414,7 @@ impl<T> AsSlice<T> for Vec<T> {
14141414 }
14151415}
14161416
1417+ #[ unstable = "recent addition, needs more experience" ]
14171418impl < ' a , T : Clone > Add < & ' a [ T ] > for Vec < T > {
14181419 type Output = Vec < T > ;
14191420
@@ -1425,6 +1426,7 @@ impl<'a, T: Clone> Add<&'a [T]> for Vec<T> {
14251426}
14261427
14271428#[ unsafe_destructor]
1429+ #[ stable]
14281430impl < T > Drop for Vec < T > {
14291431 fn drop ( & mut self ) {
14301432 // This is (and should always remain) a no-op if the fields are
@@ -1470,6 +1472,7 @@ impl<'a> fmt::Writer for Vec<u8> {
14701472/// A clone-on-write vector
14711473pub type CowVec < ' a , T > = Cow < ' a , Vec < T > , [ T ] > ;
14721474
1475+ #[ unstable]
14731476impl < ' a , T > FromIterator < T > for CowVec < ' a , T > where T : Clone {
14741477 fn from_iter < I : Iterator < Item =T > > ( it : I ) -> CowVec < ' a , T > {
14751478 Cow :: Owned ( FromIterator :: from_iter ( it) )
@@ -1515,6 +1518,7 @@ impl<T> IntoIter<T> {
15151518 }
15161519}
15171520
1521+ #[ stable]
15181522impl < T > Iterator for IntoIter < T > {
15191523 type Item = T ;
15201524
@@ -1551,6 +1555,7 @@ impl<T> Iterator for IntoIter<T> {
15511555 }
15521556}
15531557
1558+ #[ stable]
15541559impl < T > DoubleEndedIterator for IntoIter < T > {
15551560 #[ inline]
15561561 fn next_back < ' a > ( & ' a mut self ) -> Option < T > {
@@ -1574,9 +1579,11 @@ impl<T> DoubleEndedIterator for IntoIter<T> {
15741579 }
15751580}
15761581
1582+ #[ stable]
15771583impl < T > ExactSizeIterator for IntoIter < T > { }
15781584
15791585#[ unsafe_destructor]
1586+ #[ stable]
15801587impl < T > Drop for IntoIter < T > {
15811588 fn drop ( & mut self ) {
15821589 // destroy the remaining elements
@@ -1598,6 +1605,7 @@ pub struct Drain<'a, T> {
15981605 marker : ContravariantLifetime < ' a > ,
15991606}
16001607
1608+ #[ stable]
16011609impl < ' a , T > Iterator for Drain < ' a , T > {
16021610 type Item = T ;
16031611
@@ -1634,6 +1642,7 @@ impl<'a, T> Iterator for Drain<'a, T> {
16341642 }
16351643}
16361644
1645+ #[ stable]
16371646impl < ' a , T > DoubleEndedIterator for Drain < ' a , T > {
16381647 #[ inline]
16391648 fn next_back ( & mut self ) -> Option < T > {
@@ -1657,9 +1666,11 @@ impl<'a, T> DoubleEndedIterator for Drain<'a, T> {
16571666 }
16581667}
16591668
1669+ #[ stable]
16601670impl < ' a , T > ExactSizeIterator for Drain < ' a , T > { }
16611671
16621672#[ unsafe_destructor]
1673+ #[ stable]
16631674impl < ' a , T > Drop for Drain < ' a , T > {
16641675 fn drop ( & mut self ) {
16651676 // self.ptr == self.end == null if drop has already been called,
@@ -1692,7 +1703,7 @@ impl<'a, T> Deref for DerefVec<'a, T> {
16921703
16931704// Prevent the inner `Vec<T>` from attempting to deallocate memory.
16941705#[ unsafe_destructor]
1695- #[ experimental ]
1706+ #[ stable ]
16961707impl < ' a , T > Drop for DerefVec < ' a , T > {
16971708 fn drop ( & mut self ) {
16981709 self . x . len = 0 ;
0 commit comments