summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_fail
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2015-08-05 14:24:54 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2015-08-05 16:50:41 +0100
commit953648127cea2836ec134b03a966695ac0b36434 (patch)
tree6b5721dc6f0133b54af97c60f396e9207ef223ae /testsuite/tests/typecheck/should_fail
parentab98860871cfac17417d5b55e590445064d21111 (diff)
downloadhaskell-953648127cea2836ec134b03a966695ac0b36434.tar.gz
Tidy up and refactor wildcard handling
When examining #10615, I found the wildcard handling hard to understand. This patch refactors quite a bit, but with no real change in behaviour. * Split out TcIdSigInfo from TcSigInfo, as a separate type, like TcPatSynInfo. * Make TcIdSigInfo express more invariants by pushing the wildard info into TcIdSigBndr * Remove all special treatment of unification variables that arise from wildcards; so the TauTv of TcType.MetaInfo loses its Bool argument. A ton of konck on changes. The result is significantly simpler, I think.
Diffstat (limited to 'testsuite/tests/typecheck/should_fail')
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail198.stderr26
1 files changed, 13 insertions, 13 deletions
diff --git a/testsuite/tests/typecheck/should_fail/tcfail198.stderr b/testsuite/tests/typecheck/should_fail/tcfail198.stderr
index 76557906ba..ea764fc846 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail198.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail198.stderr
@@ -1,13 +1,13 @@
-
-tcfail198.hs:6:36:
- Couldn't match expected type ‘a1’ with actual type ‘a’
- because type variable ‘a1’ would escape its scope
- This (rigid, skolem) type variable is bound by
- an expression type signature: a1
- at tcfail198.hs:6:36-41
- Relevant bindings include
- xs :: [a] (bound at tcfail198.hs:6:21)
- x :: a (bound at tcfail198.hs:6:19)
- f3 :: [a] -> [a] (bound at tcfail198.hs:6:6)
- In the expression: x :: a
- In the second argument of ‘(++)’, namely ‘[x :: a]’
+
+tcfail198.hs:6:36: error:
+ Couldn't match expected type ‘a2’ with actual type ‘a1’
+ because type variable ‘a2’ would escape its scope
+ This (rigid, skolem) type variable is bound by
+ an expression type signature: a2
+ at tcfail198.hs:6:36-41
+ Relevant bindings include
+ xs :: [a1] (bound at tcfail198.hs:6:21)
+ x :: a1 (bound at tcfail198.hs:6:19)
+ f3 :: [a1] -> [a1] (bound at tcfail198.hs:6:6)
+ In the expression: x :: a
+ In the second argument of ‘(++)’, namely ‘[x :: a]’