Commit 0865df19 authored by simonm's avatar simonm
Browse files

[project @ 1999-04-06 09:52:03 by simonm]

-funbox-strict-fields test.
parent f3ecd3c3
......@@ -5,6 +5,7 @@ include $(TOP)/mk/should_compile.mk
SRC_HC_OPTS += -noC -dcore-lint
ds035_HC_OPTS = -fglasgow-exts
ds044_HC_OPTS = -O -funbox-strict-fields
# mkdependHS doesn't understand OPTIONS pragmas...
SRC_MKDEPENDHS_OPTS += -fglasgow-exts
......
module Test where
-- Strict field unpacking tests: compile with -O -funbox-strict-fields.
-- test 1: simple unboxed int field
data T = T !Int
t (T i) = i + 1
-- test 2: mutual recursion (should back off from unboxing either field)
data R = R !R
data S = S !S
r (R s) = s
-- test 3: multi-level unboxing
data A = A Int !B Int
data B = B !Int
f = A 1 (B 2) 1
g (A x (B y) z) = A x (B (y+2)) z
h (A x (B y) z) = y + 2
-- test 4: flattening nested tuples
data C = C !(Int,Int)
j (C (a,b)) = a + b
-- test 5: polymorphism, multiple strict fields
data D a b = D Int !(a,b) !(E Int)
data E a = E a
k (D a (b,c) (E d)) = a + b + c + d
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment