aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-09-20 23:56:43 -0700
committerGraydon Hoare <[email protected]>2010-09-20 23:56:43 -0700
commitc5f4789d5b75d3098665b17d318144cb7c54f42a (patch)
tree2d0ef3ef0e85aa7f2453d8bae762c89552a99ed9 /src/lib
parentWrap long lines. (diff)
downloadrust-c5f4789d5b75d3098665b17d318144cb7c54f42a.tar.xz
rust-c5f4789d5b75d3098665b17d318144cb7c54f42a.zip
Bind pattern slots with ?, drop parens from 0-ary tag constructors, translate 0-ary constructors as constants. Rustc loses ~300kb.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/deque.rs10
-rw-r--r--src/lib/map.rs30
-rw-r--r--src/lib/util.rs8
3 files changed, 24 insertions, 24 deletions
diff --git a/src/lib/deque.rs b/src/lib/deque.rs
index 21acdfc9..96a63880 100644
--- a/src/lib/deque.rs
+++ b/src/lib/deque.rs
@@ -38,7 +38,7 @@ fn create[T]() -> t[T] {
if (i < nelts) {
ret old.((lo + i) % nelts);
} else {
- ret util.none[T]();
+ ret util.none[T];
}
}
@@ -49,7 +49,7 @@ fn create[T]() -> t[T] {
fn get[T](vec[cell[T]] elts, uint i) -> T {
alt (elts.(i)) {
- case (util.some[T](t)) { ret t; }
+ case (util.some[T](?t)) { ret t; }
case (_) { fail; }
}
}
@@ -98,7 +98,7 @@ fn create[T]() -> t[T] {
*/
fn pop_front() -> T {
let T t = get[T](elts, lo);
- elts.(lo) = util.none[T]();
+ elts.(lo) = util.none[T];
lo = (lo + 1u) % _vec.len[cell[T]](elts);
nelts -= 1u;
ret t;
@@ -112,7 +112,7 @@ fn create[T]() -> t[T] {
}
let T t = get[T](elts, hi);
- elts.(hi) = util.none[T]();
+ elts.(hi) = util.none[T];
nelts -= 1u;
ret t;
}
@@ -131,7 +131,7 @@ fn create[T]() -> t[T] {
}
}
- let vec[cell[T]] v = _vec.init_elt[cell[T]](util.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/map.rs b/src/lib/map.rs
index decc2216..14d76013 100644
--- a/src/lib/map.rs
+++ b/src/lib/map.rs
@@ -28,13 +28,13 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
let util.rational load_factor = rec(num=3, den=4);
tag bucket[K, V] {
- nil();
- deleted();
+ nil;
+ deleted;
some(K, V);
}
fn make_buckets[K, V](uint nbkts) -> vec[mutable bucket[K, V]] {
- ret _vec.init_elt[mutable bucket[K, V]](nil[K, V](), nbkts);
+ ret _vec.init_elt[mutable bucket[K, V]](nil[K, V], nbkts);
}
// Derive two hash functions from the one given by taking the upper
@@ -81,7 +81,7 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
while (i < nbkts) {
let uint j = hash[K](hasher, nbkts, key, i);
alt (bkts.(j)) {
- case (some[K, V](k, _)) {
+ case (some[K, V](?k, _)) {
if (eqer(key, k)) {
bkts.(j) = some[K, V](k, val);
ret false;
@@ -108,19 +108,19 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
while (i < nbkts) {
let uint j = (hash[K](hasher, nbkts, key, i));
alt (bkts.(j)) {
- case (some[K, V](k, v)) {
+ case (some[K, V](?k, ?v)) {
if (eqer(key, k)) {
ret util.some[V](v);
}
}
case (nil[K, V]()) {
- ret util.none[V]();
+ ret util.none[V];
}
case (deleted[K, V]()) { }
}
i += 1u;
}
- ret util.none[V]();
+ ret util.none[V];
}
@@ -131,7 +131,7 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
{
for (bucket[K, V] b in oldbkts) {
alt (b) {
- case (some[K, V](k, v)) {
+ case (some[K, V](?k, ?v)) {
insert_common[K, V](hasher, eqer, newbkts, nnewbkts, k, v);
}
case (_) { }
@@ -174,7 +174,7 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
fn get(&K key) -> V {
alt (find_common[K, V](hasher, eqer, bkts, nbkts, key)) {
- case (util.some[V](val)) { ret val; }
+ case (util.some[V](?val)) { ret val; }
case (_) { fail; }
}
}
@@ -188,21 +188,21 @@ fn mk_hashmap[K, V](&hashfn[K] hasher, &eqfn[K] eqer) -> hashmap[K, V] {
while (i < nbkts) {
let uint j = (hash[K](hasher, nbkts, key, i));
alt (bkts.(j)) {
- case (some[K, V](k, v)) {
+ case (some[K, V](?k, ?v)) {
if (eqer(key, k)) {
- bkts.(j) = deleted[K, V]();
+ bkts.(j) = deleted[K, V];
nelts -= 1u;
ret util.some[V](v);
}
}
- case (deleted[K, V]()) { }
- case (nil[K, V]()) {
- ret util.none[V]();
+ case (deleted[K, V]) { }
+ case (nil[K, V]) {
+ ret util.none[V];
}
}
i += 1u;
}
- ret util.none[V]();
+ ret util.none[V];
}
fn rehash() {
diff --git a/src/lib/util.rs b/src/lib/util.rs
index dee93773..9b55d89a 100644
--- a/src/lib/util.rs
+++ b/src/lib/util.rs
@@ -1,5 +1,5 @@
tag option[T] {
- none();
+ none;
some(T);
}
@@ -7,11 +7,11 @@ 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)) {
+ case (some[T](?x)) {
ret some[U](f(x));
}
- case (none[T]()) {
- ret none[U]();
+ case (none[T]) {
+ ret none[U];
}
}
}