about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexis Beingessner <a.beingessner@gmail.com>2014-08-21 19:42:35 -0400
committerAlexis Beingessner <a.beingessner@gmail.com>2014-08-21 20:17:45 -0400
commitb8dc103a950d1dec441e1936b2d7b18457571e1b (patch)
tree07d93838ccc6f16622ccc848e82c4cda9fe219dc
parentdc65307e3be587aa1bee9d17a539822626198f9d (diff)
downloadrust-b8dc103a950d1dec441e1936b2d7b18457571e1b.tar.gz
rust-b8dc103a950d1dec441e1936b2d7b18457571e1b.zip
make priorityqueue's from_iter use heapify
-rw-r--r--src/libcollections/priority_queue.rs7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/libcollections/priority_queue.rs b/src/libcollections/priority_queue.rs
index 34cc0225815..28283cdbc51 100644
--- a/src/libcollections/priority_queue.rs
+++ b/src/libcollections/priority_queue.rs
@@ -527,10 +527,9 @@ impl<'a, T> Iterator<&'a T> for Items<'a, T> {
 }
 
 impl<T: Ord> FromIterator<T> for PriorityQueue<T> {
-    fn from_iter<Iter: Iterator<T>>(iter: Iter) -> PriorityQueue<T> {
-        let mut q = PriorityQueue::new();
-        q.extend(iter);
-        q
+    fn from_iter<Iter: Iterator<T>>(mut iter: Iter) -> PriorityQueue<T> {
+        let vec: Vec<T> = iter.collect();
+        PriorityQueue::from_vec(vec)
     }
 }