From 778b2c6bdbabf2c9f394f0ca2b76b55a7123aa5f Mon Sep 17 00:00:00 2001 From: lewie Date: Tue, 27 Jun 2000 09:08:32 +0000 Subject: [PATCH] [project @ 2000-06-27 09:08:32 by lewie] Further refine the test for when to simplify... in particular, was generating bogus code when a signature asserted an implicit param, but the code didn't use one. Please Merge. --- ghc/compiler/typecheck/TcBinds.lhs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ghc/compiler/typecheck/TcBinds.lhs b/ghc/compiler/typecheck/TcBinds.lhs index 3e28615..4827932 100644 --- a/ghc/compiler/typecheck/TcBinds.lhs +++ b/ghc/compiler/typecheck/TcBinds.lhs @@ -260,8 +260,9 @@ tcBindWithSigs top_lvl mbind tc_ty_sigs inline_sigs is_rec -- - zonking the generalized type vars let lie_avail = case maybe_sig_theta of Nothing -> emptyLIE - Just (_, la) -> la in - tcImprove (lie_avail `plusLIE` lie_req) `thenTc_` + Just (_, la) -> la + lie_avail_req = lie_avail `plusLIE` lie_req in + tcImprove lie_avail_req `thenTc_` -- COMPUTE VARIABLES OVER WHICH TO QUANTIFY, namely tyvars_to_gen -- The tyvars_not_to_gen are free in the environment, and hence @@ -292,7 +293,7 @@ tcBindWithSigs top_lvl mbind tc_ty_sigs inline_sigs is_rec -- SIMPLIFY THE LIE tcExtendGlobalTyVars tyvars_not_to_gen ( - let ips = getIPsOfLIE lie_req in + let ips = getIPsOfLIE lie_avail_req in if null real_tyvars_to_gen_list && (null ips || not is_unrestricted) then -- No polymorphism, and no IPs, so no need to simplify context returnTc (lie_req, EmptyMonoBinds, []) -- 1.7.10.4