[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