summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghci/scripts/all.T
diff options
context:
space:
mode:
authorRichard Eisenberg <rae@richarde.dev>2019-06-05 18:02:13 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-06-09 18:43:38 -0400
commita22e51ea6f7a046c87d57ce30d143eef6abee9ff (patch)
treee8c7647635bf1a6ac428bfea0e48aab9da50c9fa /testsuite/tests/ghci/scripts/all.T
parent9d238791862e8b128d397a1c0317986ea82ed000 (diff)
downloadhaskell-a22e51ea6f7a046c87d57ce30d143eef6abee9ff.tar.gz
Fix #16517 by bumping the TcLevel for method sigs
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
Diffstat (limited to 'testsuite/tests/ghci/scripts/all.T')
-rwxr-xr-xtestsuite/tests/ghci/scripts/all.T1
1 files changed, 1 insertions, 0 deletions
diff --git a/testsuite/tests/ghci/scripts/all.T b/testsuite/tests/ghci/scripts/all.T
index 5dd56ca46c..db619c142b 100755
--- a/testsuite/tests/ghci/scripts/all.T
+++ b/testsuite/tests/ghci/scripts/all.T
@@ -297,3 +297,4 @@ test('T14828', normal, ghci_script, ['T14828.script'])
test('T16376', normal, ghci_script, ['T16376.script'])
test('T16527', normal, ghci_script, ['T16527.script'])
test('T16569', normal, ghci_script, ['T16569.script'])
+test('T16767', normal, ghci_script, ['T16767.script'])