@@ -1359,17 +1359,14 @@ fn field_idx(id: ast::ident, fields: [field]) -> option<uint> {
1359
1359
}
1360
1360
1361
1361
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) } ) {
1363
1363
some ( f) { f }
1364
- _ { fail #fmt( "get_field: bad field id %s" , id) ; }
1365
1364
}
1366
1365
}
1367
1366
1368
- // TODO: could have a precondition instead of failing
1369
1367
fn get_fields ( rec_ty : t ) -> [ field ] {
1370
- alt get ( rec_ty) . struct {
1368
+ alt check get ( rec_ty) . struct {
1371
1369
ty_rec ( fields) { fields }
1372
- _ { fail "get_fields called on non-record type" ; }
1373
1370
}
1374
1371
}
1375
1372
@@ -2080,14 +2077,11 @@ mod unify {
2080
2077
let err = terr_record_size ( expected_len, actual_len) ;
2081
2078
ret ures_err( err) ;
2082
2079
}
2083
- // TODO: implement an iterator that can iterate over
2084
- // two arrays simultaneously.
2085
-
2086
- let result_fields: [ field ] = [ ] ;
2087
- let i = 0 u;
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 = 0 u;
2082
+ while i < actual_len {
2083
+ let expected_field = expected_fields[ i] ,
2084
+ actual_field = actual_fields[ i] ;
2091
2085
let u_mut = unify_mut ( expected_field. mt . mutbl ,
2092
2086
actual_field. mt . mutbl ,
2093
2087
variance) ;
@@ -2127,19 +2121,13 @@ mod unify {
2127
2121
let err = terr_tuple_size ( expected_len, actual_len) ;
2128
2122
ret ures_err( err) ;
2129
2123
}
2130
- // TODO: implement an iterator that can iterate over
2131
- // two arrays simultaneously.
2132
-
2133
- let result_elems = [ ] ;
2134
- let i = 0 u;
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 = 0 u;
2126
+ while i < actual_len {
2127
+ alt unify_step ( cx, expected_elems[ i] , actual_elems[ i] ,
2128
+ variance) {
2141
2129
ures_ok ( rty) { result_elems += [ rty] ; }
2142
- _ { ret result ; }
2130
+ r { ret r ; }
2143
2131
}
2144
2132
i += 1 u;
2145
2133
}
0 commit comments