summaryrefslogtreecommitdiff
path: root/testsuite/tests/callarity/unittest/CallArity1.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/callarity/unittest/CallArity1.hs')
-rw-r--r--testsuite/tests/callarity/unittest/CallArity1.hs5
1 files changed, 5 insertions, 0 deletions
diff --git a/testsuite/tests/callarity/unittest/CallArity1.hs b/testsuite/tests/callarity/unittest/CallArity1.hs
index a92a73b4f2..b889a2f981 100644
--- a/testsuite/tests/callarity/unittest/CallArity1.hs
+++ b/testsuite/tests/callarity/unittest/CallArity1.hs
@@ -145,6 +145,11 @@ exprs =
Let (Rec [ (x, Var d `mkApps` [go `mkLApps` [1,2]])
, (go, mkLams [x] $ mkACase (mkLams [z] $ Var x) (Var go `mkVarApps` [x]) ) ]) $
Var go `mkApps` [mkLit 0, go `mkLApps` [0,1]]
+ , ("a thunk (non-function-type), in mutual recursion, causes many calls (d 1 would be bad)",) $
+ mkLet d (f `mkLApps` [0]) $
+ Let (Rec [ (x, Var go `mkApps` [go `mkLApps` [1,2], go `mkLApps` [1,2]])
+ , (go, mkLams [x] $ mkACase (Var d) (Var go `mkVarApps` [x]) ) ]) $
+ Var go `mkApps` [mkLit 0, go `mkLApps` [0,1]]
, ("a thunk (function type), in mutual recursion, still calls once (d 1 would be good)",) $
mkLet d (f `mkLApps` [0]) $
Let (Rec [ (n, Var go `mkApps` [d `mkLApps` [1]])