about summary refs log tree commit diff
path: root/src/comp/middle
diff options
context:
space:
mode:
authorBrian Anderson <andersrb@gmail.com>2011-05-24 20:19:36 -0400
committerBrian Anderson <andersrb@gmail.com>2011-05-24 20:23:21 -0400
commit6473b73174afc54198c4105f7fa927f04a71e04e (patch)
treeb6967b7b0cacc982003a17ea73760bc13a7a1dc4 /src/comp/middle
parent0c1ea141b4e207caaae524a4e770cf593353319e (diff)
downloadrust-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.rs17
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