Merge branch 'master' of http://darcs.haskell.org/testsuite
authorSimon Peyton Jones <simonpj@microsoft.com>
Fri, 26 Aug 2011 14:30:41 +0000 (15:30 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Fri, 26 Aug 2011 14:30:41 +0000 (15:30 +0100)
testsuite/tests/ghci/scripts/T5417.hs [new file with mode: 0644]
testsuite/tests/ghci/scripts/T5417.script [new file with mode: 0644]
testsuite/tests/ghci/scripts/T5417.stdout [new file with mode: 0644]
testsuite/tests/ghci/scripts/T5417a.hs [new file with mode: 0644]
testsuite/tests/ghci/scripts/all.T
testsuite/tests/haddock/haddock_examples/haddock.Test.stderr
testsuite/tests/th/T1835.hs

diff --git a/testsuite/tests/ghci/scripts/T5417.hs b/testsuite/tests/ghci/scripts/T5417.hs
new file mode 100644 (file)
index 0000000..e86c076
--- /dev/null
@@ -0,0 +1,10 @@
+{-# LANGUAGE TypeFamilies #-}
+module T5417 where
+  import qualified T5417a as C
+
+  data B1 a = B1 a
+
+  instance C.C1 (B1 a) where
+    data F (B1 a) = B2 a
+
+  data family D a
diff --git a/testsuite/tests/ghci/scripts/T5417.script b/testsuite/tests/ghci/scripts/T5417.script
new file mode 100644 (file)
index 0000000..d163d7d
--- /dev/null
@@ -0,0 +1,3 @@
+:l T5417
+:browse
+:info C.F
diff --git a/testsuite/tests/ghci/scripts/T5417.stdout b/testsuite/tests/ghci/scripts/T5417.stdout
new file mode 100644 (file)
index 0000000..1c0506c
--- /dev/null
@@ -0,0 +1,8 @@
+data B1 a = B1 a
+data instance C.F (B1 a) = B2 a
+data family D a
+class C.C1 a where
+  data family C.F a
+class C.C1 a where
+  data family C.F a
+       -- Defined at T5417a.hs:5:10
diff --git a/testsuite/tests/ghci/scripts/T5417a.hs b/testsuite/tests/ghci/scripts/T5417a.hs
new file mode 100644 (file)
index 0000000..8143023
--- /dev/null
@@ -0,0 +1,5 @@
+{-# LANGUAGE TypeFamilies #-}
+module T5417a where
+
+  class C1 a where
+    data F a :: *
index f3ddbff..5be5582 100644 (file)
@@ -75,3 +75,4 @@ test('T4316', reqlib('mtl'), ghci_script, ['T4316.script'])
 test('T4832', normal, ghci_script, ['T4832.script'])
 test('T5045', normal, ghci_script, ['T5045.script'])
 test('T5130', normal, ghci_script, ['T5130.script'])
+test('T5417', normal, ghci_script, ['T5417.script'])
index 4c8c718..48cae1c 100644 (file)
-[1 of 3] Compiling Visible          ( Visible.hs, Visible.o )\r
-\r
-==================== Parser ====================\r
-module Visible where\r
-visible :: Int -> Int\r
-visible a = a\r
-\r
-\r
-[2 of 3] Compiling Hidden           ( Hidden.hs, Hidden.o )\r
-\r
-==================== Parser ====================\r
-module Hidden where\r
-hidden :: Int -> Int\r
-hidden a = a\r
-\r
-\r
-[3 of 3] Compiling Test             ( Test.hs, Test.o )\r
-\r
-==================== Parser ====================\r
-<document comment>\r
-module Test (\r
-        <IEGroup: 1>, <IEGroup: 2>, T(..), T2, T3(..), T4(..), T5(..),\r
-        T6(..), N1(..), N2(..), N3(..), N4, N5(..), N6(..), N7(..),\r
-        <IEGroup: 2>, R(..), R1(..), <document comment>, p, q, u,\r
-        <IEGroup: 1>, C(a, b), D(..), E, F(..), <document comment>, a,\r
-        <IEGroup: 1>, f, g, <IEGroup: 1>, <IEDocNamed: aux1>,\r
-        <IEDocNamed: aux2>, <IEDocNamed: aux3>, <IEDocNamed: aux4>,\r
-        <IEDocNamed: aux5>, <IEDocNamed: aux6>, <IEDocNamed: aux7>,\r
-        <IEDocNamed: aux8>, <IEDocNamed: aux9>, <IEDocNamed: aux10>,\r
-        <IEDocNamed: aux11>, <IEDocNamed: aux12>, <document comment>,\r
-        <IEGroup: 1>, module Hidden, <IEGroup: 1>, module Visible,\r
-        <document comment>, <IEGroup: 1>, Ex(..), <IEGroup: 1>, k, l, m, o,\r
-        <IEGroup: 1>, <IEGroup: 2>, <document comment>, f'\r
-    ) where\r
-import Hidden\r
-import Visible\r
-<document comment>\r
-data T a b\r
-    = <document comment> A Int Maybe Float |\r
-      <document comment> B (T a b, T Int Float)\r
-<document comment>\r
-data T2 a b = T2 a b\r
-<document comment>\r
-data T3 a b = A1 a | B1 b\r
-data T4 a b = A2 a | B2 b\r
-data T5 a b = <document comment> A3 a | <document comment> B3 b\r
-<document comment>\r
-data T6\r
-    = <document comment> A4 |\r
-      <document comment> B4 |\r
-      <document comment> C4\r
-<document comment>\r
-newtype N1 a = N1 a\r
-<document comment>\r
-newtype N2 a b = N2 {n :: a b}\r
-<document comment>\r
-newtype N3 a b = N3 {n3 :: a b <document comment>}\r
-<document comment>\r
-newtype N4 a b = N4 a\r
-newtype N5 a b = N5 {n5 :: a b <document comment>}\r
-newtype N6 a b = <document comment> N6 {n6 :: a b}\r
-<document comment>\r
-newtype N7 a b = <document comment> N7 {n7 :: a b}\r
-class D a => C a where\r
-  { a :: IO a\r
-    b :: [a]\r
-    c :: a }\r
-<document comment>\r
-class D a where\r
-  { d :: T a b\r
-    e :: (a, a) }\r
-<document comment>\r
-instance D Int where\r
-  { d = undefined\r
-    e = undefined }\r
-instance Test.D Float where\r
-  { d = undefined\r
-    e = undefined }\r
-class E a where { ee :: a }\r
-<document comment>\r
-class F a where { ff :: a }\r
-<document comment>\r
-data R\r
-    = <document comment>\r
-      C1 {p :: Int <document comment>,\r
-          q :: forall a. a -> a <document comment>,\r
-          r :: Int <document comment>,\r
-          s :: Int <document comment>} |\r
-      <document comment>\r
-      C2 {t :: T1\r
-               -> (T2 Int Int) -> (T3 Bool Bool) -> (T4 Float Float) -> T5 () (),\r
-          u :: Int,\r
-          v :: Int}\r
-<document comment>\r
-data R1\r
-    = <document comment>\r
-      C3 {s1 :: Int <document comment>,\r
-          s2 :: Int <document comment>,\r
-          s3 :: Int <document comment>}\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-f :: C a => a -> Int\r
-<document comment>\r
-foreign import ccall safe "static header.h g" g :: Int -> IO CInt\r
-<document comment>\r
-h :: Int\r
-h = 42\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-<document comment>\r
-data Ex a\r
-    = forall b. C b => Ex1 b |\r
-      forall b. Ex2 b |\r
-      forall b. C a => Ex3 b |\r
-      Ex4 forall a. a -> a\r
-<document comment>\r
-k ::\r
-  T () () <document comment>\r
-  -> (T2 Int Int) <document comment>\r
-     -> (T3 Bool Bool -> T4 Float Float) <document comment>\r
-        -> T5 () () <document comment> -> IO () <document comment>\r
-l :: (Int, Int, Float) <document comment> -> Int <document comment>\r
-<document comment>\r
-m :: R -> N1 () <document comment> -> IO Int <document comment>\r
-<document comment>\r
-newn :: R <document comment> -> N1 () <document comment> -> IO Int\r
-newn = undefined\r
-<document comment>\r
-foreign import ccall unsafe "static header.h o" o\r
-  :: Float <document comment> -> IO Float <document comment>\r
-<document comment>\r
-newp :: Int\r
-newp = undefined\r
-<document comment>\r
-f' :: Int\r
-data T1 =\r
-f = undefined\r
-f' = undefined\r
-type CInt = Int\r
-k = undefined\r
-l = undefined\r
-m = undefined\r
-\r
-\r
-\r
-Test.hs:32:9: Warning: `p' is exported by `p' and `R(..)'\r
-\r
-Test.hs:32:12: Warning: `q' is exported by `q' and `R(..)'\r
-\r
-Test.hs:32:15: Warning: `u' is exported by `u' and `R(..)'\r
-\r
-Test.hs:38:9: Warning: `a' is exported by `a' and `C(a, b)'\r
+[1 of 3] Compiling Visible          ( Visible.hs, Visible.o )
+
+==================== Parser ====================
+module Visible where
+visible :: Int -> Int
+visible a = a
+
+
+[2 of 3] Compiling Hidden           ( Hidden.hs, Hidden.o )
+
+==================== Parser ====================
+module Hidden where
+hidden :: Int -> Int
+hidden a = a
+
+
+[3 of 3] Compiling Test             ( Test.hs, Test.o )
+
+==================== Parser ====================
+<document comment>
+module Test (
+        <IEGroup: 1>, <IEGroup: 2>, T(..), T2, T3(..), T4(..), T5(..),
+        T6(..), N1(..), N2(..), N3(..), N4, N5(..), N6(..), N7(..),
+        <IEGroup: 2>, R(..), R1(..), <document comment>, p, q, u,
+        <IEGroup: 1>, C(a, b), D(..), E, F(..), <document comment>, a,
+        <IEGroup: 1>, f, g, <IEGroup: 1>, <IEDocNamed: aux1>,
+        <IEDocNamed: aux2>, <IEDocNamed: aux3>, <IEDocNamed: aux4>,
+        <IEDocNamed: aux5>, <IEDocNamed: aux6>, <IEDocNamed: aux7>,
+        <IEDocNamed: aux8>, <IEDocNamed: aux9>, <IEDocNamed: aux10>,
+        <IEDocNamed: aux11>, <IEDocNamed: aux12>, <document comment>,
+        <IEGroup: 1>, module Hidden, <IEGroup: 1>, module Visible,
+        <document comment>, <IEGroup: 1>, Ex(..), <IEGroup: 1>, k, l, m, o,
+        <IEGroup: 1>, <IEGroup: 2>, <document comment>, f'
+    ) where
+import Hidden
+import Visible
+<document comment>
+data T a b
+    = <document comment> A Int Maybe Float |
+      <document comment> B (T a b, T Int Float)
+<document comment>
+data T2 a b = T2 a b
+<document comment>
+data T3 a b = A1 a | B1 b
+data T4 a b = A2 a | B2 b
+data T5 a b = <document comment> A3 a | <document comment> B3 b
+<document comment>
+data T6
+    = <document comment> A4 |
+      <document comment> B4 |
+      <document comment> C4
+<document comment>
+newtype N1 a = N1 a
+<document comment>
+newtype N2 a b = N2 {n :: a b}
+<document comment>
+newtype N3 a b = N3 {n3 :: a b <document comment>}
+<document comment>
+newtype N4 a b = N4 a
+newtype N5 a b = N5 {n5 :: a b <document comment>}
+newtype N6 a b = <document comment> N6 {n6 :: a b}
+<document comment>
+newtype N7 a b = <document comment> N7 {n7 :: a b}
+class D a => C a where
+  a :: IO a
+  b :: [a]
+  c :: a
+<document comment>
+class D a where
+  d :: T a b
+  e :: (a, a)
+<document comment>
+instance D Int where
+  d = undefined
+  e = undefined
+instance Test.D Float where
+  d = undefined
+  e = undefined
+class E a where
+  ee :: a
+<document comment>
+class F a where
+  ff :: a
+<document comment>
+data R
+    = <document comment>
+      C1 {p :: Int <document comment>,
+          q :: forall a. a -> a <document comment>,
+          r :: Int <document comment>,
+          s :: Int <document comment>} |
+      <document comment>
+      C2 {t :: T1
+               -> (T2 Int Int) -> (T3 Bool Bool) -> (T4 Float Float) -> T5 () (),
+          u :: Int,
+          v :: Int}
+<document comment>
+data R1
+    = <document comment>
+      C3 {s1 :: Int <document comment>,
+          s2 :: Int <document comment>,
+          s3 :: Int <document comment>}
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+f :: C a => a -> Int
+<document comment>
+foreign import ccall safe "static header.h g" g :: Int -> IO CInt
+<document comment>
+h :: Int
+h = 42
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+<document comment>
+data Ex a
+    = forall b. C b => Ex1 b |
+      forall b. Ex2 b |
+      forall b. C a => Ex3 b |
+      Ex4 forall a. a -> a
+<document comment>
+k ::
+  T () () <document comment>
+  -> (T2 Int Int) <document comment>
+     -> (T3 Bool Bool -> T4 Float Float) <document comment>
+        -> T5 () () <document comment> -> IO () <document comment>
+l :: (Int, Int, Float) <document comment> -> Int <document comment>
+<document comment>
+m :: R -> N1 () <document comment> -> IO Int <document comment>
+<document comment>
+newn :: R <document comment> -> N1 () <document comment> -> IO Int
+newn = undefined
+<document comment>
+foreign import ccall unsafe "static header.h o" o
+  :: Float <document comment> -> IO Float <document comment>
+<document comment>
+newp :: Int
+newp = undefined
+<document comment>
+f' :: Int
+data T1 =
+f = undefined
+f' = undefined
+type CInt = Int
+k = undefined
+l = undefined
+m = undefined
+
+
+
+Test.hs:32:9: Warning: `p' is exported by `p' and `R(..)'
+
+Test.hs:32:12: Warning: `q' is exported by `q' and `R(..)'
+
+Test.hs:32:15: Warning: `u' is exported by `u' and `R(..)'
+
+Test.hs:38:9: Warning: `a' is exported by `a' and `C(a, b)'
index 296bf90..e9bda36 100644 (file)
@@ -26,12 +26,12 @@ instance MyClass2 Int Bool
 
 main = do
     putStrLn $(do { info <- reify ''MyClass; lift (pprint info) })
-    print $(isClassInstance ''Eq [ConT ''Foo] >>= lift)
-    print $(isClassInstance ''MyClass [ConT ''Foo] >>= lift)
-    print $ not $(isClassInstance ''Show [ConT ''Foo] >>= lift)
-    print $(isClassInstance ''MyClass [ConT ''Bar] >>= lift) -- this one
-    print $(isClassInstance ''MyClass [ConT ''Baz] >>= lift)
-    print $(isClassInstance ''MyClass [AppT (ConT ''Quux) (ConT ''Int)] >>= lift) --this one
-    print $(isClassInstance ''MyClass [AppT (ConT ''Quux2) (ConT ''Int)] >>= lift) -- this one
-    print $(isClassInstance ''MyClass2 [ConT ''Int, ConT ''Bool] >>= lift)
-    print $(isClassInstance ''MyClass2 [ConT ''Bool, ConT ''Bool] >>= lift)
+    print $(isInstance ''Eq [ConT ''Foo] >>= lift)
+    print $(isInstance ''MyClass [ConT ''Foo] >>= lift)
+    print $ not $(isInstance ''Show [ConT ''Foo] >>= lift)
+    print $(isInstance ''MyClass [ConT ''Bar] >>= lift) -- this one
+    print $(isInstance ''MyClass [ConT ''Baz] >>= lift)
+    print $(isInstance ''MyClass [AppT (ConT ''Quux) (ConT ''Int)] >>= lift) --this one
+    print $(isInstance ''MyClass [AppT (ConT ''Quux2) (ConT ''Int)] >>= lift) -- this one
+    print $(isInstance ''MyClass2 [ConT ''Int, ConT ''Bool] >>= lift)
+    print $(isInstance ''MyClass2 [ConT ''Bool, ConT ''Bool] >>= lift)