aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Walton <[email protected]>2010-11-05 10:41:23 -0700
committerPatrick Walton <[email protected]>2010-11-05 10:41:23 -0700
commit2fcf81cc4b132bf7d862f5144d282391b38d0c15 (patch)
treed6e2c25528a83959111707cd7e29b4b30b93cf6a
parentrustboot: Describe the cycle when reporting a cyclic import error (diff)
downloadrust-2fcf81cc4b132bf7d862f5144d282391b38d0c15.tar.xz
rust-2fcf81cc4b132bf7d862f5144d282391b38d0c15.zip
Revert "Move the option type to its own module"
-rw-r--r--src/comp/driver/rustc.rs10
-rw-r--r--src/comp/front/ast.rs1
-rw-r--r--src/comp/front/parser.rs6
-rw-r--r--src/comp/middle/fold.rs4
-rw-r--r--src/comp/middle/resolve.rs4
-rw-r--r--src/comp/middle/trans.rs4
-rw-r--r--src/lib/deque.rs18
-rw-r--r--src/lib/list.rs8
-rw-r--r--src/lib/option.rs40
-rw-r--r--src/lib/std.rc1
-rw-r--r--src/lib/util.rs18
11 files changed, 46 insertions, 68 deletions
diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs
index 154b87cb..920b47d2 100644
--- a/src/comp/driver/rustc.rs
+++ b/src/comp/driver/rustc.rs
@@ -5,9 +5,9 @@ import front.token;
import middle.trans;
import middle.resolve;
-import std.option;
-import std.option.some;
-import std.option.none;
+import std.util.option;
+import std.util.some;
+import std.util.none;
import std._str;
import std._vec;
@@ -39,8 +39,8 @@ fn usage(session.session sess, str argv0) {
impure fn main(vec[str] args) {
auto sess = session.session();
- let option.t[str] input_file = none[str];
- let option.t[str] output_file = none[str];
+ let option[str] input_file = none[str];
+ let option[str] output_file = none[str];
let bool do_warn = true;
auto i = 1u;
diff --git a/src/comp/front/ast.rs b/src/comp/front/ast.rs
index 5511a068..e635c119 100644
--- a/src/comp/front/ast.rs
+++ b/src/comp/front/ast.rs
@@ -1,4 +1,5 @@
+import util.common.option;
import std.map.hashmap;
import std.util.option;
import util.common.span;
diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs
index e3066436..d42f7b45 100644
--- a/src/comp/front/parser.rs
+++ b/src/comp/front/parser.rs
@@ -1,8 +1,8 @@
import std._io;
-import std.option.some;
-import std.option.none;
-import std.map.hashmap;
import std.util.option;
+import std.util.some;
+import std.util.none;
+import std.map.hashmap;
import driver.session;
import util.common;
diff --git a/src/comp/middle/fold.rs b/src/comp/middle/fold.rs
index 069c5dfd..8b38c894 100644
--- a/src/comp/middle/fold.rs
+++ b/src/comp/middle/fold.rs
@@ -1,7 +1,7 @@
import std.map.hashmap;
-import std.option.some;
-import std.option.none;
import std.util.option;
+import std.util.some;
+import std.util.none;
import util.common.new_str_hash;
import util.common.spanned;
diff --git a/src/comp/middle/resolve.rs b/src/comp/middle/resolve.rs
index a491b56f..5741bac4 100644
--- a/src/comp/middle/resolve.rs
+++ b/src/comp/middle/resolve.rs
@@ -8,9 +8,9 @@ import std.map.hashmap;
import std.list.list;
import std.list.nil;
import std.list.cons;
-import std.option.some;
-import std.option.none;
import std.util.option;
+import std.util.some;
+import std.util.none;
import std._str;
tag scope {
diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs
index 8334ac4a..1783925e 100644
--- a/src/comp/middle/trans.rs
+++ b/src/comp/middle/trans.rs
@@ -3,9 +3,9 @@ import std._vec;
import std._str.rustrt.sbuf;
import std._vec.rustrt.vbuf;
import std.map.hashmap;
-import std.option.some;
-import std.option.none;
import std.util.option;
+import std.util.some;
+import std.util.none;
import front.ast;
import driver.session;
diff --git a/src/lib/deque.rs b/src/lib/deque.rs
index 92b1aeda..959339d8 100644
--- a/src/lib/deque.rs
+++ b/src/lib/deque.rs
@@ -2,7 +2,7 @@
* A deque, for fun. Untested as of yet. Likely buggy.
*/
-import std.option;
+import std.util;
import std._vec;
import std._int;
@@ -23,7 +23,7 @@ type t[T] = obj {
fn create[T]() -> t[T] {
- type cell[T] = mutable option.t[T];
+ type cell[T] = mutable util.option[T];
let uint initial_capacity = 32u; // 2^5
@@ -39,7 +39,7 @@ fn create[T]() -> t[T] {
if (i < nelts) {
ret old.((lo + i) % nelts);
} else {
- ret option.none;
+ ret util.none[T];
}
}
@@ -50,7 +50,7 @@ fn create[T]() -> t[T] {
fn get[T](vec[cell[T]] elts, uint i) -> T {
alt (elts.(i)) {
- case (option.some[T](?t)) { ret t; }
+ case (util.some[T](?t)) { ret t; }
case (_) { fail; }
}
}
@@ -77,7 +77,7 @@ fn create[T]() -> t[T] {
hi = nelts;
}
- elts.(lo) = option.some[T](t);
+ elts.(lo) = util.some[T](t);
nelts += 1u;
}
@@ -88,7 +88,7 @@ fn create[T]() -> t[T] {
hi = nelts;
}
- elts.(hi) = option.some[T](t);
+ elts.(hi) = util.some[T](t);
hi = (hi + 1u) % _vec.len[cell[T]](elts);
nelts += 1u;
}
@@ -99,7 +99,7 @@ fn create[T]() -> t[T] {
*/
fn pop_front() -> T {
let T t = get[T](elts, lo);
- elts.(lo) = option.none[T];
+ elts.(lo) = util.none[T];
lo = (lo + 1u) % _vec.len[cell[T]](elts);
nelts -= 1u;
ret t;
@@ -113,7 +113,7 @@ fn create[T]() -> t[T] {
}
let T t = get[T](elts, hi);
- elts.(hi) = option.none[T];
+ elts.(hi) = util.none[T];
nelts -= 1u;
ret t;
}
@@ -132,7 +132,7 @@ fn create[T]() -> t[T] {
}
}
- let vec[cell[T]] v = _vec.init_elt[cell[T]](option.none[T],
+ let vec[cell[T]] v = _vec.init_elt[cell[T]](util.none[T],
initial_capacity);
ret deque[T](0u, 0u, 0u, v);
diff --git a/src/lib/list.rs b/src/lib/list.rs
index 8e0380d1..da8d3c0a 100644
--- a/src/lib/list.rs
+++ b/src/lib/list.rs
@@ -1,7 +1,7 @@
-import option;
-import option.some;
-import option.none;
+import util.option;
+import util.some;
+import util.none;
// FIXME: It would probably be more appealing to define this as
// type list[T] = rec(T hd, option[@list[T]] tl), but at the moment
@@ -27,7 +27,7 @@ fn foldl[T,U](&list[T] ls, &U u, fn(&T t, U u) -> U f) -> U {
}
fn find[T,U](&list[T] ls,
- (fn(&T) -> option.t[U]) f) -> option.t[U] {
+ (fn(&T) -> option[U]) f) -> option[U] {
alt(ls) {
case (cons[T](?hd, ?tl)) {
alt (f(hd)) {
diff --git a/src/lib/option.rs b/src/lib/option.rs
deleted file mode 100644
index dbf08b3e..00000000
--- a/src/lib/option.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-// lib/option.rs
-
-tag t[T] {
- none;
- some(T);
-}
-
-type operator[T, U] = fn(&T) -> U;
-
-fn get[T](&t[T] opt) -> T {
- alt (opt) {
- case (some[T](?x)) {
- ret x;
- }
- case (none[T]) {
- fail;
- }
- }
-}
-
-fn map[T, U](&operator[T, U] f, &t[T] opt) -> t[U] {
- alt (opt) {
- case (some[T](?x)) {
- ret some[U](f(x));
- }
- case (none[T]) {
- ret none[U];
- }
- }
-}
-
-// Local Variables:
-// mode: rust;
-// fill-column: 78;
-// indent-tabs-mode: nil
-// c-basic-offset: 4
-// buffer-file-coding-system: utf-8-unix
-// compile-command: "make -k -C .. 2>&1 | sed -e 's/\\/x\\//x:\\//g'";
-// End:
-
diff --git a/src/lib/std.rc b/src/lib/std.rc
index e00f2ef2..16cfbb75 100644
--- a/src/lib/std.rc
+++ b/src/lib/std.rc
@@ -20,7 +20,6 @@ mod _task;
// Utility modules.
-mod option;
mod util;
// Authorize various rule-bendings.
diff --git a/src/lib/util.rs b/src/lib/util.rs
index 72844d5f..f6e1327b 100644
--- a/src/lib/util.rs
+++ b/src/lib/util.rs
@@ -1,3 +1,21 @@
+tag option[T] {
+ none;
+ some(T);
+}
+
+type operator[T, U] = fn(&T) -> U;
+
+fn option_map[T, U](&operator[T, U] f, &option[T] opt) -> option[U] {
+ alt (opt) {
+ case (some[T](?x)) {
+ ret some[U](f(x));
+ }
+ case (none[T]) {
+ ret none[U];
+ }
+ }
+}
+
fn id[T](&T x) -> T {
ret x;
}