summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghci/scripts/T11456.hs
diff options
context:
space:
mode:
authorRichard Eisenberg <rae@richarde.dev>2019-06-05 18:02:13 -0400
committerBen Gamari <ben@smart-cactus.org>2019-06-20 03:30:53 +0000
commit48dfe535174a03da2cacc70e40accf005f6faf15 (patch)
tree5b86ed4f07b33c7726a6a0614340ee6fd53791ad /testsuite/tests/ghci/scripts/T11456.hs
parent5e6f261aee196eb5984d192dcb01710b070452b3 (diff)
downloadhaskell-wip/backport-MR951.tar.gz
Fix #16517 by bumping the TcLevel for method sigswip/backport-MR951
There were actually two bugs fixed here: 1. candidateQTyVarsOfType needs to be careful that it does not try to zap metavariables from an outer scope as "naughty" quantification candidates. This commit adds a simple check to avoid doing so. 2. We weren't bumping the TcLevel in kcHsKindSig, which was used only for class method sigs. This mistake led to the acceptance of class C a where meth :: forall k. Proxy (a :: k) -> () Note that k is *locally* quantified. This patch fixes the problem by using tcClassSigType, which correctly bumps the level. It's a bit inefficient because tcClassSigType does other work, too, but it would be tedious to repeat much of the code there with only a few changes. This version works well and is simple. And, while updating comments, etc., I noticed that tcRnType was missing a pushTcLevel, leading to #16767, which this patch also fixes, by bumping the level. In the refactoring here, I also use solveEqualities. This initially failed ghci/scripts/T15415, but that was fixed by teaching solveEqualities to respect -XPartialTypeSignatures. This patch also cleans up some Notes around error generation that came up in conversation. Test case: typecheck/should_fail/T16517, ghci/scripts/T16767 (cherry picked from commit a22e51ea6f7a046c87d57ce30d143eef6abee9ff)
Diffstat (limited to 'testsuite/tests/ghci/scripts/T11456.hs')
0 files changed, 0 insertions, 0 deletions