summaryrefslogtreecommitdiff
path: root/testsuite/tests/simplCore/should_compile/simpl012.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/simplCore/should_compile/simpl012.hs')
-rw-r--r--testsuite/tests/simplCore/should_compile/simpl012.hs23
1 files changed, 23 insertions, 0 deletions
diff --git a/testsuite/tests/simplCore/should_compile/simpl012.hs b/testsuite/tests/simplCore/should_compile/simpl012.hs
new file mode 100644
index 0000000000..09af3e5618
--- /dev/null
+++ b/testsuite/tests/simplCore/should_compile/simpl012.hs
@@ -0,0 +1,23 @@
+-- This is a version of tc095.hs, which makes the compiler
+-- loop (with -O) because of the recursive data-type bug,
+-- unless you have the NOINLINE (which Happy does,
+-- as it happens).
+
+-- Keywords: diverge, contravariant, fixpoint
+
+module ShouldSucceed where
+
+happyParse = happyFail 7 7 (error "reading EOF!") (HappyState happyFail) [] [] []
+
+data HappyState b c = HappyState
+ (Int -> -- token number
+ Int -> -- token number (yes, again)
+ b -> -- token semantic value
+ HappyState b c -> -- current state
+ [HappyState b c] -> -- state stack
+ c)
+
+{-# NOINLINE happyFail #-}
+happyFail _ i tk st@(HappyState action) sts stk = action (-1) (-1) tk st sts ( stk)
+
+