From 5879d5aab929e9959d48e03dad456b824160b3bf Mon Sep 17 00:00:00 2001 From: Simon Peyton Jones Date: Thu, 18 Jun 2015 08:54:11 +0100 Subject: Report arity errors correctly despite kinds Trac #10516 pointed out that when reporting arity errors (like "T needs 2 arguments but has been given 1"), we should not count kind arguments, since they are implicit. If we include kind args in the count, we get very confusing error messages indeed. I did a little bit of refactoring which make some error messages wobble around. But the payload of this fix is in TcValidity.tyConArityErr --- testsuite/tests/gadt/T3163.stderr | 10 ++--- testsuite/tests/gadt/gadt11.stderr | 12 +++--- testsuite/tests/gadt/gadtSyntaxFail001.stderr | 14 +++---- testsuite/tests/gadt/gadtSyntaxFail002.stderr | 14 +++---- testsuite/tests/gadt/gadtSyntaxFail003.stderr | 14 +++---- testsuite/tests/gadt/records-fail1.stderr | 10 ++--- testsuite/tests/ghci/scripts/T9293.stderr | 38 ++++++++--------- testsuite/tests/ghci/scripts/ghci057.stderr | 38 ++++++++--------- .../tests/indexed-types/should_fail/BadSock.stderr | 10 ++--- .../tests/indexed-types/should_fail/T2157.stderr | 8 ++-- .../tests/indexed-types/should_fail/T9433.stderr | 4 +- testsuite/tests/module/mod60.stderr | 10 ++--- .../should_fail/ParserNoBinaryLiterals2.stderr | 10 ++--- .../should_fail/ParserNoBinaryLiterals3.stderr | 10 ++--- testsuite/tests/polykinds/T10516.hs | 9 ++++ testsuite/tests/polykinds/T10516.stderr | 4 ++ testsuite/tests/polykinds/T9222.stderr | 48 +++++++++++----------- testsuite/tests/polykinds/all.T | 1 + .../tests/typecheck/should_compile/T7050.stderr | 10 ++--- .../tests/typecheck/should_compile/T7562.stderr | 10 ++--- testsuite/tests/typecheck/should_fail/T3966.stderr | 16 ++++---- testsuite/tests/typecheck/should_fail/T7175.stderr | 12 +++--- .../tests/typecheck/should_fail/tcfail100.stderr | 8 ++-- .../tests/typecheck/should_fail/tcfail101.stderr | 8 ++-- .../tests/typecheck/should_fail/tcfail107.stderr | 10 ++--- .../tests/typecheck/should_fail/tcfail129.stderr | 24 +++++------ .../tests/typecheck/should_fail/tcfail140.stderr | 12 +++--- .../tests/typecheck/should_fail/tcfail155.stderr | 12 +++--- .../tests/typecheck/should_fail/tcfail187.stderr | 10 ++--- .../tests/typecheck/should_fail/tcfail195.stderr | 10 ++--- .../tests/typecheck/should_fail/tcfail209.stderr | 10 ++--- 31 files changed, 215 insertions(+), 201 deletions(-) create mode 100644 testsuite/tests/polykinds/T10516.hs create mode 100644 testsuite/tests/polykinds/T10516.stderr (limited to 'testsuite/tests') diff --git a/testsuite/tests/gadt/T3163.stderr b/testsuite/tests/gadt/T3163.stderr index 5daca38050..095378b540 100644 --- a/testsuite/tests/gadt/T3163.stderr +++ b/testsuite/tests/gadt/T3163.stderr @@ -1,5 +1,5 @@ - -T3163.hs:8:5: - Illegal polymorphic or qualified type: forall s. s - In the definition of data constructor ‘Unreached’ - In the data declaration for ‘Taker’ + +T3163.hs:8:5: error: + Illegal polymorphic or qualified type: forall s. s + In the definition of data constructor ‘Unreached’ + In the data type declaration for ‘Taker’ diff --git a/testsuite/tests/gadt/gadt11.stderr b/testsuite/tests/gadt/gadt11.stderr index 016fd2bd75..1dba9b0a40 100644 --- a/testsuite/tests/gadt/gadt11.stderr +++ b/testsuite/tests/gadt/gadt11.stderr @@ -1,6 +1,6 @@ - -gadt11.hs:12:3: - Data constructor ‘L2’ returns type ‘T1 Bool’ - instead of an instance of its parent type ‘T2 a’ - In the definition of data constructor ‘L2’ - In the data declaration for ‘T2’ + +gadt11.hs:12:3: error: + Data constructor ‘L2’ returns type ‘T1 Bool’ + instead of an instance of its parent type ‘T2 a’ + In the definition of data constructor ‘L2’ + In the data type declaration for ‘T2’ diff --git a/testsuite/tests/gadt/gadtSyntaxFail001.stderr b/testsuite/tests/gadt/gadtSyntaxFail001.stderr index 54fa5f992b..e92272d5c2 100644 --- a/testsuite/tests/gadt/gadtSyntaxFail001.stderr +++ b/testsuite/tests/gadt/gadtSyntaxFail001.stderr @@ -1,7 +1,7 @@ - -gadtSyntaxFail001.hs:8:5: - Data constructor ‘C2’ has existential type variables, a context, or a specialised result type - C2 :: forall a. a -> Char -> Foo a Int - (Use ExistentialQuantification or GADTs to allow this) - In the definition of data constructor ‘C2’ - In the data declaration for ‘Foo’ + +gadtSyntaxFail001.hs:8:5: error: + Data constructor ‘C2’ has existential type variables, a context, or a specialised result type + C2 :: forall a. a -> Char -> Foo a Int + (Use ExistentialQuantification or GADTs to allow this) + In the definition of data constructor ‘C2’ + In the data type declaration for ‘Foo’ diff --git a/testsuite/tests/gadt/gadtSyntaxFail002.stderr b/testsuite/tests/gadt/gadtSyntaxFail002.stderr index 194275b528..4a969aaa49 100644 --- a/testsuite/tests/gadt/gadtSyntaxFail002.stderr +++ b/testsuite/tests/gadt/gadtSyntaxFail002.stderr @@ -1,7 +1,7 @@ - -gadtSyntaxFail002.hs:8:5: - Data constructor ‘C2’ has existential type variables, a context, or a specialised result type - C2 :: forall a. a -> Char -> Foo a a - (Use ExistentialQuantification or GADTs to allow this) - In the definition of data constructor ‘C2’ - In the data declaration for ‘Foo’ + +gadtSyntaxFail002.hs:8:5: error: + Data constructor ‘C2’ has existential type variables, a context, or a specialised result type + C2 :: forall a. a -> Char -> Foo a a + (Use ExistentialQuantification or GADTs to allow this) + In the definition of data constructor ‘C2’ + In the data type declaration for ‘Foo’ diff --git a/testsuite/tests/gadt/gadtSyntaxFail003.stderr b/testsuite/tests/gadt/gadtSyntaxFail003.stderr index 22f1f41ea9..f8fbeff079 100644 --- a/testsuite/tests/gadt/gadtSyntaxFail003.stderr +++ b/testsuite/tests/gadt/gadtSyntaxFail003.stderr @@ -1,7 +1,7 @@ - -gadtSyntaxFail003.hs:7:5: - Data constructor ‘C1’ has existential type variables, a context, or a specialised result type - C1 :: forall b a c. a -> Int -> c -> Foo b a - (Use ExistentialQuantification or GADTs to allow this) - In the definition of data constructor ‘C1’ - In the data declaration for ‘Foo’ + +gadtSyntaxFail003.hs:7:5: error: + Data constructor ‘C1’ has existential type variables, a context, or a specialised result type + C1 :: forall b a c. a -> Int -> c -> Foo b a + (Use ExistentialQuantification or GADTs to allow this) + In the definition of data constructor ‘C1’ + In the data type declaration for ‘Foo’ diff --git a/testsuite/tests/gadt/records-fail1.stderr b/testsuite/tests/gadt/records-fail1.stderr index aca4d7fea8..6fd871cbf7 100644 --- a/testsuite/tests/gadt/records-fail1.stderr +++ b/testsuite/tests/gadt/records-fail1.stderr @@ -1,5 +1,5 @@ - -records-fail1.hs:7:1: - Constructors T1 and T4 have a common field ‘x’, - but have different result types - In the data declaration for ‘T’ + +records-fail1.hs:7:1: error: + Constructors T1 and T4 have a common field ‘x’, + but have different result types + In the data type declaration for ‘T’ diff --git a/testsuite/tests/ghci/scripts/T9293.stderr b/testsuite/tests/ghci/scripts/T9293.stderr index 089704d9b4..a663562a60 100644 --- a/testsuite/tests/ghci/scripts/T9293.stderr +++ b/testsuite/tests/ghci/scripts/T9293.stderr @@ -1,19 +1,19 @@ - -:5:1: - Illegal generalised algebraic data declaration for ‘T’ - (Use GADTs to allow GADTs) - In the data declaration for ‘T’ - -ghci057.hs:3:3: - Data constructor ‘C’ has existential type variables, a context, or a specialised result type - C :: T Int - (Use ExistentialQuantification or GADTs to allow this) - In the definition of data constructor ‘C’ - In the data declaration for ‘T’ - -ghci057.hs:3:3: - Data constructor ‘C’ has existential type variables, a context, or a specialised result type - C :: T Int - (Use ExistentialQuantification or GADTs to allow this) - In the definition of data constructor ‘C’ - In the data declaration for ‘T’ + +:5:1: error: + Illegal generalised algebraic data declaration for ‘T’ + (Use GADTs to allow GADTs) + In the data declaration for ‘T’ + +ghci057.hs:3:3: error: + Data constructor ‘C’ has existential type variables, a context, or a specialised result type + C :: T Int + (Use ExistentialQuantification or GADTs to allow this) + In the definition of data constructor ‘C’ + In the data type declaration for ‘T’ + +ghci057.hs:3:3: error: + Data constructor ‘C’ has existential type variables, a context, or a specialised result type + C :: T Int + (Use ExistentialQuantification or GADTs to allow this) + In the definition of data constructor ‘C’ + In the data type declaration for ‘T’ diff --git a/testsuite/tests/ghci/scripts/ghci057.stderr b/testsuite/tests/ghci/scripts/ghci057.stderr index 089704d9b4..a663562a60 100644 --- a/testsuite/tests/ghci/scripts/ghci057.stderr +++ b/testsuite/tests/ghci/scripts/ghci057.stderr @@ -1,19 +1,19 @@ - -:5:1: - Illegal generalised algebraic data declaration for ‘T’ - (Use GADTs to allow GADTs) - In the data declaration for ‘T’ - -ghci057.hs:3:3: - Data constructor ‘C’ has existential type variables, a context, or a specialised result type - C :: T Int - (Use ExistentialQuantification or GADTs to allow this) - In the definition of data constructor ‘C’ - In the data declaration for ‘T’ - -ghci057.hs:3:3: - Data constructor ‘C’ has existential type variables, a context, or a specialised result type - C :: T Int - (Use ExistentialQuantification or GADTs to allow this) - In the definition of data constructor ‘C’ - In the data declaration for ‘T’ + +:5:1: error: + Illegal generalised algebraic data declaration for ‘T’ + (Use GADTs to allow GADTs) + In the data declaration for ‘T’ + +ghci057.hs:3:3: error: + Data constructor ‘C’ has existential type variables, a context, or a specialised result type + C :: T Int + (Use ExistentialQuantification or GADTs to allow this) + In the definition of data constructor ‘C’ + In the data type declaration for ‘T’ + +ghci057.hs:3:3: error: + Data constructor ‘C’ has existential type variables, a context, or a specialised result type + C :: T Int + (Use ExistentialQuantification or GADTs to allow this) + In the definition of data constructor ‘C’ + In the data type declaration for ‘T’ diff --git a/testsuite/tests/indexed-types/should_fail/BadSock.stderr b/testsuite/tests/indexed-types/should_fail/BadSock.stderr index fc3fb54d0c..ed90d8932f 100644 --- a/testsuite/tests/indexed-types/should_fail/BadSock.stderr +++ b/testsuite/tests/indexed-types/should_fail/BadSock.stderr @@ -1,5 +1,5 @@ - -BadSock.hs:30:5: - Type family ‘Readable’ should have 1 argument, but has been given none - In the equations for closed type family ‘Foo’ - In the type family declaration for ‘Foo’ + +BadSock.hs:30:5: error: + The type family ‘Readable’ should have 1 argument, but has been given none + In the equations for closed type family ‘Foo’ + In the type family declaration for ‘Foo’ diff --git a/testsuite/tests/indexed-types/should_fail/T2157.stderr b/testsuite/tests/indexed-types/should_fail/T2157.stderr index 13d436ae43..d2ba6ae53d 100644 --- a/testsuite/tests/indexed-types/should_fail/T2157.stderr +++ b/testsuite/tests/indexed-types/should_fail/T2157.stderr @@ -1,4 +1,4 @@ - -T2157.hs:7:15: - Type synonym ‘S’ should have 2 arguments, but has been given 1 - In the type instance declaration for ‘F’ + +T2157.hs:7:15: error: + The type synonym ‘S’ should have 2 arguments, but has been given 1 + In the type instance declaration for ‘F’ diff --git a/testsuite/tests/indexed-types/should_fail/T9433.stderr b/testsuite/tests/indexed-types/should_fail/T9433.stderr index 51780f177b..bd4ab42878 100644 --- a/testsuite/tests/indexed-types/should_fail/T9433.stderr +++ b/testsuite/tests/indexed-types/should_fail/T9433.stderr @@ -1,4 +1,4 @@ -T9433.hs:14:6: - Type family ‘Id’ should have 1 argument, but has been given none +T9433.hs:14:6: error: + The type family ‘Id’ should have 1 argument, but has been given none In the type signature for ‘x’: x :: Map Id [Bool] diff --git a/testsuite/tests/module/mod60.stderr b/testsuite/tests/module/mod60.stderr index 1cf46b1253..cf94537bb9 100644 --- a/testsuite/tests/module/mod60.stderr +++ b/testsuite/tests/module/mod60.stderr @@ -1,5 +1,5 @@ - -mod60.hs:3:4: - Constructor ‘Left’ should have 1 argument, but has been given none - In the pattern: Left - In an equation for ‘f’: f (Left) = error "foo" + +mod60.hs:3:4: error: + The constructor ‘Left’ should have 1 argument, but has been given none + In the pattern: Left + In an equation for ‘f’: f (Left) = error "foo" diff --git a/testsuite/tests/parser/should_fail/ParserNoBinaryLiterals2.stderr b/testsuite/tests/parser/should_fail/ParserNoBinaryLiterals2.stderr index 4a756d6e27..6cbd7ca94b 100644 --- a/testsuite/tests/parser/should_fail/ParserNoBinaryLiterals2.stderr +++ b/testsuite/tests/parser/should_fail/ParserNoBinaryLiterals2.stderr @@ -1,5 +1,5 @@ - -ParserNoBinaryLiterals2.hs:8:4: - Constructor ‘W#’ should have 1 argument, but has been given 2 - In the pattern: W# 0 b0## - In an equation for ‘f’: f (W# 0 b0##) = () + +ParserNoBinaryLiterals2.hs:8:4: error: + The constructor ‘W#’ should have 1 argument, but has been given 2 + In the pattern: W# 0 b0## + In an equation for ‘f’: f (W# 0 b0##) = () diff --git a/testsuite/tests/parser/should_fail/ParserNoBinaryLiterals3.stderr b/testsuite/tests/parser/should_fail/ParserNoBinaryLiterals3.stderr index 32c27e6b8a..1e4c475904 100644 --- a/testsuite/tests/parser/should_fail/ParserNoBinaryLiterals3.stderr +++ b/testsuite/tests/parser/should_fail/ParserNoBinaryLiterals3.stderr @@ -1,5 +1,5 @@ - -ParserNoBinaryLiterals3.hs:8:4: - Constructor ‘I#’ should have 1 argument, but has been given 2 - In the pattern: I# 0 b0# - In an equation for ‘f’: f (I# 0 b0#) = () + +ParserNoBinaryLiterals3.hs:8:4: error: + The constructor ‘I#’ should have 1 argument, but has been given 2 + In the pattern: I# 0 b0# + In an equation for ‘f’: f (I# 0 b0#) = () diff --git a/testsuite/tests/polykinds/T10516.hs b/testsuite/tests/polykinds/T10516.hs new file mode 100644 index 0000000000..388f3421b8 --- /dev/null +++ b/testsuite/tests/polykinds/T10516.hs @@ -0,0 +1,9 @@ +{-# LANGUAGE PolyKinds #-} +module T10516 where + +type App f a = f a + +newtype X f a = X (f a) + +f :: f a -> X (App f) a +f = X diff --git a/testsuite/tests/polykinds/T10516.stderr b/testsuite/tests/polykinds/T10516.stderr new file mode 100644 index 0000000000..0242722ea5 --- /dev/null +++ b/testsuite/tests/polykinds/T10516.stderr @@ -0,0 +1,4 @@ + +T10516.hs:8:6: error: + The type synonym ‘App’ should have 2 arguments, but has been given 1 + In the type signature for ‘f’: f :: f a -> X (App f) a diff --git a/testsuite/tests/polykinds/T9222.stderr b/testsuite/tests/polykinds/T9222.stderr index 01869edd45..1d1a1df779 100644 --- a/testsuite/tests/polykinds/T9222.stderr +++ b/testsuite/tests/polykinds/T9222.stderr @@ -1,24 +1,24 @@ - -T9222.hs:13:3: - Couldn't match type ‘b0’ with ‘b’ - ‘b0’ is untouchable - inside the constraints: a ~ '(b0, c0) - bound by the type of the constructor ‘Want’: - (a ~ '(b0, c0)) => Proxy b0 - at T9222.hs:13:3 - ‘b’ is a rigid type variable bound by - the type of the constructor ‘Want’: - ((a ~ '(b, c)) => Proxy b) -> Want a - at T9222.hs:13:3 - Expected type: '(b, c) - Actual type: a - In the ambiguity check for the type of the constructor ‘Want’: - Want :: forall (k :: BOX) - (k1 :: BOX) - (a :: (,) k k1) - (b :: k) - (c :: k1). - ((a ~ '(b, c)) => Proxy b) -> Want a - To defer the ambiguity check to use sites, enable AllowAmbiguousTypes - In the definition of data constructor ‘Want’ - In the data declaration for ‘Want’ + +T9222.hs:13:3: error: + Couldn't match type ‘b0’ with ‘b’ + ‘b0’ is untouchable + inside the constraints: a ~ '(b0, c0) + bound by the type of the constructor ‘Want’: + (a ~ '(b0, c0)) => Proxy b0 + at T9222.hs:13:3 + ‘b’ is a rigid type variable bound by + the type of the constructor ‘Want’: + ((a ~ '(b, c)) => Proxy b) -> Want a + at T9222.hs:13:3 + Expected type: '(b, c) + Actual type: a + In the ambiguity check for the type of the constructor ‘Want’: + Want :: forall (k :: BOX) + (k1 :: BOX) + (a :: (,) k k1) + (b :: k) + (c :: k1). + ((a ~ '(b, c)) => Proxy b) -> Want a + To defer the ambiguity check to use sites, enable AllowAmbiguousTypes + In the definition of data constructor ‘Want’ + In the data type declaration for ‘Want’ diff --git a/testsuite/tests/polykinds/all.T b/testsuite/tests/polykinds/all.T index 75d2321aad..76af3ecf00 100644 --- a/testsuite/tests/polykinds/all.T +++ b/testsuite/tests/polykinds/all.T @@ -116,3 +116,4 @@ test('T9833', normal, compile, ['']) test('T7908', normal, compile, ['']) test('T10041', normal, compile, ['']) test('T10451', normal, compile_fail, ['']) +test('T10516', normal, compile_fail, ['']) diff --git a/testsuite/tests/typecheck/should_compile/T7050.stderr b/testsuite/tests/typecheck/should_compile/T7050.stderr index a7154f67ac..8a2f9f97e4 100644 --- a/testsuite/tests/typecheck/should_compile/T7050.stderr +++ b/testsuite/tests/typecheck/should_compile/T7050.stderr @@ -1,5 +1,5 @@ - -T7050.hs:3:14: Warning: - Ignoring unusable UNPACK pragma on the first argument of ‘Foo’ - In the definition of data constructor ‘Foo’ - In the data declaration for ‘Foo’ + +T7050.hs:3:14: warning: + Ignoring unusable UNPACK pragma on the first argument of ‘Foo’ + In the definition of data constructor ‘Foo’ + In the data type declaration for ‘Foo’ diff --git a/testsuite/tests/typecheck/should_compile/T7562.stderr b/testsuite/tests/typecheck/should_compile/T7562.stderr index fb663fc639..448327f996 100644 --- a/testsuite/tests/typecheck/should_compile/T7562.stderr +++ b/testsuite/tests/typecheck/should_compile/T7562.stderr @@ -1,5 +1,5 @@ - -T7562.hs:3:14: Warning: - UNPACK pragma lacks '!' on the first argument of ‘Pair2’ - In the definition of data constructor ‘Pair2’ - In the data declaration for ‘Pair2’ + +T7562.hs:3:14: warning: + UNPACK pragma lacks '!' on the first argument of ‘Pair2’ + In the definition of data constructor ‘Pair2’ + In the data type declaration for ‘Pair2’ diff --git a/testsuite/tests/typecheck/should_fail/T3966.stderr b/testsuite/tests/typecheck/should_fail/T3966.stderr index 7c98948f0e..a76ede1185 100644 --- a/testsuite/tests/typecheck/should_fail/T3966.stderr +++ b/testsuite/tests/typecheck/should_fail/T3966.stderr @@ -1,8 +1,8 @@ - -T3966.hs:5:16: Warning: - Ignoring unusable UNPACK pragma on the first argument of ‘Foo’ - In the definition of data constructor ‘Foo’ - In the data declaration for ‘Foo’ - -: -Failing due to -Werror. + +T3966.hs:5:16: warning: + Ignoring unusable UNPACK pragma on the first argument of ‘Foo’ + In the definition of data constructor ‘Foo’ + In the data type declaration for ‘Foo’ + +: error: +Failing due to -Werror. diff --git a/testsuite/tests/typecheck/should_fail/T7175.stderr b/testsuite/tests/typecheck/should_fail/T7175.stderr index e6a5b1e5a3..25e9365f60 100644 --- a/testsuite/tests/typecheck/should_fail/T7175.stderr +++ b/testsuite/tests/typecheck/should_fail/T7175.stderr @@ -1,6 +1,6 @@ - -T7175.hs:8:4: - Data constructor ‘G1C’ returns type ‘F Int’ - instead of an instance of its parent type ‘G1 a’ - In the definition of data constructor ‘G1C’ - In the data declaration for ‘G1’ + +T7175.hs:8:4: error: + Data constructor ‘G1C’ returns type ‘F Int’ + instead of an instance of its parent type ‘G1 a’ + In the definition of data constructor ‘G1C’ + In the data type declaration for ‘G1’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail100.stderr b/testsuite/tests/typecheck/should_fail/tcfail100.stderr index c2bf429fd6..6ed4a4745f 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail100.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail100.stderr @@ -1,4 +1,4 @@ - -tcfail100.hs:7:1: - Type synonym ‘A’ should have 1 argument, but has been given none - In the type declaration for ‘B’ + +tcfail100.hs:7:1: error: + The type synonym ‘A’ should have 1 argument, but has been given none + In the type synonym declaration for ‘B’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail101.stderr b/testsuite/tests/typecheck/should_fail/tcfail101.stderr index ddf8e433f0..b88b77475e 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail101.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail101.stderr @@ -1,4 +1,4 @@ - -tcfail101.hs:9:6: - Type synonym ‘A’ should have 1 argument, but has been given none - In the type signature for ‘f’: f :: T A + +tcfail101.hs:9:6: error: + The type synonym ‘A’ should have 1 argument, but has been given none + In the type signature for ‘f’: f :: T A diff --git a/testsuite/tests/typecheck/should_fail/tcfail107.stderr b/testsuite/tests/typecheck/should_fail/tcfail107.stderr index 43d0c2d1fd..85f9a2de07 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail107.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail107.stderr @@ -1,5 +1,5 @@ - -tcfail107.hs:13:9: - Type synonym ‘Const’ should have 2 arguments, but has been given 1 - In the type signature for ‘test’: - test :: Thing (Const Int) -> Thing (Const Int) + +tcfail107.hs:13:9: error: + The type synonym ‘Const’ should have 2 arguments, but has been given 1 + In the type signature for ‘test’: + test :: Thing (Const Int) -> Thing (Const Int) diff --git a/testsuite/tests/typecheck/should_fail/tcfail129.stderr b/testsuite/tests/typecheck/should_fail/tcfail129.stderr index 2c1b4bfb72..331ce03696 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail129.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail129.stderr @@ -1,12 +1,12 @@ - -tcfail129.hs:12:21: - Type synonym ‘Foo’ should have 1 argument, but has been given none - In an expression type signature: Bar Foo - In the expression: undefined :: Bar Foo - In an equation for ‘blah’: blah = undefined :: Bar Foo - -tcfail129.hs:17:22: - Type synonym ‘Foo1’ should have 1 argument, but has been given none - In an expression type signature: Bar1 Foo1 - In the expression: undefined :: Bar1 Foo1 - In an equation for ‘blah1’: blah1 = undefined :: Bar1 Foo1 + +tcfail129.hs:12:21: error: + The type synonym ‘Foo’ should have 1 argument, but has been given none + In an expression type signature: Bar Foo + In the expression: undefined :: Bar Foo + In an equation for ‘blah’: blah = undefined :: Bar Foo + +tcfail129.hs:17:22: error: + The type synonym ‘Foo1’ should have 1 argument, but has been given none + In an expression type signature: Bar1 Foo1 + In the expression: undefined :: Bar1 Foo1 + In an equation for ‘blah1’: blah1 = undefined :: Bar1 Foo1 diff --git a/testsuite/tests/typecheck/should_fail/tcfail140.stderr b/testsuite/tests/typecheck/should_fail/tcfail140.stderr index 7593497fe2..6908f1d595 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail140.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail140.stderr @@ -1,5 +1,5 @@ -tcfail140.hs:10:7: +tcfail140.hs:10:7: error: Couldn't match expected type ‘Integer -> t’ with actual type ‘Int’ Relevant bindings include bar :: t (bound at tcfail140.hs:10:1) The function ‘f’ is applied to two arguments, @@ -7,7 +7,7 @@ tcfail140.hs:10:7: In the expression: f 3 9 In an equation for ‘bar’: bar = f 3 9 -tcfail140.hs:12:10: +tcfail140.hs:12:10: error: Couldn't match expected type ‘Integer -> t1’ with actual type ‘Int’ Relevant bindings include rot :: t -> t1 (bound at tcfail140.hs:12:1) @@ -16,7 +16,7 @@ tcfail140.hs:12:10: In the expression: 3 `f` 4 In an equation for ‘rot’: rot xs = 3 `f` 4 -tcfail140.hs:14:15: +tcfail140.hs:14:15: error: Couldn't match expected type ‘a -> b’ with actual type ‘Int’ Relevant bindings include xs :: [a] (bound at tcfail140.hs:14:5) @@ -26,13 +26,13 @@ tcfail140.hs:14:15: In the first argument of ‘map’, namely ‘(3 `f`)’ In the expression: map (3 `f`) xs -tcfail140.hs:16:8: - Constructor ‘Just’ should have 1 argument, but has been given none +tcfail140.hs:16:8: error: + The constructor ‘Just’ should have 1 argument, but has been given none In the pattern: Just In the expression: (\ Just x -> x) :: Maybe a -> a In the expression: ((\ Just x -> x) :: Maybe a -> a) (Just 1) -tcfail140.hs:19:1: +tcfail140.hs:19:1: error: Couldn't match expected type ‘t0 -> Bool’ with actual type ‘Int’ The equation(s) for ‘g’ have two arguments, but its type ‘Int -> Int’ has only one diff --git a/testsuite/tests/typecheck/should_fail/tcfail155.stderr b/testsuite/tests/typecheck/should_fail/tcfail155.stderr index 64583eba33..5716f770ee 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail155.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail155.stderr @@ -1,6 +1,6 @@ - -tcfail155.hs:8:6: - Data constructor ‘P’ returns type ‘L2’ - instead of an instance of its parent type ‘T a’ - In the definition of data constructor ‘P’ - In the data declaration for ‘T’ + +tcfail155.hs:8:6: error: + Data constructor ‘P’ returns type ‘L2’ + instead of an instance of its parent type ‘T a’ + In the definition of data constructor ‘P’ + In the data type declaration for ‘T’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail187.stderr b/testsuite/tests/typecheck/should_fail/tcfail187.stderr index 799485a69f..9dec6bace6 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail187.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail187.stderr @@ -1,5 +1,5 @@ - -tcfail187.hs:7:6: - Constructor ‘:::’ should have no arguments, but has been given 2 - In the pattern: x ::: y - In an equation for ‘foo’: foo (x ::: y) = () + +tcfail187.hs:7:6: error: + The constructor ‘:::’ should have no arguments, but has been given 2 + In the pattern: x ::: y + In an equation for ‘foo’: foo (x ::: y) = () diff --git a/testsuite/tests/typecheck/should_fail/tcfail195.stderr b/testsuite/tests/typecheck/should_fail/tcfail195.stderr index 96d968f8bf..c1cb85abce 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail195.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail195.stderr @@ -1,5 +1,5 @@ - -tcfail195.hs:6:3: - Illegal polymorphic or qualified type: forall a. a - In the definition of data constructor ‘Foo’ - In the data declaration for ‘Foo’ + +tcfail195.hs:6:3: error: + Illegal polymorphic or qualified type: forall a. a + In the definition of data constructor ‘Foo’ + In the data type declaration for ‘Foo’ diff --git a/testsuite/tests/typecheck/should_fail/tcfail209.stderr b/testsuite/tests/typecheck/should_fail/tcfail209.stderr index d9a9ca37ae..f4384d9aa2 100644 --- a/testsuite/tests/typecheck/should_fail/tcfail209.stderr +++ b/testsuite/tests/typecheck/should_fail/tcfail209.stderr @@ -1,5 +1,5 @@ - -tcfail209.hs:3:1: - Illegal constraint synonym of kind: ‘* -> Constraint’ - (Use ConstraintKinds to permit this) - In the type declaration for ‘Showish’ + +tcfail209.hs:3:1: error: + Illegal constraint synonym of kind: ‘* -> Constraint’ + (Use ConstraintKinds to permit this) + In the type synonym declaration for ‘Showish’ -- cgit v1.2.1