[commit: ghc] master: Prioritise equalities when solving, incl deriveds (efba054)

git at git.haskell.org git at git.haskell.org
Wed Jan 31 13:24:46 UTC 2018


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/efba054640d3418d7477316ae0c1e992d0aa0f22/ghc

>---------------------------------------------------------------

commit efba054640d3418d7477316ae0c1e992d0aa0f22
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Wed Jan 31 13:05:13 2018 +0000

    Prioritise equalities when solving, incl deriveds
    
    We already prioritise equalities when solving, but
    Trac #14723 showed that we were not doing so consistently
    enough, and as a result the type checker could go into a loop.
    Yikes.
    
    See Note [Prioritise equalities] in TcSMonad.
    
    Fixng this bug changed the solve order enough to demonstrate
    a problem with fundeps: Trac #14745.


>---------------------------------------------------------------

efba054640d3418d7477316ae0c1e992d0aa0f22
 compiler/typecheck/TcSMonad.hs                     | 93 +++++++++++++++++-----
 testsuite/tests/polykinds/T14723.hs                | 70 ++++++++++++++++
 testsuite/tests/polykinds/all.T                    |  1 +
 testsuite/tests/typecheck/should_compile/T13651.hs | 21 +++++
 .../tests/typecheck/should_compile/T13651.stderr   | 16 ++++
 .../should_compile/{T13651.hs => T13651a.hs}       |  4 +-
 testsuite/tests/typecheck/should_compile/all.T     |  3 +-
 7 files changed, 184 insertions(+), 24 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc efba054640d3418d7477316ae0c1e992d0aa0f22


More information about the ghc-commits mailing list