[commit: ghc] master: Deal with large extra-contraints wildcards (3c74a51)

git at git.haskell.org git at git.haskell.org
Mon Sep 25 13:02:01 UTC 2017


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

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

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

commit 3c74a51232813eb733b27c43c94ce005112a0ddb
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Thu Sep 21 17:35:11 2017 +0100

    Deal with large extra-contraints wildcards
    
    For reasons explained in TcHsType
    Note [Extra-constraint holes in partial type signatures],
    if we had
      f :: (_) => blahs
    and the '_' was filled in by more than a 62-tuple of contraints,
    GHC crashed.
    
    The same Note explains the hacky solution I have adopted to
    evade this.  Maybe there is some better way, but I couldn't
    see one that didn't involve a great deal of work. And the problem
    is a very narrow one!  If the hack bites us we'll need to think
    again.


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

3c74a51232813eb733b27c43c94ce005112a0ddb
 compiler/prelude/TysWiredIn.hs                     |  7 +-
 compiler/typecheck/TcBinds.hs                      | 18 ++--
 compiler/typecheck/TcHsType.hs                     | 52 +++++++++++-
 compiler/typecheck/TcMType.hs                      |  7 +-
 .../tests/partial-sigs/should_compile/T14217.hs    | 41 +++++++++
 .../partial-sigs/should_compile/T14217.stderr      | 99 ++++++++++++++++++++++
 testsuite/tests/partial-sigs/should_compile/all.T  |  1 +
 7 files changed, 210 insertions(+), 15 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 3c74a51232813eb733b27c43c94ce005112a0ddb


More information about the ghc-commits mailing list