@@ -2311,11 +2311,13 @@ impl<'a,T> MutableVector<'a, T> for &'a mut [T] {
2311
2311
if mem:: size_of :: < T > ( ) == 0 {
2312
2312
MutItems { ptr : p,
2313
2313
end : ( p as uint + self . len ( ) ) as * mut T ,
2314
- marker : marker:: ContravariantLifetime :: < ' a > }
2314
+ marker : marker:: ContravariantLifetime :: < ' a > ,
2315
+ marker2 : marker:: NoPod }
2315
2316
} else {
2316
2317
MutItems { ptr : p,
2317
2318
end : p. offset ( self . len ( ) as int ) ,
2318
- marker : marker:: ContravariantLifetime :: < ' a > }
2319
+ marker : marker:: ContravariantLifetime :: < ' a > ,
2320
+ marker2 : marker:: NoPod }
2319
2321
}
2320
2322
}
2321
2323
}
@@ -2682,15 +2684,23 @@ impl<A> Default for ~[A] {
2682
2684
fn default ( ) -> ~[ A ] { ~[ ] }
2683
2685
}
2684
2686
2687
+ /// Immutable slice iterator
2688
+ pub struct Items < ' a , T > {
2689
+ priv ptr: * T ,
2690
+ priv end: * T ,
2691
+ priv marker : marker:: ContravariantLifetime < ' a >
2692
+ }
2693
+
2694
+ /// Mutable slice iterator
2695
+ pub struct MutItems < ' a , T > {
2696
+ priv ptr: * mut T ,
2697
+ priv end: * mut T ,
2698
+ priv marker : marker:: ContravariantLifetime < ' a > ,
2699
+ priv marker2 : marker:: NoPod
2700
+ }
2701
+
2685
2702
macro_rules! iterator {
2686
2703
( struct $name: ident -> $ptr: ty, $elem: ty) => {
2687
- /// An iterator for iterating over a vector.
2688
- pub struct $name<' a, T > {
2689
- priv ptr: $ptr,
2690
- priv end: $ptr,
2691
- priv marker: marker:: ContravariantLifetime <' a>,
2692
- }
2693
-
2694
2704
impl <' a, T > Iterator <$elem> for $name<' a, T > {
2695
2705
#[ inline]
2696
2706
fn next( & mut self ) -> Option <$elem> {
0 commit comments