summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_fail/T17213.hs
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2019-09-20 23:26:38 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-10-12 13:35:24 -0400
commitc50e4c92d28752beec955d1e3486065685d2f7e6 (patch)
tree9fd170ac96e7a48a542a9706ad9da7b185757314 /testsuite/tests/typecheck/should_fail/T17213.hs
parent0a338264054a518ddc2ab7920af4489a38c8a214 (diff)
downloadhaskell-c50e4c92d28752beec955d1e3486065685d2f7e6.tar.gz
Fix validity checking for inferred types
GHC is suposed to uphold the principle that an /inferred/ type for a let-binding should obey the rules for that module. E.g. we should only accept an inferred higher rank type if we have RankNTypes on. But we were failing to check this: TcValidity.checkValidType allowed arbitrary rank for inferred types. This patch fixes the bug. It might in principle cause some breakage, but if so that's good: the user should add RankNTypes and/or a manual signature. (And almost every package has explicit user signatures for all top-level things anyway.) Let's see. Fixes #17213. Metric Decrease: T10370
Diffstat (limited to 'testsuite/tests/typecheck/should_fail/T17213.hs')
-rw-r--r--testsuite/tests/typecheck/should_fail/T17213.hs5
1 files changed, 5 insertions, 0 deletions
diff --git a/testsuite/tests/typecheck/should_fail/T17213.hs b/testsuite/tests/typecheck/should_fail/T17213.hs
new file mode 100644
index 0000000000..e9c093c903
--- /dev/null
+++ b/testsuite/tests/typecheck/should_fail/T17213.hs
@@ -0,0 +1,5 @@
+module T17213 where
+
+import T17213a
+
+g = foo