@@ -2311,11 +2311,13 @@ impl<'a,T> MutableVector<'a, T> for &'a mut [T] {
23112311 if mem:: size_of :: < T > ( ) == 0 {
23122312 MutItems { ptr : p,
23132313 end : ( p as uint + self . len ( ) ) as * mut T ,
2314- marker : marker:: ContravariantLifetime :: < ' a > }
2314+ marker : marker:: ContravariantLifetime :: < ' a > ,
2315+ marker2 : marker:: NoPod }
23152316 } else {
23162317 MutItems { ptr : p,
23172318 end : p. offset ( self . len ( ) as int ) ,
2318- marker : marker:: ContravariantLifetime :: < ' a > }
2319+ marker : marker:: ContravariantLifetime :: < ' a > ,
2320+ marker2 : marker:: NoPod }
23192321 }
23202322 }
23212323 }
@@ -2682,15 +2684,23 @@ impl<A> Default for ~[A] {
26822684 fn default ( ) -> ~[ A ] { ~[ ] }
26832685}
26842686
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+
26852702macro_rules! iterator {
26862703 ( 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-
26942704 impl <' a, T > Iterator <$elem> for $name<' a, T > {
26952705 #[ inline]
26962706 fn next( & mut self ) -> Option <$elem> {
0 commit comments