fn w_semi(v: ~[int]) -> int { // the semicolon causes compiler not to // complain about the ignored return value: do vec::foldl(0, v) |x,y| { x+y }; -10 } fn w_paren1(v: ~[int]) -> int { (do vec::foldl(0, v) |x,y| { x+y }) - 10 } fn w_paren2(v: ~[int]) -> int { (do vec::foldl(0, v) |x,y| { x+y} - 10) } fn w_ret(v: ~[int]) -> int { ret do vec::foldl(0, v) |x,y| { x+y } - 10; } fn main() { assert w_semi(~[0, 1, 2, 3]) == -10; assert w_paren1(~[0, 1, 2, 3]) == -4; assert w_paren2(~[0, 1, 2, 3]) == -4; assert w_ret(~[0, 1, 2, 3]) == -4; }