[commit: ghc] master: Do not discard insolubles in implications (452755d)

git at git.haskell.org git at git.haskell.org
Fri Jul 28 08:56:38 UTC 2017


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

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

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

commit 452755de717fad5d8fbfc6330cb42a3335c8912d
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Thu Jul 27 14:52:38 2017 +0100

    Do not discard insolubles in implications
    
    Trac #14000 showed up two errors
    
    * In TcRnTypes.dropInsolubles we dropped all implications, which
      might contain the very insolubles we wanted to keep.  This was
      an outright error, and is why the out-of-scope error was actually
      lost altogether in Trac #14000
    
    * In TcSimplify.simplifyInfer, if there are definite (insoluble)
      errors, it's better to suppress the following ambiguity test,
      because the type may be bogus anyway.  See TcSimplify
      Note [Quantification with errors].  This fix seems a bit clunky,
      but it'll do for now.


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

452755de717fad5d8fbfc6330cb42a3335c8912d
 compiler/typecheck/TcBinds.hs                      |  22 ++--
 compiler/typecheck/TcExpr.hs                       |   2 +-
 compiler/typecheck/TcPatSyn.hs                     |   4 +-
 compiler/typecheck/TcRnDriver.hs                   |   6 +-
 compiler/typecheck/TcRnTypes.hs                    |   8 +-
 compiler/typecheck/TcSimplify.hs                   | 124 ++++++++++++++-------
 testsuite/tests/parser/should_fail/T7848.hs        |   2 +-
 testsuite/tests/parser/should_fail/T7848.stderr    |  13 +--
 testsuite/tests/th/T5358.stderr                    |  20 ++++
 testsuite/tests/typecheck/should_fail/T14000.hs    |   8 ++
 .../tests/typecheck/should_fail/T14000.stderr      |   2 +
 testsuite/tests/typecheck/should_fail/T8142.stderr |  26 +++--
 testsuite/tests/typecheck/should_fail/all.T        |   1 +
 13 files changed, 161 insertions(+), 77 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 452755de717fad5d8fbfc6330cb42a3335c8912d


More information about the ghc-commits mailing list