Description
Given:
fn mk_int() -> uint {
let int i = 3;
ret i;
}
fn main() {
}
Rustboot crashes with:
Fatal error: exception Assert_failure("boot/me/trans.ml", 2988, 6)
Raised at file "boot/me/trans.ml", line 2989, characters 6-652
Called from file "boot/me/trans.ml", line 4442, characters 27-46
Called from file "boot/me/trans.ml", line 4055, characters 6-26
Re-raised at file "boot/me/trans.ml", line 4072, characters 11-104
Called from file "array.ml", line 117, characters 31-48
Called from file "boot/me/trans.ml", line 1974, characters 4-36
Called from file "boot/me/trans.ml", line 4604, characters 4-20
Called from file "boot/me/trans.ml", line 4999, characters 4-39
Called from file "boot/me/semant.ml", line 1435, characters 4-17
Called from file "boot/me/semant.ml", line 1561, characters 4-50
Called from file "boot/me/walk.ml", line 134, characters 4-9
Called from file "hashtbl.ml", line 145, characters 8-13
Called from file "hashtbl.ml", line 148, characters 4-19
Called from file "boot/me/walk.ml", line 135, characters 4-15
Called from file "array.ml", line 130, characters 31-51
Called from file "boot/driver/session.ml", line 60, characters 10-17
Called from file "boot/me/semant.ml", line 1861, characters 8-84
Called from file "boot/driver/main.ml", line 322, characters 9-26
Called from file "array.ml", line 117, characters 31-48
Called from file "boot/driver/main.ml", line 320, characters 4-366
Called from file "boot/driver/main.ml", line 404, characters 5-21
Changing the 'int' to 'uint' causes the correct "mismatched types" error (although the "expected" type isn't what I would have expected), and changing the 'uint' to 'int' makes the code compile fine, even if (say) an interface conversion is involved.