]> git.lizzy.rs Git - rust.git/blobdiff - src/libsyntax/owned_slice.rs
Fill in some missing parts in the default AST visitor
[rust.git] / src / libsyntax / owned_slice.rs
index f5201d4a8bc68f73ea9f46c07e6bca61330a561e..83369689a94de077efbce2a8ce81ff6e32c4751e 100644 (file)
@@ -12,6 +12,7 @@
 use std::fmt;
 use std::iter::{IntoIterator, FromIterator};
 use std::ops::Deref;
+use std::slice;
 use std::vec;
 use serialize::{Encodable, Decodable, Encoder, Decoder};
 
@@ -30,7 +31,7 @@ fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
 
 impl<T> OwnedSlice<T> {
     pub fn empty() -> OwnedSlice<T> {
-        OwnedSlice  { data: box [] }
+        OwnedSlice  { data: Box::new([]) }
     }
 
     #[inline(never)]
@@ -82,6 +83,14 @@ fn from_iter<I: IntoIterator<Item=T>>(iter: I) -> OwnedSlice<T> {
     }
 }
 
+impl<'a, T> IntoIterator for &'a OwnedSlice<T> {
+    type Item = &'a T;
+    type IntoIter = slice::Iter<'a, T>;
+    fn into_iter(self) -> Self::IntoIter {
+        self.data.into_iter()
+    }
+}
+
 impl<T: Encodable> Encodable for OwnedSlice<T> {
     fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error> {
         Encodable::encode(&**self, s)