Add some more unwind tests

They worked without modifications, but I wrote them so we're keeping them.

Issue #236
This commit is contained in:
Brian Anderson 2011-09-09 16:20:11 -07:00
parent e193c9c1d6
commit 69d6e0d208
2 changed files with 44 additions and 0 deletions

View file

@ -0,0 +1,16 @@
// error-pattern:fail
fn main() {
let cheese = "roquefort";
let carrots = @"crunchy";
fn (tasties: @str, macerate: &block(&str)) {
macerate(*tasties);
} (carrots, { |&food|
let mush = food + cheese;
lambda() {
let chew = mush + cheese;
fail "so yummy"
} ();
});
}

View file

@ -0,0 +1,28 @@
// error-pattern:fail
use std;
import std::map;
import std::uint;
fn main() {
let count = @mutable 0u;
let hash = bind fn (_s: &[@str], count: @mutable uint) -> uint {
*count += 1u;
if *count == 10u {
fail;
} else {
ret *count;
}
} (_, count);
fn eq(s: &[@str], t: &[@str]) -> bool {
ret s == t;
}
let map = map::mk_hashmap(hash, eq);
let arr = [];
for each i in uint::range(0u, 10u) {
arr += [@"key stuff"];
map.insert(arr, arr + [@"value stuff"]);
}
}