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