diff options
Diffstat (limited to 'testsuite/tests')
27 files changed, 269 insertions, 269 deletions
diff --git a/testsuite/tests/arityanal/f0.hs b/testsuite/tests/arityanal/f0.hs index f2b7794b99..2499aa6f2c 100644 --- a/testsuite/tests/arityanal/f0.hs +++ b/testsuite/tests/arityanal/f0.hs @@ -1,6 +1,6 @@ -module F0 where
-
-f0 :: Int -> Int -> Int -> Int
-f0 x y = if (x>0) then let v = x + y
- in \z -> v+z
- else \z-> 1
\ No newline at end of file +module F0 where + +f0 :: Int -> Int -> Int -> Int +f0 x y = if (x>0) then let v = x + y + in \z -> v+z + else \z-> 1 diff --git a/testsuite/tests/arityanal/f1.hs b/testsuite/tests/arityanal/f1.hs index 5de291945e..71ccfe4d16 100644 --- a/testsuite/tests/arityanal/f1.hs +++ b/testsuite/tests/arityanal/f1.hs @@ -1,10 +1,10 @@ -module F1 where
-
-f1 = let h1 n x = if x<n then let v = h1 n (x+1)
- in \y -> v (x+y)
- else \y -> y
- in h1 5 1 5
-
-g = \x1-> \x2-> \x3-> \x4-> \x5-> x1+x2+x3+x4+x5
-s f = f 3
-h = s g 6 7 8
\ No newline at end of file +module F1 where + +f1 = let h1 n x = if x<n then let v = h1 n (x+1) + in \y -> v (x+y) + else \y -> y + in h1 5 1 5 + +g = \x1-> \x2-> \x3-> \x4-> \x5-> x1+x2+x3+x4+x5 +s f = f 3 +h = s g 6 7 8 diff --git a/testsuite/tests/arityanal/f10.hs b/testsuite/tests/arityanal/f10.hs index bee91d7820..12d4009a53 100644 --- a/testsuite/tests/arityanal/f10.hs +++ b/testsuite/tests/arityanal/f10.hs @@ -1,8 +1,8 @@ -module F10 where
-
-f10f = \h -> (h 1 2, h 3)
-f10g = \x -> \y -> x+y
-f10h = f10f f10g
-f10x1 = fst f10h
-f10x2 = snd f10h
-f10 = f10x2 f10x1
+module F10 where + +f10f = \h -> (h 1 2, h 3) +f10g = \x -> \y -> x+y +f10h = f10f f10g +f10x1 = fst f10h +f10x2 = snd f10h +f10 = f10x2 f10x1 diff --git a/testsuite/tests/arityanal/f11.hs b/testsuite/tests/arityanal/f11.hs index f94d3adec0..9fd32c2fb5 100644 --- a/testsuite/tests/arityanal/f11.hs +++ b/testsuite/tests/arityanal/f11.hs @@ -1,10 +1,10 @@ -module F11 where
-
-fib 0 = 1
-fib 1 = 1
-fib n = fib (n-1) + fib (n-2)
-
-f11f = \z -> let x = fib 1000
- in \y -> x+y
-
-f11 = (f11f 5 6, f11f 7 8)
+module F11 where + +fib 0 = 1 +fib 1 = 1 +fib n = fib (n-1) + fib (n-2) + +f11f = \z -> let x = fib 1000 + in \y -> x+y + +f11 = (f11f 5 6, f11f 7 8) diff --git a/testsuite/tests/arityanal/f12.hs b/testsuite/tests/arityanal/f12.hs index 35e82edc9f..dfc043b84c 100644 --- a/testsuite/tests/arityanal/f12.hs +++ b/testsuite/tests/arityanal/f12.hs @@ -1,5 +1,5 @@ -module F12 where
-
-f12 = let f g x = g x
- h = (+)
- in f h 4 5
+module F12 where + +f12 = let f g x = g x + h = (+) + in f h 4 5 diff --git a/testsuite/tests/arityanal/f13.hs b/testsuite/tests/arityanal/f13.hs index 1b7a779c37..5ab7823b0d 100644 --- a/testsuite/tests/arityanal/f13.hs +++ b/testsuite/tests/arityanal/f13.hs @@ -1,8 +1,8 @@ -module F13 where
-
-f13 x y = let f13f = if (x>0) then \z -> z x y
- else \z -> y
- f13h = let v = f13f 5
- in \w -> w + v
- in \u -> f13h u
-
+module F13 where + +f13 x y = let f13f = if (x>0) then \z -> z x y + else \z -> y + f13h = let v = f13f 5 + in \w -> w + v + in \u -> f13h u + diff --git a/testsuite/tests/arityanal/f14.hs b/testsuite/tests/arityanal/f14.hs index a908b6622b..1f2c19ed92 100644 --- a/testsuite/tests/arityanal/f14.hs +++ b/testsuite/tests/arityanal/f14.hs @@ -1,5 +1,5 @@ -module F14 where
-
-f14 n x = if x<n then let v = f14 n (x+1)
- in \y -> v (x+y)
- else \y -> y
+module F14 where + +f14 n x = if x<n then let v = f14 n (x+1) + in \y -> v (x+y) + else \y -> y diff --git a/testsuite/tests/arityanal/f15.hs b/testsuite/tests/arityanal/f15.hs index 7e1d5dfa16..0ad77e3a3f 100644 --- a/testsuite/tests/arityanal/f15.hs +++ b/testsuite/tests/arityanal/f15.hs @@ -1,5 +1,5 @@ -module F15 where
-
-f15f = \h -> h 1
-f15g = \x -> x+1
-f15 = f15f f15g
\ No newline at end of file +module F15 where + +f15f = \h -> h 1 +f15g = \x -> x+1 +f15 = f15f f15g diff --git a/testsuite/tests/arityanal/f2.hs b/testsuite/tests/arityanal/f2.hs index bdc06e45f2..39ddae0f06 100644 --- a/testsuite/tests/arityanal/f2.hs +++ b/testsuite/tests/arityanal/f2.hs @@ -1,7 +1,7 @@ -module F2 where
-
-f2f = \h -> \x -> h x 0
-f2 = let g = \x -> \y -> if (x > 0)
- then g (x-1) (x+y)
- else y
- in f2f g 5
\ No newline at end of file +module F2 where + +f2f = \h -> \x -> h x 0 +f2 = let g = \x -> \y -> if (x > 0) + then g (x-1) (x+y) + else y + in f2f g 5 diff --git a/testsuite/tests/arityanal/f3.hs b/testsuite/tests/arityanal/f3.hs index f8210e6f0f..a54f25b78e 100644 --- a/testsuite/tests/arityanal/f3.hs +++ b/testsuite/tests/arityanal/f3.hs @@ -1,8 +1,8 @@ -module F3 where
-
-fac :: Int -> Int
-fac x = if (x==0) then 1
- else x*fac (x-1)
-
-f3 = let v = fac
- in \y -> v y
\ No newline at end of file +module F3 where + +fac :: Int -> Int +fac x = if (x==0) then 1 + else x*fac (x-1) + +f3 = let v = fac + in \y -> v y diff --git a/testsuite/tests/arityanal/f4.hs b/testsuite/tests/arityanal/f4.hs index 29c3e8d4ab..3c70acae4a 100644 --- a/testsuite/tests/arityanal/f4.hs +++ b/testsuite/tests/arityanal/f4.hs @@ -1,7 +1,7 @@ -module F4 where
-
-f4h :: (Int -> Int) -> Int -> Int
-f4h f x = if x==0 then (f x)
- else f4h f (x-1) -- + (f x)
-f4g = \y->y+1
-f4 = f4h f4g 9
\ No newline at end of file +module F4 where + +f4h :: (Int -> Int) -> Int -> Int +f4h f x = if x==0 then (f x) + else f4h f (x-1) -- + (f x) +f4g = \y->y+1 +f4 = f4h f4g 9 diff --git a/testsuite/tests/arityanal/f5.hs b/testsuite/tests/arityanal/f5.hs index 96c8450270..7595866195 100644 --- a/testsuite/tests/arityanal/f5.hs +++ b/testsuite/tests/arityanal/f5.hs @@ -1,7 +1,7 @@ -module F5 where
-
--- result not satisfiable
-f5g h z = (h z) + 1
-f5h f x g = f x + f5g g x -- + (f (x+1))
-f5y = (\y -> y+1)
-f5 = f5h f5y 0 f5y
\ No newline at end of file +module F5 where + +-- result not satisfiable +f5g h z = (h z) + 1 +f5h f x g = f x + f5g g x -- + (f (x+1)) +f5y = (\y -> y+1) +f5 = f5h f5y 0 f5y diff --git a/testsuite/tests/arityanal/f6.hs b/testsuite/tests/arityanal/f6.hs index ba1e453c3f..b45951d6a2 100644 --- a/testsuite/tests/arityanal/f6.hs +++ b/testsuite/tests/arityanal/f6.hs @@ -1,5 +1,5 @@ -module F6 where
-
-f6f = \h -> \x -> h x 0
-f6t = \y -> \z -> y + z
-f6 = f6f f6t 3
\ No newline at end of file +module F6 where + +f6f = \h -> \x -> h x 0 +f6t = \y -> \z -> y + z +f6 = f6f f6t 3 diff --git a/testsuite/tests/arityanal/f7.hs b/testsuite/tests/arityanal/f7.hs index 44241c5ae1..fb68ada9c2 100644 --- a/testsuite/tests/arityanal/f7.hs +++ b/testsuite/tests/arityanal/f7.hs @@ -1,5 +1,5 @@ -module F7 where
-
-f7f = \x -> x
-f7g = \z -> \y -> z+y
-f7 = f7f f7g 2 3
+module F7 where + +f7f = \x -> x +f7g = \z -> \y -> z+y +f7 = f7f f7g 2 3 diff --git a/testsuite/tests/arityanal/f8.hs b/testsuite/tests/arityanal/f8.hs index 1c960556b5..6abb2b87e9 100644 --- a/testsuite/tests/arityanal/f8.hs +++ b/testsuite/tests/arityanal/f8.hs @@ -1,5 +1,5 @@ -module F8 where
-
-f8f b x y = let g = \z -> x+y+z
- in if b then y else g (x*x)
-f8 = f8f True 1 2
\ No newline at end of file +module F8 where + +f8f b x y = let g = \z -> x+y+z + in if b then y else g (x*x) +f8 = f8f True 1 2 diff --git a/testsuite/tests/arityanal/f9.hs b/testsuite/tests/arityanal/f9.hs index e991cfd478..1d53d89174 100644 --- a/testsuite/tests/arityanal/f9.hs +++ b/testsuite/tests/arityanal/f9.hs @@ -1,4 +1,4 @@ -module F9 where
-
-f91 = let f = \n -> if n<=100 then f (f (n+11)) else n-10
- in f 10
\ No newline at end of file +module F9 where + +f91 = let f = \n -> if n<=100 then f (f (n+11)) else n-10 + in f 10 diff --git a/testsuite/tests/arityanal/prim.hs b/testsuite/tests/arityanal/prim.hs index 5b91ad24f2..b5a854cb4d 100644 --- a/testsuite/tests/arityanal/prim.hs +++ b/testsuite/tests/arityanal/prim.hs @@ -1,7 +1,7 @@ -module Prim where
-
-map2 f [] = []
-map2 f (x:xs) = f x : map2 f xs
-
-zipWith2 f [] [] = []
-zipWith2 f (a:x) (b:y) = (f a b):zipWith2 f x y
\ No newline at end of file +module Prim where + +map2 f [] = [] +map2 f (x:xs) = f x : map2 f xs + +zipWith2 f [] [] = [] +zipWith2 f (a:x) (b:y) = (f a b):zipWith2 f x y diff --git a/testsuite/tests/codeGen/should_compile/cg005.hs b/testsuite/tests/codeGen/should_compile/cg005.hs index a25ad4250a..62e11ece66 100644 --- a/testsuite/tests/codeGen/should_compile/cg005.hs +++ b/testsuite/tests/codeGen/should_compile/cg005.hs @@ -1,20 +1,20 @@ -module Bug where
-
-import Foreign hiding ( unsafePerformIO )
-import Foreign.ForeignPtr
-import Data.Char
-import System.IO.Unsafe
-
-data PackedString = PS !(ForeignPtr Word8) !Int !Int
-
-(!) :: PackedString -> Int -> Word8
-(PS x s _l) ! i
- = unsafePerformIO $ withForeignPtr x $ \p -> peekElemOff p (s+i)
-
-w2c :: Word8 -> Char
-w2c = chr . fromIntegral
-
-indexPS :: PackedString -> Int -> Char
-indexPS theps i | i < 0 = error "Negative index in indexPS"
- | otherwise = w2c $ theps ! i
-
+module Bug where + +import Foreign hiding ( unsafePerformIO ) +import Foreign.ForeignPtr +import Data.Char +import System.IO.Unsafe + +data PackedString = PS !(ForeignPtr Word8) !Int !Int + +(!) :: PackedString -> Int -> Word8 +(PS x s _l) ! i + = unsafePerformIO $ withForeignPtr x $ \p -> peekElemOff p (s+i) + +w2c :: Word8 -> Char +w2c = chr . fromIntegral + +indexPS :: PackedString -> Int -> Char +indexPS theps i | i < 0 = error "Negative index in indexPS" + | otherwise = w2c $ theps ! i + diff --git a/testsuite/tests/deSugar/should_compile/GadtOverlap.hs b/testsuite/tests/deSugar/should_compile/GadtOverlap.hs index 89187414a3..a362671f2c 100644 --- a/testsuite/tests/deSugar/should_compile/GadtOverlap.hs +++ b/testsuite/tests/deSugar/should_compile/GadtOverlap.hs @@ -1,20 +1,20 @@ -{-# LANGUAGE GADTs #-}
-
-module Gadt where
-
-data T a where
- T1 :: T Int
- T2 :: T a
- T3 :: T Bool
-
-f :: T Int -> Bool
-f T1 = True
-f T2 = False
-
-g :: T Bool -> Bool
-g T2 = True
-g T3 = False
-
-h :: T a -> Bool
-h T1 = True
-h T2 = False
+{-# LANGUAGE GADTs #-} + +module Gadt where + +data T a where + T1 :: T Int + T2 :: T a + T3 :: T Bool + +f :: T Int -> Bool +f T1 = True +f T2 = False + +g :: T Bool -> Bool +g T2 = True +g T3 = False + +h :: T a -> Bool +h T1 = True +h T2 = False diff --git a/testsuite/tests/deSugar/should_compile/T4870.hs b/testsuite/tests/deSugar/should_compile/T4870.hs index fefcdb194b..1aa4a73aaa 100644 --- a/testsuite/tests/deSugar/should_compile/T4870.hs +++ b/testsuite/tests/deSugar/should_compile/T4870.hs @@ -1,10 +1,10 @@ -module T4870 where
-
-import T4870a
-
-data D = D
-
-instance C D where
- c x = x
-
-{-# SPECIALIZE f :: D #-}
+module T4870 where + +import T4870a + +data D = D + +instance C D where + c x = x + +{-# SPECIALIZE f :: D #-} diff --git a/testsuite/tests/deSugar/should_compile/T4870a.hs b/testsuite/tests/deSugar/should_compile/T4870a.hs index a4c59a5b66..a52346c232 100644 --- a/testsuite/tests/deSugar/should_compile/T4870a.hs +++ b/testsuite/tests/deSugar/should_compile/T4870a.hs @@ -1,8 +1,8 @@ -module T4870a where
-
-class C a where c :: a -> a
-
-{-# INLINABLE f #-}
-f :: (C a) => a
-f = c f
-
+module T4870a where + +class C a where c :: a -> a + +{-# INLINABLE f #-} +f :: (C a) => a +f = c f + diff --git a/testsuite/tests/deSugar/should_compile/T5117.hs b/testsuite/tests/deSugar/should_compile/T5117.hs index 15f9c796f0..e396cc5d0f 100644 --- a/testsuite/tests/deSugar/should_compile/T5117.hs +++ b/testsuite/tests/deSugar/should_compile/T5117.hs @@ -1,17 +1,17 @@ -{-# LANGUAGE OverloadedStrings #-}
-module BadWarning where
-
-data MyString = MyString String
-
-f1 (MyString "a") = undefined
-f1 (MyString "bb") = undefined
-f1 _ = undefined
-
-f2 (MyString "aa") = undefined
-f2 (MyString "bb") = undefined
-f2 _ = undefined
-
--- Genuine overlap here!
-f3(MyString ('a':_)) = undefined
-f3 (MyString "a") = undefined
-f3 _ = undefined
+{-# LANGUAGE OverloadedStrings #-} +module BadWarning where + +data MyString = MyString String + +f1 (MyString "a") = undefined +f1 (MyString "bb") = undefined +f1 _ = undefined + +f2 (MyString "aa") = undefined +f2 (MyString "bb") = undefined +f2 _ = undefined + +-- Genuine overlap here! +f3(MyString ('a':_)) = undefined +f3 (MyString "a") = undefined +f3 _ = undefined diff --git a/testsuite/tests/deSugar/should_compile/T5252.hs b/testsuite/tests/deSugar/should_compile/T5252.hs index e2498c4089..70a4531688 100644 --- a/testsuite/tests/deSugar/should_compile/T5252.hs +++ b/testsuite/tests/deSugar/should_compile/T5252.hs @@ -1,13 +1,13 @@ --- Trac #5252
--- Killed 7.03 when compiled witout -O,
--- because it could not see that x had a product type
--- but MkS still unpacked it
-
-module T5252 where
-import T5252a
-
-blah :: S -> T
-blah (MkS x _) = x
-
-
-
+-- Trac #5252 +-- Killed 7.03 when compiled witout -O, +-- because it could not see that x had a product type +-- but MkS still unpacked it + +module T5252 where +import T5252a + +blah :: S -> T +blah (MkS x _) = x + + + diff --git a/testsuite/tests/deSugar/should_compile/T5252a.hs b/testsuite/tests/deSugar/should_compile/T5252a.hs index ff1704a566..ab187a0d66 100644 --- a/testsuite/tests/deSugar/should_compile/T5252a.hs +++ b/testsuite/tests/deSugar/should_compile/T5252a.hs @@ -1,5 +1,5 @@ -module T5252a( S(..), T ) where
-
-data T = MkT Int Int
-
-data S = MkS {-# UNPACK #-}!T Int
+module T5252a( S(..), T ) where + +data T = MkT Int Int + +data S = MkS {-# UNPACK #-}!T Int diff --git a/testsuite/tests/deSugar/should_compile/ds055.hs b/testsuite/tests/deSugar/should_compile/ds055.hs index 0fe593dd9a..7f494fefd1 100644 --- a/testsuite/tests/deSugar/should_compile/ds055.hs +++ b/testsuite/tests/deSugar/should_compile/ds055.hs @@ -1,29 +1,29 @@ {-# LANGUAGE ExistentialQuantification, DeriveDataTypeable #-} -
--- This module requires quite trick desugaring,
--- because of the context in the existentials
--- It broke a pre 6.4 GHC
-
-module Foo where
-
- import Data.Data
-
- data Item = forall a. (Data a) => Leaf Bool a
- | forall a. (Data a) => Branch Bool a Int Int
- deriving (Typeable)
-
-
- instance Data Item where
- gfoldl k z (Leaf b v) = z (Leaf b) `k` v
- gfoldl k z (Branch b v a1 a2) = z (\x -> Branch b x a1 a2) `k` v
- gunfold _ _ _ = error "urk"
- toConstr (Leaf _ _) = leafConstr
- toConstr (Branch _ _ _ _) = branchConstr
- dataTypeOf _ = itemDataType
-
- itemDataType = mkDataType "Subliminal.Item" [leafConstr, branchConstr]
- leafConstr = mkConstr itemDataType "Leaf" [] Prefix
- branchConstr = mkConstr itemDataType "Branch" [] Prefix
-
-
-
+ +-- This module requires quite trick desugaring, +-- because of the context in the existentials +-- It broke a pre 6.4 GHC + +module Foo where + + import Data.Data + + data Item = forall a. (Data a) => Leaf Bool a + | forall a. (Data a) => Branch Bool a Int Int + deriving (Typeable) + + + instance Data Item where + gfoldl k z (Leaf b v) = z (Leaf b) `k` v + gfoldl k z (Branch b v a1 a2) = z (\x -> Branch b x a1 a2) `k` v + gunfold _ _ _ = error "urk" + toConstr (Leaf _ _) = leafConstr + toConstr (Branch _ _ _ _) = branchConstr + dataTypeOf _ = itemDataType + + itemDataType = mkDataType "Subliminal.Item" [leafConstr, branchConstr] + leafConstr = mkConstr itemDataType "Leaf" [] Prefix + branchConstr = mkConstr itemDataType "Branch" [] Prefix + + + diff --git a/testsuite/tests/deSugar/should_run/T3382.hs b/testsuite/tests/deSugar/should_run/T3382.hs index 800256a1f0..d04a622d70 100644 --- a/testsuite/tests/deSugar/should_run/T3382.hs +++ b/testsuite/tests/deSugar/should_run/T3382.hs @@ -1,14 +1,14 @@ -{-# OPTIONS_GHC -XOverloadedStrings #-}
-module Main where
-
-import Data.String
-
-instance IsString Int where
- fromString x = 1337
-
-f :: Int -> String
-f "hello" = "correct"
-f _ = "false"
-
-main = do print $ f 1337
- print $ f 1338
+{-# OPTIONS_GHC -XOverloadedStrings #-} +module Main where + +import Data.String + +instance IsString Int where + fromString x = 1337 + +f :: Int -> String +f "hello" = "correct" +f _ = "false" + +main = do print $ f 1337 + print $ f 1338 diff --git a/testsuite/tests/deSugar/should_run/dsrun021.hs b/testsuite/tests/deSugar/should_run/dsrun021.hs index 7489f77a4a..11df6d48d0 100644 --- a/testsuite/tests/deSugar/should_run/dsrun021.hs +++ b/testsuite/tests/deSugar/should_run/dsrun021.hs @@ -1,22 +1,22 @@ --- Transformation stress test
-
-{-# OPTIONS_GHC -XTransformListComp #-}
-
-module Main where
-
-import Data.List(takeWhile)
-import GHC.Exts(sortWith)
-
-employees = [ ("Simon", "MS", 80)
- , ("Erik", "MS", 100)
- , ("Phil", "Ed", 40)
- , ("Gordon", "Ed", 45)
- , ("Paul", "Yale", 60)]
-
-main = putStrLn (show output)
- where
- output = [ (dept, salary)
- | (name, dept, salary) <- employees
- , then sortWith by salary
- , then filter by salary > 50
- , then take 1 ]
\ No newline at end of file +-- Transformation stress test + +{-# OPTIONS_GHC -XTransformListComp #-} + +module Main where + +import Data.List(takeWhile) +import GHC.Exts(sortWith) + +employees = [ ("Simon", "MS", 80) + , ("Erik", "MS", 100) + , ("Phil", "Ed", 40) + , ("Gordon", "Ed", 45) + , ("Paul", "Yale", 60)] + +main = putStrLn (show output) + where + output = [ (dept, salary) + | (name, dept, salary) <- employees + , then sortWith by salary + , then filter by salary > 50 + , then take 1 ] |