diff options
Diffstat (limited to 'testsuite/tests/ghci')
23 files changed, 119 insertions, 88 deletions
diff --git a/testsuite/tests/ghci/prog009/ghci.prog009.stdout b/testsuite/tests/ghci/prog009/ghci.prog009.stdout index 74d4c49e88..20c759782f 100644 --- a/testsuite/tests/ghci/prog009/ghci.prog009.stdout +++ b/testsuite/tests/ghci/prog009/ghci.prog009.stdout @@ -1,8 +1,8 @@ -nub :: Eq a => [a] -> [a]
-"tan"
-nub :: Eq a => [a] -> [a]
-"tan"
-nub :: Eq a => [a] -> [a]
-A ( A.hs, interpreted )
-nub :: Eq a => [a] -> [a]
-"tan"
+nub :: Eq a => [a] -> [a] +"tan" +nub :: Eq a => [a] -> [a] +"tan" +nub :: Eq a => [a] -> [a] +A ( A.hs, interpreted ) +nub :: Eq a => [a] -> [a] +"tan" diff --git a/testsuite/tests/ghci/scripts/Defer02.stderr b/testsuite/tests/ghci/scripts/Defer02.stderr index 8b63df689a..ad39191d08 100644 --- a/testsuite/tests/ghci/scripts/Defer02.stderr +++ b/testsuite/tests/ghci/scripts/Defer02.stderr @@ -12,6 +12,11 @@ • In the expression: 'p' In an equation for ‘a’: a = 'p' +../../typecheck/should_run/Defer01.hs:18:9: warning: + • No instance for (Eq B) arising from a use of ‘==’ + • In the expression: x == x + In an equation for ‘b’: b x = x == x + ../../typecheck/should_run/Defer01.hs:25:1: warning: Pattern match(es) have inaccessible right hand side In an equation for ‘c’: c (C2 x) = ... @@ -173,7 +178,7 @@ (deferred type error) <interactive>:13:8: error: - • Couldn't match expected type ‘Bool’ with actual type ‘Int’ + • Couldn't match type ‘Int’ with ‘Bool’ arising from a use of ‘k’ • In the first argument of ‘print’, namely ‘(k 2)’ In the expression: print (k 2) In an equation for ‘it’: it = print (k 2) diff --git a/testsuite/tests/ghci/scripts/Defer02.stdout b/testsuite/tests/ghci/scripts/Defer02.stdout index 4fd8c5d880..9d68933c44 100644 --- a/testsuite/tests/ghci/scripts/Defer02.stdout +++ b/testsuite/tests/ghci/scripts/Defer02.stdout @@ -1 +1 @@ -Hello World("
\ No newline at end of file +"
\ No newline at end of file diff --git a/testsuite/tests/ghci/scripts/T10122.stdout b/testsuite/tests/ghci/scripts/T10122.stdout index c79a8711f3..84d8856c1b 100644 --- a/testsuite/tests/ghci/scripts/T10122.stdout +++ b/testsuite/tests/ghci/scripts/T10122.stdout @@ -1,2 +1,2 @@ T :: (k -> *) -> k -> * -T :: forall (k :: BOX). (k -> *) -> k -> * +T :: forall k. (k -> *) -> k -> * diff --git a/testsuite/tests/ghci/scripts/T10508.stderr b/testsuite/tests/ghci/scripts/T10508.stderr index c5aff2361c..86ee279393 100644 --- a/testsuite/tests/ghci/scripts/T10508.stderr +++ b/testsuite/tests/ghci/scripts/T10508.stderr @@ -1,8 +1,8 @@ -<interactive>:1:15: +<interactive>:1:15: error: Couldn't match type ‘a0 -> a0’ with ‘[Char]’ - Expected type: Prelude.String - Actual type: a0 -> a0 + Expected type: Prelude.String + Actual type: a0 -> a0 Probable cause: ‘id’ is applied to too few arguments In the first argument of ‘return’, namely ‘id’ - In the expression: return id
\ No newline at end of file + In the expression: return id diff --git a/testsuite/tests/ghci/scripts/T2182ghci.stderr b/testsuite/tests/ghci/scripts/T2182ghci.stderr index f5eafdfc88..dd65a7fc1f 100644 --- a/testsuite/tests/ghci/scripts/T2182ghci.stderr +++ b/testsuite/tests/ghci/scripts/T2182ghci.stderr @@ -1,25 +1,25 @@ <interactive>:2:1: error: - No instance for (Show (t0 -> t0)) arising from a use of ‘print’ + No instance for (Show (r0 -> r0)) arising from a use of ‘print’ (maybe you haven't applied a function to enough arguments?) In a stmt of an interactive GHCi command: print it <interactive>:10:1: error: - No instance for (Show (t0 -> t0)) arising from a use of ‘print’ + No instance for (Show (r0 -> r0)) arising from a use of ‘print’ (maybe you haven't applied a function to enough arguments?) In a stmt of an interactive GHCi command: print it <interactive>:19:1: error: - No instance for (Show (t0 -> t0)) arising from a use of ‘print’ + No instance for (Show (r0 -> r0)) arising from a use of ‘print’ (maybe you haven't applied a function to enough arguments?) In a stmt of an interactive GHCi command: print it <interactive>:28:1: error: - No instance for (Show (t0 -> t0)) arising from a use of ‘print’ + No instance for (Show (r0 -> r0)) arising from a use of ‘print’ (maybe you haven't applied a function to enough arguments?) In a stmt of an interactive GHCi command: print it <interactive>:49:1: error: - No instance for (Show (t0 -> t0)) arising from a use of ‘print’ + No instance for (Show (r0 -> r0)) arising from a use of ‘print’ (maybe you haven't applied a function to enough arguments?) In a stmt of an interactive GHCi command: print it diff --git a/testsuite/tests/ghci/scripts/T4087.stdout b/testsuite/tests/ghci/scripts/T4087.stdout index 2ca08aa449..3f600bd78d 100644 --- a/testsuite/tests/ghci/scripts/T4087.stdout +++ b/testsuite/tests/ghci/scripts/T4087.stdout @@ -1,4 +1,4 @@ -type role Equal nominal nominal
-data Equal a b where
- Equal :: Equal b b
- -- Defined at T4087.hs:5:1
+type role Equal nominal nominal +data Equal a b where + Equal :: Equal a a + -- Defined at T4087.hs:5:1 diff --git a/testsuite/tests/ghci/scripts/T4175.stdout b/testsuite/tests/ghci/scripts/T4175.stdout index cea9a01264..dbf2f371dd 100644 --- a/testsuite/tests/ghci/scripts/T4175.stdout +++ b/testsuite/tests/ghci/scripts/T4175.stdout @@ -1,4 +1,6 @@ -type family A a b :: * -- Defined at T4175.hs:7:1 +type family A a b + Kind: * -> * -> * + -- Defined at T4175.hs:7:1 type instance A (B a) b = () -- Defined at T4175.hs:10:1 type instance A (Maybe a) a = a -- Defined at T4175.hs:9:1 type instance A Int Int = () -- Defined at T4175.hs:8:1 @@ -7,13 +9,16 @@ instance G B -- Defined at T4175.hs:34:10 data instance B () = MkB -- Defined at T4175.hs:13:15 type instance A (B a) b = () -- Defined at T4175.hs:10:1 class C a where - type family D a b :: * + type family D a b + Kind: * -> * -> * -- Defined at T4175.hs:16:5 type instance D () () = Bool -- Defined at T4175.hs:22:5 type instance D Int () = String -- Defined at T4175.hs:19:5 -type family E a :: * where - E () = Bool - E Int = String +type family E a + Kind: * -> * + where + E () = Bool + E Int = String -- Defined at T4175.hs:24:1 data () = () -- Defined in ‘GHC.Tuple’ instance C () -- Defined at T4175.hs:21:10 diff --git a/testsuite/tests/ghci/scripts/T6018ghcifail.stderr b/testsuite/tests/ghci/scripts/T6018ghcifail.stderr index ff97c50957..110092d514 100644 --- a/testsuite/tests/ghci/scripts/T6018ghcifail.stderr +++ b/testsuite/tests/ghci/scripts/T6018ghcifail.stderr @@ -46,7 +46,7 @@ <interactive>:60:15: error: Type family equation violates injectivity annotation. - Kind variable ‘k1’ cannot be inferred from the right-hand side. + Kind variable ‘k’ cannot be inferred from the right-hand side. (enabling -fprint-explicit-kinds might help) In the type family equation: PolyKindVars '[] = '[] -- Defined at <interactive>:60:15 @@ -56,7 +56,7 @@ Kind variable ‘k’ cannot be inferred from the right-hand side. (enabling -fprint-explicit-kinds might help) In the type family equation: - forall (k :: BOX) (a :: k) (b :: k). + forall k (a :: k) (b :: k). Fc a b = Int -- Defined at <interactive>:64:15 <interactive>:68:15: error: @@ -65,7 +65,7 @@ cannot be inferred from the right-hand side. (enabling -fprint-explicit-kinds might help) In the type family equation: - forall (k :: BOX) (a :: k) (b :: k). + forall k (a :: k) (b :: k). Gc a b = Int -- Defined at <interactive>:68:15 <interactive>:81:15: error: diff --git a/testsuite/tests/ghci/scripts/T7627.stdout b/testsuite/tests/ghci/scripts/T7627.stdout index 158672cc2a..81a360facb 100644 --- a/testsuite/tests/ghci/scripts/T7627.stdout +++ b/testsuite/tests/ghci/scripts/T7627.stdout @@ -25,9 +25,9 @@ instance Foldable ((,) a) -- Defined in ‘Data.Foldable’ instance Traversable ((,) a) -- Defined in ‘Data.Traversable’ instance (Monoid a, Monoid b) => Monoid (a, b) -- Defined in ‘GHC.Base’ -data (#,#) (a :: OpenKind) (b :: OpenKind) = (#,#) a b +data (#,#) (c :: TYPE a) (d :: TYPE b) = (#,#) c d -- Defined in ‘GHC.Prim’ (,) :: a -> b -> (a, b) -(#,#) :: a -> b -> (# a, b #) +(#,#) :: c -> d -> (# c, d #) ( , ) :: a -> b -> (a, b) -(# , #) :: a -> b -> (# a, b #) +(# , #) :: c -> d -> (# c, d #) diff --git a/testsuite/tests/ghci/scripts/T7730.stdout b/testsuite/tests/ghci/scripts/T7730.stdout index d91d058e53..fcf9e4c1d2 100644 --- a/testsuite/tests/ghci/scripts/T7730.stdout +++ b/testsuite/tests/ghci/scripts/T7730.stdout @@ -4,5 +4,5 @@ data A (x :: k) (y :: k1) A :: k -> k1 -> * type role T phantom data T (a :: k) where - MkT :: forall (k :: BOX) (a :: k) a1. a1 -> T a + MkT :: forall k (a :: k) a1. a1 -> T a -- Defined at <interactive>:6:1 diff --git a/testsuite/tests/ghci/scripts/T7873.script b/testsuite/tests/ghci/scripts/T7873.script index 590332665a..404c1f5bda 100644 --- a/testsuite/tests/ghci/scripts/T7873.script +++ b/testsuite/tests/ghci/scripts/T7873.script @@ -1,5 +1,6 @@ -:set -XPolyKinds -XRankNTypes -XGADTs +:set -XPolyKinds -XRankNTypes -XGADTs -XTypeInType data D1 = MkD1 (forall p (a :: k). p a -> Int) data D2 = MkD2 (forall p a. p a -> Int) -:i D1 +data D3 = MkD3 (forall k p (a :: k). p a -> Int) :i D2 +:i D3 diff --git a/testsuite/tests/ghci/scripts/T7873.stderr b/testsuite/tests/ghci/scripts/T7873.stderr new file mode 100644 index 0000000000..3b6f4f64c1 --- /dev/null +++ b/testsuite/tests/ghci/scripts/T7873.stderr @@ -0,0 +1,7 @@ + +<interactive>:2:1: error: + • Kind variable ‘k’ is implicitly bound in datatype + ‘D1’, but does not appear as the kind of any + of its type variables. Perhaps you meant + to bind it (with TypeInType) explicitly somewhere? + • In the data declaration for ‘D1’ diff --git a/testsuite/tests/ghci/scripts/T7873.stdout b/testsuite/tests/ghci/scripts/T7873.stdout index 84f3117958..b7415d6222 100644 --- a/testsuite/tests/ghci/scripts/T7873.stdout +++ b/testsuite/tests/ghci/scripts/T7873.stdout @@ -1,6 +1,4 @@ -data D1 where
- MkD1 :: (forall (p :: k -> *) (a :: k). p a -> Int) -> D1
- -- Defined at <interactive>:2:1
-data D2 where
- MkD2 :: (forall (p :: k -> *) (a :: k). p a -> Int) -> D2
- -- Defined at <interactive>:3:1
+data D2 = MkD2 (forall (p :: Any -> *) (a :: Any). p a -> Int) + -- Defined at <interactive>:3:1 +data D3 = MkD3 (forall k (p :: k -> *) (a :: k). p a -> Int) + -- Defined at <interactive>:4:1 diff --git a/testsuite/tests/ghci/scripts/T7939.stdout b/testsuite/tests/ghci/scripts/T7939.stdout index feb890c578..ec6c75cca2 100644 --- a/testsuite/tests/ghci/scripts/T7939.stdout +++ b/testsuite/tests/ghci/scripts/T7939.stdout @@ -1,25 +1,34 @@ class Foo (a :: k) where - type family Bar (a :: k) b :: * + type family Bar (a :: k) b + Kind: forall k1. k1 -> * -> * -- Defined at T7939.hs:6:4 Bar :: k -> * -> * -type family F a :: * -- Defined at T7939.hs:8:1 +type family F a + Kind: * -> * + -- Defined at T7939.hs:8:1 type instance F Int = Bool -- Defined at T7939.hs:9:1 F :: * -> * -type family G a :: * where - G Int = Bool +type family G a + Kind: * -> * + where G Int = Bool -- Defined at T7939.hs:11:1 G :: * -> * -type family H (a :: Bool) :: Bool where - H 'False = 'True +type family H (a :: Bool) + Kind: Bool -> Bool + where H 'False = 'True -- Defined at T7939.hs:14:1 H :: Bool -> Bool -type family J (a :: [k]) :: Bool where - J k '[] = 'False - forall (k :: BOX) (h :: k) (t :: [k]). J k (h : t) = 'True +type family J (a :: [k]) + Kind: forall k1. [k1] -> Bool + where + [k] J k '[] = 'False + [k, (h :: k), (t :: [k])] J k (h : t) = 'True -- Defined at T7939.hs:17:1 J :: [k] -> Bool -type family K (a :: [k]) :: Maybe k where - K k '[] = 'Nothing - forall (k :: BOX) (h :: k) (t :: [k]). K k (h : t) = 'Just h +type family K (a1 :: [a]) + Kind: forall a2. [a2] -> Maybe a2 + where + [a] K a '[] = 'Nothing + [a, (h :: a), (t :: [a])] K a (h : t) = 'Just h -- Defined at T7939.hs:21:1 -K :: [k] -> Maybe k +K :: [a] -> Maybe a diff --git a/testsuite/tests/ghci/scripts/T9181.stdout b/testsuite/tests/ghci/scripts/T9181.stdout index 15504ec324..0e9913966f 100644 --- a/testsuite/tests/ghci/scripts/T9181.stdout +++ b/testsuite/tests/ghci/scripts/T9181.stdout @@ -1,10 +1,16 @@ -type family (*) (a :: Nat) (b :: Nat) :: Nat -type family (+) (a :: Nat) (b :: Nat) :: Nat -type family (-) (a :: Nat) (b :: Nat) :: Nat +type family (*) (a :: Nat) (b :: Nat) + Kind: Nat -> Nat -> Nat +type family (+) (a :: Nat) (b :: Nat) + Kind: Nat -> Nat -> Nat +type family (-) (a :: Nat) (b :: Nat) + Kind: Nat -> Nat -> Nat type (<=) (x :: Nat) (y :: Nat) = (x <=? y) ~ 'True -type family (<=?) (a :: Nat) (b :: Nat) :: Bool -type family CmpNat (a :: Nat) (b :: Nat) :: Ordering -type family CmpSymbol (a :: Symbol) (b :: Symbol) :: Ordering +type family (<=?) (a :: Nat) (b :: Nat) + Kind: Nat -> Nat -> Bool +type family CmpNat (a :: Nat) (b :: Nat) + Kind: Nat -> Nat -> Ordering +type family CmpSymbol (a :: Symbol) (b :: Symbol) + Kind: Symbol -> Symbol -> Ordering data ErrorMessage where Text :: Symbol -> ErrorMessage ShowType :: t -> ErrorMessage @@ -20,8 +26,10 @@ data SomeNat where SomeNat :: KnownNat n => (Proxy n) -> SomeNat data SomeSymbol where SomeSymbol :: KnownSymbol n => (Proxy n) -> SomeSymbol -type family TypeError (a :: ErrorMessage) :: b where -type family (^) (a :: Nat) (b :: Nat) :: Nat +type family TypeError (a :: ErrorMessage) + Kind: forall b1. ErrorMessage -> b1 +type family (^) (a :: Nat) (b :: Nat) + Kind: Nat -> Nat -> Nat natVal :: KnownNat n => proxy n -> Integer natVal' :: KnownNat n => Proxy# n -> Integer sameNat :: diff --git a/testsuite/tests/ghci/scripts/ghci001.stdout b/testsuite/tests/ghci/scripts/ghci001.stdout index b0a2458b59..a1ff2665f5 100644 --- a/testsuite/tests/ghci/scripts/ghci001.stdout +++ b/testsuite/tests/ghci/scripts/ghci001.stdout @@ -1,2 +1,2 @@ -(+) :: Num a => a -> a -> a
-enumFromTo :: Enum a => a -> a -> [a]
+(+) :: Num a => a -> a -> a +enumFromTo :: Enum a => a -> a -> [a] diff --git a/testsuite/tests/ghci/scripts/ghci013.stdout b/testsuite/tests/ghci/scripts/ghci013.stdout index 5daf16ee23..6d99b877ba 100644 --- a/testsuite/tests/ghci/scripts/ghci013.stdout +++ b/testsuite/tests/ghci/scripts/ghci013.stdout @@ -1 +1 @@ -f :: Monad m => (m a, t) -> m b
+f :: Monad m => (m a, r) -> m b diff --git a/testsuite/tests/ghci/scripts/ghci047.stderr b/testsuite/tests/ghci/scripts/ghci047.stderr index dc8dfc9ecb..7e696c02c4 100644 --- a/testsuite/tests/ghci/scripts/ghci047.stderr +++ b/testsuite/tests/ghci/scripts/ghci047.stderr @@ -1,16 +1,14 @@ -<interactive>:38:1: - Couldn't match type ‘HFalse’ with ‘HTrue’ - Expected type: HTrue - Actual type: Or HFalse HFalse - In the expression: f - In the expression: f $ Baz 'a' - In an equation for ‘it’: it = f $ Baz 'a' +<interactive>:38:1: error: + • Couldn't match type ‘HFalse’ with ‘HTrue’ + arising from a use of ‘f’ + • In the expression: f + In the expression: f $ Baz 'a' + In an equation for ‘it’: it = f $ Baz 'a' -<interactive>:39:1: - Couldn't match type ‘HFalse’ with ‘HTrue’ - Expected type: HTrue - Actual type: Or HFalse HFalse - In the expression: f - In the expression: f $ Quz - In an equation for ‘it’: it = f $ Quz +<interactive>:39:1: error: + • Couldn't match type ‘HFalse’ with ‘HTrue’ + arising from a use of ‘f’ + • In the expression: f + In the expression: f $ Quz + In an equation for ‘it’: it = f $ Quz diff --git a/testsuite/tests/ghci/scripts/ghci051.stderr b/testsuite/tests/ghci/scripts/ghci051.stderr index 7a33dd57b6..6d28081344 100644 --- a/testsuite/tests/ghci/scripts/ghci051.stderr +++ b/testsuite/tests/ghci/scripts/ghci051.stderr @@ -4,7 +4,7 @@ with ‘Ghci1.T’ NB: ‘Ghci1.T’ is defined at <interactive>:2:1-14 ‘T’ is defined at <interactive>:5:1-16 - Expected type: T' - Actual type: T + Expected type: T' + Actual type: T In the expression: C :: T' In an equation for ‘c’: c = C :: T' diff --git a/testsuite/tests/ghci/scripts/ghci055.stdout b/testsuite/tests/ghci/scripts/ghci055.stdout index d57430bb8c..578740d6de 100644 --- a/testsuite/tests/ghci/scripts/ghci055.stdout +++ b/testsuite/tests/ghci/scripts/ghci055.stdout @@ -1,6 +1,6 @@ *** Exception: Prelude.undefined CallStack (from ImplicitParams): - error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err + error, called at libraries/base/GHC/Err.hs:43:14 in base:GHC.Err undefined, called at <interactive>:1:7 in interactive:Ghci1 -x :: t = _ +x :: r = _ y :: Integer = 3 diff --git a/testsuite/tests/ghci/scripts/ghci059.script b/testsuite/tests/ghci/scripts/ghci059.script index 936277e336..1d344d7833 100644 --- a/testsuite/tests/ghci/scripts/ghci059.script +++ b/testsuite/tests/ghci/scripts/ghci059.script @@ -1,5 +1,5 @@ -- At one point, :info Coercible would not report it as a constraint, but as a --- data type. So this test case ensures that this is broken later. +-- data type. So this test case ensures that this is not broken later. :m + Data.Coerce :info Coercible diff --git a/testsuite/tests/ghci/scripts/ghci059.stdout b/testsuite/tests/ghci/scripts/ghci059.stdout index 6b2c8f886e..fac61163f4 100644 --- a/testsuite/tests/ghci/scripts/ghci059.stdout +++ b/testsuite/tests/ghci/scripts/ghci059.stdout @@ -1,4 +1,4 @@ type role Coercible representational representational -class Coercible (a :: k) (b :: k) +class a ~R# b => Coercible (a :: k) (b :: k) -- Defined in ‘GHC.Types’ coerce :: Coercible a b => a -> b -- Defined in ‘GHC.Prim’ |