summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_fail/T12042.hs
diff options
context:
space:
mode:
authorEdward Z. Yang <ezyang@cs.stanford.edu>2016-10-28 17:54:36 -0700
committerEdward Z. Yang <ezyang@cs.stanford.edu>2016-11-16 21:31:59 -0800
commit31398fbc6d9ee0bd95de64b08becc38faf188972 (patch)
tree0ae632f650671447b96ce231781240b4d840097f /testsuite/tests/typecheck/should_fail/T12042.hs
parentb76958671cda1df9f6f0e1d54d681144d09cb06e (diff)
downloadhaskell-31398fbc6d9ee0bd95de64b08becc38faf188972.tar.gz
Test for type synonym loops on TyCon.
Summary: Previously, we tested for type synonym loops by doing a syntactic test on the literal type synonym declarations. However, in some cases, loops could go through hs-boot files, leading to an infinite loop (#12042); a similar situation can occur when signature merging. This commit replaces the syntactic test with a test on TyCon, simply by walking down all type synonyms until we bottom out, or find we've looped back. It's a lot simpler. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: simonpj, austin, bgamari Subscribers: goldfire, thomie Differential Revision: https://phabricator.haskell.org/D2656 GHC Trac Issues: #12042
Diffstat (limited to 'testsuite/tests/typecheck/should_fail/T12042.hs')
-rw-r--r--testsuite/tests/typecheck/should_fail/T12042.hs4
1 files changed, 4 insertions, 0 deletions
diff --git a/testsuite/tests/typecheck/should_fail/T12042.hs b/testsuite/tests/typecheck/should_fail/T12042.hs
new file mode 100644
index 0000000000..20d919b0f5
--- /dev/null
+++ b/testsuite/tests/typecheck/should_fail/T12042.hs
@@ -0,0 +1,4 @@
+module T12042 where
+import qualified T12042a as B
+type S = B.R
+type R = B.U