Skip to content

Commit a048809

Browse files
committed
---
yaml --- r: 14403 b: refs/heads/try c: ff927f1 h: refs/heads/master i: 14401: d07baad 14399: 4e7881e v: v3
1 parent 46d3409 commit a048809

File tree

3 files changed

+89
-125
lines changed

3 files changed

+89
-125
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
refs/heads/master: 61b1875c16de39c166b0f4d54bba19f9c6777d1a
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
5-
refs/heads/try: 92a45f5582ed8ea4eb439ea2eada31e228d8fe6b
5+
refs/heads/try: ff927f18f5b118bd26ba8a0826b317c27daba70d
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105

branches/try/src/comp/middle/ty.rs

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,17 +1359,14 @@ fn field_idx(id: ast::ident, fields: [field]) -> option<uint> {
13591359
}
13601360

13611361
fn get_field(rec_ty: t, id: ast::ident) -> field {
1362-
alt vec::find(get_fields(rec_ty), {|f| str::eq(f.ident, id) }) {
1362+
alt check vec::find(get_fields(rec_ty), {|f| str::eq(f.ident, id) }) {
13631363
some(f) { f }
1364-
_ { fail #fmt("get_field: bad field id %s", id); }
13651364
}
13661365
}
13671366

1368-
// TODO: could have a precondition instead of failing
13691367
fn get_fields(rec_ty:t) -> [field] {
1370-
alt get(rec_ty).struct {
1368+
alt check get(rec_ty).struct {
13711369
ty_rec(fields) { fields }
1372-
_ { fail "get_fields called on non-record type"; }
13731370
}
13741371
}
13751372

@@ -2080,14 +2077,11 @@ mod unify {
20802077
let err = terr_record_size(expected_len, actual_len);
20812078
ret ures_err(err);
20822079
}
2083-
// TODO: implement an iterator that can iterate over
2084-
// two arrays simultaneously.
2085-
2086-
let result_fields: [field] = [];
2087-
let i = 0u;
2088-
while i < expected_len {
2089-
let expected_field = expected_fields[i];
2090-
let actual_field = actual_fields[i];
2080+
2081+
let result_fields = [], i = 0u;
2082+
while i < actual_len {
2083+
let expected_field = expected_fields[i],
2084+
actual_field = actual_fields[i];
20912085
let u_mut = unify_mut(expected_field.mt.mutbl,
20922086
actual_field.mt.mutbl,
20932087
variance);
@@ -2127,19 +2121,13 @@ mod unify {
21272121
let err = terr_tuple_size(expected_len, actual_len);
21282122
ret ures_err(err);
21292123
}
2130-
// TODO: implement an iterator that can iterate over
2131-
// two arrays simultaneously.
2132-
2133-
let result_elems = [];
2134-
let i = 0u;
2135-
while i < expected_len {
2136-
let expected_elem = expected_elems[i];
2137-
let actual_elem = actual_elems[i];
2138-
let result = unify_step(
2139-
cx, expected_elem, actual_elem, variance);
2140-
alt result {
2124+
2125+
let result_elems = [], i = 0u;
2126+
while i < actual_len {
2127+
alt unify_step(cx, expected_elems[i], actual_elems[i],
2128+
variance) {
21412129
ures_ok(rty) { result_elems += [rty]; }
2142-
_ { ret result; }
2130+
r { ret r; }
21432131
}
21442132
i += 1u;
21452133
}

0 commit comments

Comments
 (0)