diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2018-08-23 09:22:42 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2018-08-23 11:40:52 +0100 |
commit | 4293a80a3ea835412737911bcb2a6703e9af378b (patch) | |
tree | d5ebd8ff43d27ddc9392e8be1c7e0d1870d23bab /compiler | |
parent | 2a54209f8f8ca665b9bee617bf96397b2c75a3da (diff) | |
download | haskell-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.hs | 6 |
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 |