[commit: ghc] master: Inform hole substitutions of typeclass constraints (fixes #14273). (1e14fd3)

git at git.haskell.org git at git.haskell.org
Thu Jan 18 15:31:36 UTC 2018


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

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

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

commit 1e14fd3ecfd468c3beddb2e5f992c358e1a798de
Author: Matthías Páll Gissurarson <mpg at mpg.is>
Date:   Thu Jan 18 00:49:38 2018 -0500

    Inform hole substitutions of typeclass constraints (fixes  #14273).
    
    This implements SPJ's suggestion on the ticket (#14273). We find the
    relevant constraints (ones that whose free unification variables are all
    mentioned in the type of the hole), and then clone the free unification
    variables of the hole and the relevant constraints. We then add a
    subsumption constraints and run the simplifier, and then check whether
    all the constraints were solved.
    
    Reviewers: bgamari
    
    Reviewed By: bgamari
    
    Subscribers: RyanGlScott, rwbarton, thomie, carter
    
    GHC Trac Issues: #14273
    
    Differential Revision: https://phabricator.haskell.org/D4315


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

1e14fd3ecfd468c3beddb2e5f992c358e1a798de
 compiler/typecheck/TcErrors.hs                     | 271 ++++++++-----
 compiler/typecheck/TcRnTypes.hs                    |  13 +-
 compiler/typecheck/TcSimplify.hs                   |  16 +-
 compiler/typecheck/TcSimplify.hs-boot              |   6 +-
 testsuite/tests/ghci/scripts/T8353.stderr          |   5 +
 testsuite/tests/th/T10267.stderr                   |   5 +
 testsuite/tests/th/all.T                           |   2 +-
 .../tests/typecheck/should_compile/T13050.stderr   |   6 +
 testsuite/tests/typecheck/should_compile/T14273.hs |  13 +
 .../tests/typecheck/should_compile/T14273.stderr   |  80 ++++
 .../tests/typecheck/should_compile/T14590.stderr   |  10 +
 .../tests/typecheck/should_compile/T9497a.stderr   |   1 +
 testsuite/tests/typecheck/should_compile/all.T     |   2 +
 .../should_compile/hole_constraints.stderr         |   8 +-
 .../tests/typecheck/should_compile/holes.stderr    | 448 ++++++++++++++++++++-
 .../tests/typecheck/should_compile/holes2.stderr   |  24 +-
 .../tests/typecheck/should_compile/holes3.stderr   | 448 ++++++++++++++++++++-
 .../should_compile/valid_substitutions.hs          |  22 +-
 .../should_compile/valid_substitutions.stderr      | 237 ++++++++++-
 .../valid_substitutions_interactions.hs            |  15 +
 .../valid_substitutions_interactions.stderr        |  18 +
 .../tests/typecheck/should_fail/T9497d.stderr      |   1 +
 .../tests/typecheck/should_run/T9497a-run.stderr   |   1 +
 .../tests/typecheck/should_run/T9497b-run.stderr   |   1 +
 .../tests/typecheck/should_run/T9497c-run.stderr   |   1 +
 25 files changed, 1499 insertions(+), 155 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 1e14fd3ecfd468c3beddb2e5f992c358e1a798de


More information about the ghc-commits mailing list