From a6c6e8679e2a04624be710c00828bd59d1f4cc3b Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 16 Dec 2010 13:59:20 -0800 Subject: rustc: Only generalize on definition types that can actually be parametric --- src/comp/middle/typeck.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/comp/middle/typeck.rs b/src/comp/middle/typeck.rs index 2529ab29..b5362263 100644 --- a/src/comp/middle/typeck.rs +++ b/src/comp/middle/typeck.rs @@ -1767,7 +1767,7 @@ fn check_expr(&fn_ctxt fcx, @ast.expr expr) -> @ast.expr { } case (ast.def_fn(?id)) { check (fcx.ccx.item_types.contains_key(id)); - t = fcx.ccx.item_types.get(id); + t = generalize_ty(fcx.ccx, fcx.ccx.item_types.get(id)); } case (ast.def_const(?id)) { check (fcx.ccx.item_types.contains_key(id)); @@ -1783,7 +1783,7 @@ fn check_expr(&fn_ctxt fcx, @ast.expr expr) -> @ast.expr { } case (ast.def_obj(?id)) { check (fcx.ccx.item_types.contains_key(id)); - t = fcx.ccx.item_types.get(id); + t = generalize_ty(fcx.ccx, fcx.ccx.item_types.get(id)); } case (_) { @@ -1794,8 +1794,6 @@ fn check_expr(&fn_ctxt fcx, @ast.expr expr) -> @ast.expr { } } - t = generalize_ty(fcx.ccx, t); - ret @fold.respan[ast.expr_](expr.span, ast.expr_name(name, defopt, ast.ann_type(t))); -- cgit v1.2.3