From 6d38e24ea3da7ca9b435e9b1e59b2de8fcd91da4 Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Tue, 3 Mar 2009 11:15:13 +0000 Subject: [PATCH] Comments only --- compiler/typecheck/TcSimplify.lhs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/compiler/typecheck/TcSimplify.lhs b/compiler/typecheck/TcSimplify.lhs index 0e1e5b0..4cf93e8 100644 --- a/compiler/typecheck/TcSimplify.lhs +++ b/compiler/typecheck/TcSimplify.lhs @@ -710,6 +710,12 @@ tcSimplifyInfer doc tau_tvs wanted -- irreds2 will be empty. But we don't want to generalise over b! ; let preds2 = fdPredsOfInsts irreds2 -- irreds2 is zonked qtvs = growInstsTyVars irreds2 tau_tvs2 `minusVarSet` oclose preds2 gbl_tvs2 + --------------------------------------------------- + -- BUG WARNING: there's a nasty bug lurking here + -- fdPredsOfInsts may return preds that mention variables quantified in + -- one of the implication constraints in irreds2; and that is clearly wrong: + -- we might quantify over too many variables through accidental capture + --------------------------------------------------- ; let (free, irreds3) = partition (isFreeWhenInferring qtvs) irreds2 ; extendLIEs free -- 1.7.10.4