diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-05-22 10:54:12 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-07-02 18:30:12 -0700 |
| commit | f093d374edb89aedc940468d3d789dd95cec6347 (patch) | |
| tree | 8d9197ba35866b536c4a5ed8178f69387e4a69af /src/libcore | |
| parent | 0b1edb7f0e25cae2a1f519af17bfc76682af0e14 (diff) | |
| download | rust-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.rs | 4 | ||||
| -rw-r--r-- | src/libcore/dvec.rs | 25 | ||||
| -rw-r--r-- | src/libcore/future.rs | 1 | ||||
| -rw-r--r-- | src/libcore/newcomm.rs | 1 | ||||
| -rw-r--r-- | src/libcore/task.rs | 3 |
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; |
