diff options
Diffstat (limited to 'tests/programs/closure_result.zc')
| -rw-r--r-- | tests/programs/closure_result.zc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/programs/closure_result.zc b/tests/programs/closure_result.zc new file mode 100644 index 0000000..57b666e --- /dev/null +++ b/tests/programs/closure_result.zc @@ -0,0 +1,12 @@ +namespace; +include rt; + +// fn:type(args) declares a closure's result; returns are coerced to it +fn put_f(x) { asm { x @ #1220 } return 0; } +fn main() { + let half = fn:float(int x) { return x; }; + let twice = fn:int(int x) { return x * 2; }; + rt.put_n(twice(4)); rt.put_c(32); + put_f(half(3) / 2.0); rt.put_c(10); + return 0; +} |
