diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2015-08-05 14:24:54 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2015-08-05 16:50:41 +0100 |
commit | 953648127cea2836ec134b03a966695ac0b36434 (patch) | |
tree | 6b5721dc6f0133b54af97c60f396e9207ef223ae /testsuite/tests/typecheck/should_fail | |
parent | ab98860871cfac17417d5b55e590445064d21111 (diff) | |
download | haskell-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.stderr | 26 |
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]’
|