summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_fail/T13819.stderr
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2019-02-14 08:28:43 +0000
committerSimon Peyton Jones <simonpj@microsoft.com>2019-02-14 08:40:03 +0000
commit5c1f268e2744fab2d36e64c163858995451d7095 (patch)
treecb9b05c9112e6df43d90f28b6e3a252b2a077d46 /testsuite/tests/typecheck/should_fail/T13819.stderr
parent682783828275cca5fd8bf5be5b52054c75e0e22c (diff)
downloadhaskell-5c1f268e2744fab2d36e64c163858995451d7095.tar.gz
Fail fast in solveLocalEqualities
This patch makes us fail fast in TcSimplify.solveLocalEqualities, and in TcHsType.tc_hs_sig_type, if there are insoluble constraints. Previously we ploughed on even if there were insoluble constraints, leading to a cascade of hard-to-understand type errors. Failing eagerly is much better; hence a lot of testsuite error message changes. Eg if we have f :: [Maybe] -> blah f xs = e then trying typecheck 'f x = e' with an utterly bogus type is just asking for trouble. I can't quite remember what provoked me to make this change, but I think the error messages are notably improved, by removing confusing clutter and focusing on the real error.
Diffstat (limited to 'testsuite/tests/typecheck/should_fail/T13819.stderr')
-rw-r--r--testsuite/tests/typecheck/should_fail/T13819.stderr11
1 files changed, 0 insertions, 11 deletions
diff --git a/testsuite/tests/typecheck/should_fail/T13819.stderr b/testsuite/tests/typecheck/should_fail/T13819.stderr
index 89959cba39..917345f710 100644
--- a/testsuite/tests/typecheck/should_fail/T13819.stderr
+++ b/testsuite/tests/typecheck/should_fail/T13819.stderr
@@ -1,15 +1,4 @@
-T13819.hs:12:10: error:
- • Couldn't match type ‘_0 -> A _0’ with ‘A a’
- Expected type: a -> A a
- Actual type: (_1 -> WrappedMonad A _2) (_0 -> A _0)
- • In the expression: pure @(_ -> WrappedMonad A _) @(_ -> A _) pure
- In an equation for ‘pure’:
- pure = pure @(_ -> WrappedMonad A _) @(_ -> A _) pure
- In the instance declaration for ‘Applicative A’
- • Relevant bindings include
- pure :: a -> A a (bound at T13819.hs:12:3)
-
T13819.hs:12:17: error:
• Expected kind ‘* -> *’, but ‘_ -> WrappedMonad A _’ has kind ‘*’
• In the type ‘(_ -> WrappedMonad A _)’