about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-06-28 20:16:56 -0700
committerbors <bors@rust-lang.org>2013-06-28 20:16:56 -0700
commitd681bccb6a2141012a747cc272991a7440cb2408 (patch)
treecab40edc4a380a3eae1847ef833a28bc2139dfaf /src/libstd
parente23934645aa7eb526e9f55da6b3d7c262dc1670f (diff)
parent9340fd5ce0d7bd0f1bbfbda73944920bcc1364eb (diff)
downloadrust-d681bccb6a2141012a747cc272991a7440cb2408.tar.gz
rust-d681bccb6a2141012a747cc272991a7440cb2408.zip
auto merge of #7471 : msullivan/rust/default-methods, r=graydon
This fixes a bunch of default method bugs and restructures how vtable resolutions are represented.

(It also adds a depth counter to llvm::type_to_str as a hacky work around for our circular llvm types. This is related in the sense that I needed to do it to make debug tracing not cause rustc to crash after running out of stack space.)
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/vec.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs
index aa4d632a482..8555d99255d 100644
--- a/src/libstd/vec.rs
+++ b/src/libstd/vec.rs
@@ -2346,6 +2346,7 @@ impl<T> FromIter<T> for ~[T]{
     }
 }
 
+#[cfg(stage0)]
 impl<A, T: Iterator<A>> FromIterator<A, T> for ~[A] {
     pub fn from_iterator(iterator: &mut T) -> ~[A] {
         let mut xs = ~[];
@@ -2356,7 +2357,8 @@ impl<A, T: Iterator<A>> FromIterator<A, T> for ~[A] {
     }
 }
 
-/* FIXME: #7341 - ICE
+
+#[cfg(not(stage0))]
 impl<A, T: Iterator<A>> FromIterator<A, T> for ~[A] {
     pub fn from_iterator(iterator: &mut T) -> ~[A] {
         let (lower, _) = iterator.size_hint();
@@ -2367,7 +2369,7 @@ impl<A, T: Iterator<A>> FromIterator<A, T> for ~[A] {
         xs
     }
 }
-*/
+
 
 #[cfg(test)]
 mod tests {