From 20bd927c3f42aef2068c3c1b745efb7cba3b22a8 Mon Sep 17 00:00:00 2001 From: Paul Stansifer Date: Thu, 2 Jun 2011 17:40:12 -0700 Subject: [PATCH] Flatten functions and objects in trans::simplify_type. --- src/comp/middle/trans.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index bc853ebfae94f..41c93bf115a71 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -1293,6 +1293,20 @@ fn simplify_type(&@crate_ctxt ccx, &ty::t typ) -> ty::t { case (ty::ty_vec(_)) { ret ty::mk_imm_vec(ccx.tcx, ty::mk_nil(ccx.tcx)); } + case (ty::ty_fn(_,_,_,_)) { + ret ty::mk_imm_tup(ccx.tcx, + [ty::mk_imm_box(ccx.tcx, + ty::mk_nil(ccx.tcx)), + ty::mk_imm_box(ccx.tcx, + ty::mk_nil(ccx.tcx))]); + } + case (ty::ty_obj(_)) { + ret ty::mk_imm_tup(ccx.tcx, + [ty::mk_imm_box(ccx.tcx, + ty::mk_nil(ccx.tcx)), + ty::mk_imm_box(ccx.tcx, + ty::mk_nil(ccx.tcx))]); + } case (_) { ret typ; } } }