diff options
| author | Brian Anderson <andersrb@gmail.com> | 2011-05-24 20:19:36 -0400 |
|---|---|---|
| committer | Brian Anderson <andersrb@gmail.com> | 2011-05-24 20:23:21 -0400 |
| commit | 6473b73174afc54198c4105f7fa927f04a71e04e (patch) | |
| tree | b6967b7b0cacc982003a17ea73760bc13a7a1dc4 /src/comp/middle | |
| parent | 0c1ea141b4e207caaae524a4e770cf593353319e (diff) | |
| download | rust-6473b73174afc54198c4105f7fa927f04a71e04e.tar.gz rust-6473b73174afc54198c4105f7fa927f04a71e04e.zip | |
rustc: Use demand functions instead of open-coded typecheck for spawn
Un-xfail spawn-non-nil-fn
Diffstat (limited to 'src/comp/middle')
| -rw-r--r-- | src/comp/middle/typeck.rs | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index fd02f76d816..5fd242c239f 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -2386,23 +2386,8 @@ fn check_expr(&@stmt_ctxt scx, &@ast::expr expr) { case (ast::expr_spawn(_, _, ?f, ?args, ?a)) { check_call(scx, f, args); - // Check the return type auto fty = expr_ty(scx.fcx.ccx.tcx, f); - alt (struct(scx.fcx.ccx.tcx, fty)) { - case (ty::ty_fn(_,_,?rt,_)) { - alt (struct(scx.fcx.ccx.tcx, rt)) { - case (ty::ty_nil) { - // This is acceptable - } - case (_) { - auto err = "non-nil return type in " - + "spawned function"; - scx.fcx.ccx.tcx.sess.span_err(expr.span, err); - fail; - } - } - } - } + Demand::simple(scx, f.span, ty::mk_nil(scx.fcx.ccx.tcx), fty); // FIXME: Other typechecks needed |
