about summary refs log tree commit diff
path: root/src/libcore
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-05-22 10:54:12 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-07-02 18:30:12 -0700
commitf093d374edb89aedc940468d3d789dd95cec6347 (patch)
tree8d9197ba35866b536c4a5ed8178f69387e4a69af /src/libcore
parent0b1edb7f0e25cae2a1f519af17bfc76682af0e14 (diff)
downloadrust-f093d374edb89aedc940468d3d789dd95cec6347.tar.gz
rust-f093d374edb89aedc940468d3d789dd95cec6347.zip
rustc: Implement a new resolve pass behind a compile flag
Diffstat (limited to 'src/libcore')
-rw-r--r--src/libcore/comm.rs4
-rw-r--r--src/libcore/dvec.rs25
-rw-r--r--src/libcore/future.rs1
-rw-r--r--src/libcore/newcomm.rs1
-rw-r--r--src/libcore/task.rs3
5 files changed, 29 insertions, 5 deletions
diff --git a/src/libcore/comm.rs b/src/libcore/comm.rs
index 2d1c4dd978c..75a21ad5358 100644
--- a/src/libcore/comm.rs
+++ b/src/libcore/comm.rs
@@ -27,8 +27,8 @@ io::println(comm::recv(p));
 import either::either;
 import libc::size_t;
 
-export port::{};
-export chan::{};
+export port;
+export chan;
 export send;
 export recv;
 export peek;
diff --git a/src/libcore/dvec.rs b/src/libcore/dvec.rs
index ea67947073e..f753fa739ae 100644
--- a/src/libcore/dvec.rs
+++ b/src/libcore/dvec.rs
@@ -200,6 +200,7 @@ impl extensions<A:copy> for dvec<A> {
         }
     }
 
+    /*
     #[doc = "
         Append all elements of an iterable.
 
@@ -222,6 +223,7 @@ impl extensions<A:copy> for dvec<A> {
            v
         }
     }
+    */
 
     #[doc = "
         Gets a copy of the current contents.
@@ -267,7 +269,28 @@ impl extensions<A:copy> for dvec<A> {
     }
 
     #[doc = "Returns the last element, failing if the vector is empty"]
+    #[inline(always)]
     fn last() -> A {
-        self.get_elt(self.len() - 1u)
+        self.check_not_borrowed();
+
+        let length = self.len();
+        if length == 0u {
+            fail "attempt to retrieve the last element of an empty vector";
+        }
+
+        ret self.data[length - 1u];
+    }
+
+    #[doc="Iterates over the elements in reverse order"]
+    #[inline(always)]
+    fn reach(f: fn(A) -> bool) {
+        let length = self.len();
+        let mut i = 0u;
+        while i < length {
+            if !f(self.get_elt(i)) {
+                break;
+            }
+            i += 1u;
+        }
     }
 }
diff --git a/src/libcore/future.rs b/src/libcore/future.rs
index 51aeb3a354c..97c6babb89d 100644
--- a/src/libcore/future.rs
+++ b/src/libcore/future.rs
@@ -14,7 +14,6 @@ io::println(#fmt(\"fib(5000) = %?\", delayed_fib.get()))
 import either::either;
 
 export future;
-export future::{};
 export from_value;
 export from_port;
 export from_fn;
diff --git a/src/libcore/newcomm.rs b/src/libcore/newcomm.rs
index c97420646c9..79ace3af1e5 100644
--- a/src/libcore/newcomm.rs
+++ b/src/libcore/newcomm.rs
@@ -6,6 +6,7 @@ avoid needing a single global lock."]
 import arc::methods;
 import dvec::dvec;
 import dvec::{extensions};
+import sys::methods;
 
 export port;
 export chan;
diff --git a/src/libcore/task.rs b/src/libcore/task.rs
index 2d4c2b44226..884382eb9bd 100644
--- a/src/libcore/task.rs
+++ b/src/libcore/task.rs
@@ -24,6 +24,7 @@ spawn {||
 
 import result::result;
 import dvec::extensions;
+import dvec_iter::extensions;
 
 export task;
 export task_result;
@@ -31,7 +32,7 @@ export notification;
 export sched_mode;
 export sched_opts;
 export task_opts;
-export builder::{};
+export builder;
 
 export default_task_opts;
 export get_opts;