about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2015-02-11 05:59:59 -0500
committerNiko Matsakis <niko@alum.mit.edu>2015-02-12 13:02:37 -0500
commitbea8b81225372ebbcb42fc5a2b6f468b2df402ba (patch)
tree550a07febb5e8c3648facdcec1f28f27a16fcb14 /src
parentacd1a0090a55bcb6810b2d6eb1676cb9a5fb65b7 (diff)
downloadrust-bea8b81225372ebbcb42fc5a2b6f468b2df402ba.tar.gz
rust-bea8b81225372ebbcb42fc5a2b6f468b2df402ba.zip
Make VecPerParamSpace support IntoIterator
Diffstat (limited to 'src')
-rw-r--r--src/librustc/middle/subst.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/librustc/middle/subst.rs b/src/librustc/middle/subst.rs
index 8cb0447e732..e20968a9ac9 100644
--- a/src/librustc/middle/subst.rs
+++ b/src/librustc/middle/subst.rs
@@ -18,6 +18,7 @@ use middle::ty_fold::{self, TypeFoldable, TypeFolder};
 use util::ppaux::Repr;
 
 use std::fmt;
+use std::iter::IntoIterator;
 use std::slice::Iter;
 use std::vec::{Vec, IntoIter};
 use syntax::codemap::{Span, DUMMY_SP};
@@ -529,6 +530,23 @@ impl<'a,T> Iterator for EnumeratedItems<'a,T> {
     }
 }
 
+impl<T> IntoIterator for VecPerParamSpace<T> {
+    type IntoIter = IntoIter<T>;
+
+    fn into_iter(self) -> IntoIter<T> {
+        self.into_vec().into_iter()
+    }
+}
+
+impl<'a,T> IntoIterator for &'a VecPerParamSpace<T> {
+    type IntoIter = Iter<'a, T>;
+
+    fn into_iter(self) -> Iter<'a, T> {
+        self.as_slice().into_iter()
+    }
+}
+
+
 ///////////////////////////////////////////////////////////////////////////
 // Public trait `Subst`
 //