// xfail-fast #[legacy_modes]; extern mod std; use comm::Chan; use comm::send; fn main() { test05(); } type pair = { a: A, b: B }; fn make_generic_record(a: A, b: B) -> pair { return {a: a, b: b}; } fn test05_start(&&f: fn~(&&v: float, &&v: ~str) -> pair) { let p = f(22.22f, ~"Hi"); log(debug, copy p); assert p.a == 22.22f; assert p.b == ~"Hi"; let q = f(44.44f, ~"Ho"); log(debug, copy q); assert q.a == 44.44f; assert q.b == ~"Ho"; } fn spawn(f: extern fn(fn~(A,B)->pair)) { let arg = fn~(a: A, b: B) -> pair { return make_generic_record(a, b); }; task::spawn(|| f(arg) ); } fn test05() { spawn::(test05_start); }