Commit 4293a80a authored by Simon Peyton Jones's avatar Simon Peyton Jones

Accommodate API change in transSuperClasses

In this patch

    commit 6eabb6dd
    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
parent 2a54209f
......@@ -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
......
......@@ -2,7 +2,6 @@
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}
module T10100 where
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment