diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-10-14 15:22:25 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-10-20 18:23:48 -0700 |
| commit | ed985b61d5c1e35b10a135ec8872aec2fbf66531 (patch) | |
| tree | f7acefac8308cd98d9f8fa1492022dcf1926cc2c /src | |
| parent | 354bfc829248965fa23c14cccd8c4db1685f3701 (diff) | |
Bare functions can coerce to blocks
Diffstat (limited to 'src')
| -rw-r--r-- | src/comp/middle/typeck.rs | 4 | ||||
| -rw-r--r-- | src/test/run-pass/fn-bare-coerce-to-block.rs | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index 1e4fe0d6f3c..a62cf5e97d8 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -916,6 +916,10 @@ fn do_fn_ty_coerce(fcx: @fn_ctxt, sp: span, actual: ty::t, expected: ty::t) ty::mk_fn(fcx.ccx.tcx, ast::proto_fn, args, ret_ty, cf, constrs) } + some(ty::ty_fn(ast::proto_block., _, _, _, _)) { + ty::mk_fn(fcx.ccx.tcx, ast::proto_block, args, ret_ty, cf, + constrs) + } _ { actual } } } diff --git a/src/test/run-pass/fn-bare-coerce-to-block.rs b/src/test/run-pass/fn-bare-coerce-to-block.rs new file mode 100644 index 00000000000..f861cdca405 --- /dev/null +++ b/src/test/run-pass/fn-bare-coerce-to-block.rs @@ -0,0 +1,7 @@ +fn# bare() {} + +fn likes_block(f: block()) { f() } + +fn main() { + likes_block(bare); +} \ No newline at end of file |
