summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2018-08-23 09:22:42 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2018-08-23 11:40:52 +0100
commit4293a80a3ea835412737911bcb2a6703e9af378b (patch)
treed5ebd8ff43d27ddc9392e8be1c7e0d1870d23bab /compiler
parent2a54209f8f8ca665b9bee617bf96397b2c75a3da (diff)
downloadhaskell-4293a80a3ea835412737911bcb2a6703e9af378b.tar.gz
Accommodate API change in transSuperClasses
In this patch commit 6eabb6ddb7c53784792ee26b1e0657bde7eee7fb Author: Simon Peyton Jones <simonpj@microsoft.com> Date: Tue Dec 15 14:26:13 2015 +0000 Allow recursive (undecidable) superclasses I changed (transSuperClasses p) to return only the superclasses of p, but not p itself. (Previously it always returned p as well.) The use of transSuperClasses in TcErrors.warnRedundantConstraints really needs 'p' in the result -- but I faild to fix this call site, and instead crippled the test for Trac #10100. This patch sets things right * Accomodates the API change * Re-enables T10100 * And thereby fixes Trac #11474
Diffstat (limited to 'compiler')
-rw-r--r--compiler/typecheck/TcErrors.hs6
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/typecheck/TcErrors.hs b/compiler/typecheck/TcErrors.hs
index 7ef0754344..06b660f193 100644
--- a/compiler/typecheck/TcErrors.hs
+++ b/compiler/typecheck/TcErrors.hs
@@ -467,14 +467,14 @@ warnRedundantConstraints ctxt env info ev_vars
redundant_evs =
filterOut is_type_error $
case info of -- See Note [Redundant constraints in instance decls]
- InstSkol -> filterOut improving ev_vars
+ InstSkol -> filterOut (improving . idType) ev_vars
_ -> ev_vars
-- See #15232
is_type_error = isJust . userTypeError_maybe . idType
- improving ev_var = any isImprovementPred $
- transSuperClasses (idType ev_var)
+ improving pred -- (transSuperClasses p) does not include p
+ = any isImprovementPred (pred : transSuperClasses pred)
reportBadTelescope :: ReportErrCtxt -> TcLclEnv -> Maybe SDoc -> [TcTyVar] -> TcM ()
reportBadTelescope ctxt env (Just telescope) skols