diff options
Diffstat (limited to 'testsuite/tests/simplCore/should_compile/simpl012.hs')
-rw-r--r-- | testsuite/tests/simplCore/should_compile/simpl012.hs | 23 |
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) + + |