diff options
Diffstat (limited to 'testsuite/tests')
11 files changed, 129 insertions, 136 deletions
diff --git a/testsuite/tests/indexed-types/should_fail/T4179.stderr b/testsuite/tests/indexed-types/should_fail/T4179.stderr index f9bb6bb2ad..d2d62439f3 100644 --- a/testsuite/tests/indexed-types/should_fail/T4179.stderr +++ b/testsuite/tests/indexed-types/should_fail/T4179.stderr @@ -1,8 +1,8 @@ T4179.hs:26:16: - Couldn't match type ‘A2 (x (A2 (FCon x) -> A3 (FCon x)))’ - with ‘A2 (FCon x)’ - NB: ‘A2’ is a type function, and may not be injective + Couldn't match type ‘A3 (x (A2 (FCon x) -> A3 (FCon x)))’ + with ‘A3 (FCon x)’ + NB: ‘A3’ is a type function, and may not be injective Expected type: x (A2 (FCon x) -> A3 (FCon x)) -> A2 (FCon x) -> A3 (FCon x) Actual type: x (A2 (FCon x) -> A3 (FCon x)) diff --git a/testsuite/tests/indexed-types/should_fail/T7729.stderr b/testsuite/tests/indexed-types/should_fail/T7729.stderr index 1e93e4017c..053d54e264 100644 --- a/testsuite/tests/indexed-types/should_fail/T7729.stderr +++ b/testsuite/tests/indexed-types/should_fail/T7729.stderr @@ -1,12 +1,11 @@ -
-T7729.hs:36:14:
- Couldn't match type ‘BasePrimMonad (Rand m)’
- with ‘t0 (BasePrimMonad (Rand m))’
- The type variable ‘t0’ is ambiguous
- Expected type: t0 (BasePrimMonad (Rand m)) a -> Rand m a
- Actual type: BasePrimMonad (Rand m) a -> Rand m a
- Relevant bindings include
- liftPrim :: BasePrimMonad (Rand m) a -> Rand m a
- (bound at T7729.hs:36:3)
- In the first argument of ‘(.)’, namely ‘liftPrim’
- In the expression: liftPrim . lift
+ +T7729.hs:36:14: + Couldn't match type ‘t0 (BasePrimMonad m)’ with ‘BasePrimMonad m’ + The type variable ‘t0’ is ambiguous + Expected type: t0 (BasePrimMonad m) a -> Rand m a + Actual type: BasePrimMonad (Rand m) a -> Rand m a + Relevant bindings include + liftPrim :: BasePrimMonad (Rand m) a -> Rand m a + (bound at T7729.hs:36:3) + In the first argument of ‘(.)’, namely ‘liftPrim’ + In the expression: liftPrim . lift diff --git a/testsuite/tests/indexed-types/should_fail/T7729a.stderr b/testsuite/tests/indexed-types/should_fail/T7729a.stderr index 93142006ed..8bd5a24d68 100644 --- a/testsuite/tests/indexed-types/should_fail/T7729a.stderr +++ b/testsuite/tests/indexed-types/should_fail/T7729a.stderr @@ -1,10 +1,9 @@ T7729a.hs:36:26: - Couldn't match type ‘BasePrimMonad (Rand m)’ - with ‘t0 (BasePrimMonad (Rand m))’ + Couldn't match type ‘BasePrimMonad m’ with ‘t0 (BasePrimMonad m)’ The type variable ‘t0’ is ambiguous Expected type: BasePrimMonad (Rand m) a - Actual type: t0 (BasePrimMonad (Rand m)) a + Actual type: t0 (BasePrimMonad m) a Relevant bindings include x :: BasePrimMonad (Rand m) a (bound at T7729a.hs:36:12) liftPrim :: BasePrimMonad (Rand m) a -> Rand m a diff --git a/testsuite/tests/indexed-types/should_fail/T9662.stderr b/testsuite/tests/indexed-types/should_fail/T9662.stderr index 984a2ea4b7..3e84e4ac4a 100644 --- a/testsuite/tests/indexed-types/should_fail/T9662.stderr +++ b/testsuite/tests/indexed-types/should_fail/T9662.stderr @@ -1,25 +1,25 @@ -T9662.hs:47:8: - Couldn't match type ‘k’ with ‘Int’ +T9662.hs:49:7: + Couldn't match type ‘k’ with ‘n’ ‘k’ is a rigid type variable bound by the type signature for test :: Shape (((sh :. k) :. m) :. n) -> Shape (((sh :. m) :. n) :. k) at T9662.hs:44:9 - Expected type: Exp (((sh :. k) :. m) :. n) - -> Exp (((sh :. m) :. n) :. k) - Actual type: Exp - (Tuple (((Atom a0 :. Atom Int) :. Atom Int) :. Atom Int)) - -> Exp - (Plain (((Unlifted (Atom a0) :. Exp Int) :. Exp Int) :. Exp Int)) + ‘n’ is a rigid type variable bound by + the type signature for + test :: Shape (((sh :. k) :. m) :. n) + -> Shape (((sh :. m) :. n) :. k) + at T9662.hs:44:9 + Expected type: Exp (((sh :. m) :. n) :. k) + -> Exp (((sh :. k) :. m) :. n) + Actual type: Exp (((sh :. k) :. m) :. n) + -> Exp (((sh :. k) :. m) :. n) Relevant bindings include test :: Shape (((sh :. k) :. m) :. n) -> Shape (((sh :. m) :. n) :. k) (bound at T9662.hs:45:1) - In the first argument of ‘backpermute’, namely - ‘(modify - (atom :. atom :. atom :. atom) - (\ (sh :. k :. m :. n) -> (sh :. m :. n :. k)))’ + In the second argument of ‘backpermute’, namely ‘id’ In the expression: backpermute (modify @@ -27,27 +27,27 @@ T9662.hs:47:8: (\ (sh :. k :. m :. n) -> (sh :. m :. n :. k))) id -T9662.hs:47:8: - Couldn't match type ‘m’ with ‘Int’ +T9662.hs:49:7: + Couldn't match type ‘m’ with ‘k’ ‘m’ is a rigid type variable bound by the type signature for test :: Shape (((sh :. k) :. m) :. n) -> Shape (((sh :. m) :. n) :. k) at T9662.hs:44:9 - Expected type: Exp (((sh :. k) :. m) :. n) - -> Exp (((sh :. m) :. n) :. k) - Actual type: Exp - (Tuple (((Atom a0 :. Atom Int) :. Atom Int) :. Atom Int)) - -> Exp - (Plain (((Unlifted (Atom a0) :. Exp Int) :. Exp Int) :. Exp Int)) + ‘k’ is a rigid type variable bound by + the type signature for + test :: Shape (((sh :. k) :. m) :. n) + -> Shape (((sh :. m) :. n) :. k) + at T9662.hs:44:9 + Expected type: Exp (((sh :. m) :. n) :. k) + -> Exp (((sh :. k) :. m) :. n) + Actual type: Exp (((sh :. k) :. m) :. n) + -> Exp (((sh :. k) :. m) :. n) Relevant bindings include test :: Shape (((sh :. k) :. m) :. n) -> Shape (((sh :. m) :. n) :. k) (bound at T9662.hs:45:1) - In the first argument of ‘backpermute’, namely - ‘(modify - (atom :. atom :. atom :. atom) - (\ (sh :. k :. m :. n) -> (sh :. m :. n :. k)))’ + In the second argument of ‘backpermute’, namely ‘id’ In the expression: backpermute (modify @@ -55,27 +55,27 @@ T9662.hs:47:8: (\ (sh :. k :. m :. n) -> (sh :. m :. n :. k))) id -T9662.hs:47:8: - Couldn't match type ‘n’ with ‘Int’ +T9662.hs:49:7: + Couldn't match type ‘n’ with ‘m’ ‘n’ is a rigid type variable bound by the type signature for test :: Shape (((sh :. k) :. m) :. n) -> Shape (((sh :. m) :. n) :. k) at T9662.hs:44:9 - Expected type: Exp (((sh :. k) :. m) :. n) - -> Exp (((sh :. m) :. n) :. k) - Actual type: Exp - (Tuple (((Atom a0 :. Atom Int) :. Atom Int) :. Atom Int)) - -> Exp - (Plain (((Unlifted (Atom a0) :. Exp Int) :. Exp Int) :. Exp Int)) + ‘m’ is a rigid type variable bound by + the type signature for + test :: Shape (((sh :. k) :. m) :. n) + -> Shape (((sh :. m) :. n) :. k) + at T9662.hs:44:9 + Expected type: Exp (((sh :. m) :. n) :. k) + -> Exp (((sh :. k) :. m) :. n) + Actual type: Exp (((sh :. k) :. m) :. n) + -> Exp (((sh :. k) :. m) :. n) Relevant bindings include test :: Shape (((sh :. k) :. m) :. n) -> Shape (((sh :. m) :. n) :. k) (bound at T9662.hs:45:1) - In the first argument of ‘backpermute’, namely - ‘(modify - (atom :. atom :. atom :. atom) - (\ (sh :. k :. m :. n) -> (sh :. m :. n :. k)))’ + In the second argument of ‘backpermute’, namely ‘id’ In the expression: backpermute (modify diff --git a/testsuite/tests/perf/compiler/T5837.stderr b/testsuite/tests/perf/compiler/T5837.stderr index f3ee82ca66..df4fbefb77 100644 --- a/testsuite/tests/perf/compiler/T5837.stderr +++ b/testsuite/tests/perf/compiler/T5837.stderr @@ -52,7 +52,8 @@ T5837.hs:8:6: (TF (TF (TF - a))))))))))))))))))))))))))))))))))))))))))))))))) + (TF + a)))))))))))))))))))))))))))))))))))))))))))))))))) ~ (TF (TF (TF @@ -104,7 +105,8 @@ T5837.hs:8:6: (TF (TF (TF - a)))))))))))))))))))))))))))))))))))))))))))))))))), + (TF + a))))))))))))))))))))))))))))))))))))))))))))))))))), TF (TF (TF @@ -156,7 +158,8 @@ T5837.hs:8:6: (TF (TF (TF - Int))))))))))))))))))))))))))))))))))))))))))))))))))) + (TF + Int)))))))))))))))))))))))))))))))))))))))))))))))))))) In the ambiguity check for the type signature for ‘t’: t :: forall a. (a ~ TF (a, Int)) => Int In the type signature for ‘t’: t :: (a ~ TF (a, Int)) => Int diff --git a/testsuite/tests/perf/compiler/all.T b/testsuite/tests/perf/compiler/all.T index 5eda5a20af..03ff0c3825 100644 --- a/testsuite/tests/perf/compiler/all.T +++ b/testsuite/tests/perf/compiler/all.T @@ -259,19 +259,20 @@ test('T3064', # 2014-01-22: 162457940 (x86/Linux) # 2014-12-01: 162457940 (Windows) - (wordsize(64), 385145080, 5)]), + (wordsize(64), 363103840, 5)]), # (amd64/Linux) (28/06/2011): 73259544 # (amd64/Linux) (07/02/2013): 224798696 # (amd64/Linux) (02/08/2013): 236404384, increase from roles # (amd64/Linux) (11/09/2013): 290165632, increase from AMP warnings # (amd64/Linux) (22/11/2013): 308300448, GND via Coercible and counters for constraints solving - # (amd64/Linux) (02/12/2013): 329795912, Coercible refactor + # (amd64/Linux) (02/12/2013): 329795912, Coercible refactor # (amd64/Linux) (11/02/2014): 308422280, optimize Coercions in simpleOptExpr # (amd64/Linux) (23/05/2014): 324022680, unknown cause # (amd64/Linux) (2014-07-17): 332702112, general round of updates # (amd64/Linux) (2014-08-29): 313638592, w/w for INLINABLE things # (amd64/Linux) (09/09/2014): 407416464, AMP changes (larger interfaces, more loading) # (amd64/Linux) (14/09/2014): 385145080, BPP changes (more NoImplicitPrelude in base) + # (amd64/Linux) (10/12/2014): 363103840, improvements in constraint solver ################################### # deactivated for now, as this metric became too volatile recently @@ -314,7 +315,7 @@ test('T5030', # previous: 196457520 # 2012-10-08: 259547660 (x86/Linux, new codegen) # 2013-11-21: 198573456 (x86 Windows, 64 bit machine) - (wordsize(64), 340969128, 10)]), + (wordsize(64), 449042120, 10)]), # Previously 530000000 (+/- 10%) # 17/1/13: 602993184 (x86_64/Linux) # (new demand analyser) @@ -328,6 +329,8 @@ test('T5030', # general round of updates # 2014-09-10 385152728 post-AMP-cleanup # 2014-12-08 340969128 constraint solver perf improvements (esp kick-out) + # 2014-12-10 449042120 constraint solver got worse again; more agressive solving + # of family-applications leads to less sharing, I think only_ways(['normal']) ], @@ -399,7 +402,7 @@ test('T5321Fun', # 2012-10-08: 344416344 x86/Linux # (increase due to new codegen) # 2014-09-03: 299656164 (specialisation and inlining) - (wordsize(64), 541287000, 10)]) + (wordsize(64), 408110888, 10)]) # prev: 585521080 # 29/08/2012: 713385808 # (increase due to new codegen) # 15/05/2013: 628341952 # (reason for decrease unknown) @@ -407,6 +410,7 @@ test('T5321Fun', # 12/05/2014: 614409344 # (specialisation and inlining changes) # 10/09/2014: 601629032 # post-AMP-cleanup # 06/11/2014: 541287000 # Simon's flat-skol changes to the constraint solver + # 10/12/2014: 408110888 # Improvements in constraint solver ], compile,['']) @@ -443,7 +447,8 @@ test('T5642', # sample from x86/Linux # prev: 650000000 # 2014-09-03: 753045568 - (wordsize(64), 1536924976, 10)]) + + (wordsize(64), 1282916024, 10)]) # prev: 1300000000 # 2014-07-17: 1358833928 (general round of updates) # 2014-08-07: 1402242360 (caused by 1fc60ea) @@ -453,6 +458,7 @@ test('T5642', # are ultimately discarded by trimAutoRules # It's a bizarre program with LOTS of data types) # 2014-09-10: 1536924976 post-AMP-cleanup + # 2014-12-10: 1282916024 Improvements in constraints solver ], compile,['-O']) diff --git a/testsuite/tests/typecheck/should_compile/T9708.hs b/testsuite/tests/typecheck/should_compile/T9708.hs index fa6deb2cdf..b170ef3b6d 100644 --- a/testsuite/tests/typecheck/should_compile/T9708.hs +++ b/testsuite/tests/typecheck/should_compile/T9708.hs @@ -6,5 +6,8 @@ import Data.Proxy type family SomeFun (n :: Nat) +-- See the Trac ticket; whether this suceeds or fails is distintly random +-- Currently it succeeds + ti7 :: (x <= y, y <= x) => Proxy (SomeFun x) -> Proxy y -> () ti7 _ _ = () diff --git a/testsuite/tests/typecheck/should_compile/T9708.stderr b/testsuite/tests/typecheck/should_compile/T9708.stderr index fb8a6a7ef9..e69de29bb2 100644 --- a/testsuite/tests/typecheck/should_compile/T9708.stderr +++ b/testsuite/tests/typecheck/should_compile/T9708.stderr @@ -1,17 +0,0 @@ - -T9708.hs:9:8: - Could not deduce (SomeFun y ~ SomeFun x) - from the context (x <= y, y <= x) - bound by the type signature for - ti7 :: (x <= y, y <= x) => Proxy (SomeFun x) -> Proxy y -> () - at T9708.hs:9:8-61 - NB: ‘SomeFun’ is a type function, and may not be injective - Expected type: Proxy (SomeFun x) -> Proxy y -> () - Actual type: Proxy (SomeFun y) -> Proxy y -> () - In the ambiguity check for the type signature for ‘ti7’: - ti7 :: forall (x :: Nat) (y :: Nat). - (x <= y, y <= x) => - Proxy (SomeFun x) -> Proxy y -> () - To defer the ambiguity check to use sites, enable AllowAmbiguousTypes - In the type signature for ‘ti7’: - ti7 :: (x <= y, y <= x) => Proxy (SomeFun x) -> Proxy y -> () diff --git a/testsuite/tests/typecheck/should_compile/all.T b/testsuite/tests/typecheck/should_compile/all.T index 4a28032523..72c2e6688e 100644 --- a/testsuite/tests/typecheck/should_compile/all.T +++ b/testsuite/tests/typecheck/should_compile/all.T @@ -424,7 +424,7 @@ test('T8856', normal, compile, ['']) test('T9569a', normal, compile, ['']) test('T9117', normal, compile, ['']) test('T9117_2', expect_broken('9117'), compile, ['']) -test('T9708', normal, compile_fail, ['']) +test('T9708', normal, compile, ['']) test('T9404', normal, compile, ['']) test('T9404b', normal, compile, ['']) test('T7220', normal, compile, ['']) diff --git a/testsuite/tests/typecheck/should_fail/ContextStack2.stderr b/testsuite/tests/typecheck/should_fail/ContextStack2.stderr index 90e728551b..8da1c39cfb 100644 --- a/testsuite/tests/typecheck/should_fail/ContextStack2.stderr +++ b/testsuite/tests/typecheck/should_fail/ContextStack2.stderr @@ -2,9 +2,9 @@ ContextStack2.hs:8:6: Type function application stack overflow; size = 11 Use -ftype-function-depth=N to increase stack size to N - TF (TF (TF (TF (TF (TF (TF (TF (TF (TF a))))))))) - ~ (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF a)))))))))), - TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF Int))))))))))) + TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF a)))))))))) + ~ (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF a))))))))))), + TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF (TF Int)))))))))))) In the ambiguity check for the type signature for ‘t’: t :: forall a. (a ~ TF (a, Int)) => Int In the type signature for ‘t’: t :: (a ~ TF (a, Int)) => Int diff --git a/testsuite/tests/typecheck/should_fail/FrozenErrorTests.stderr b/testsuite/tests/typecheck/should_fail/FrozenErrorTests.stderr index bebaf0d571..1261408eb8 100644 --- a/testsuite/tests/typecheck/should_fail/FrozenErrorTests.stderr +++ b/testsuite/tests/typecheck/should_fail/FrozenErrorTests.stderr @@ -1,53 +1,53 @@ -
-FrozenErrorTests.hs:12:12:
- Couldn't match type ‘Int’ with ‘Bool’
- Inaccessible code in
- a pattern with constructor
- MkT3 :: forall a. (a ~ Bool) => T a,
- in a case alternative
- In the pattern: MkT3
- In a case alternative: MkT3 -> ()
- In the expression: case x of { MkT3 -> () }
-
-FrozenErrorTests.hs:26:9:
- Occurs check: cannot construct the infinite type: a ~ [a]
- Expected type: [a]
- Actual type: F a Bool
- Relevant bindings include
- test1 :: a (bound at FrozenErrorTests.hs:26:1)
- In the expression: goo1 False undefined
- In an equation for ‘test1’: test1 = goo1 False undefined
-
-FrozenErrorTests.hs:29:15:
- Couldn't match type ‘Int’ with ‘[Int]’
- Expected type: [[Int]]
- Actual type: F [Int] Bool
- In the first argument of ‘goo2’, namely ‘(goo1 False undefined)’
- In the expression: goo2 (goo1 False undefined)
- In an equation for ‘test2’: test2 = goo2 (goo1 False undefined)
-
-FrozenErrorTests.hs:30:9:
- Couldn't match type ‘[Int]’ with ‘Int’
- Expected type: [[Int]]
- Actual type: F [Int] Bool
- In the expression: goo1 False (goo2 undefined)
- In an equation for ‘test3’: test3 = goo1 False (goo2 undefined)
-
-FrozenErrorTests.hs:45:15:
- Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’
- Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c)
- Actual type: F (T2 (T2 c c) c) Bool
- Relevant bindings include
- test4 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:45:1)
- In the first argument of ‘goo4’, namely ‘(goo3 False undefined)’
- In the expression: goo4 (goo3 False undefined)
- In an equation for ‘test4’: test4 = goo4 (goo3 False undefined)
-
-FrozenErrorTests.hs:46:9:
- Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’
- Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c)
- Actual type: F (T2 (T2 c c) c) Bool
- Relevant bindings include
- test5 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:46:1)
- In the expression: goo3 False (goo4 undefined)
- In an equation for ‘test5’: test5 = goo3 False (goo4 undefined)
+ +FrozenErrorTests.hs:12:12: + Couldn't match type ‘Int’ with ‘Bool’ + Inaccessible code in + a pattern with constructor + MkT3 :: forall a. (a ~ Bool) => T a, + in a case alternative + In the pattern: MkT3 + In a case alternative: MkT3 -> () + In the expression: case x of { MkT3 -> () } + +FrozenErrorTests.hs:26:9: + Occurs check: cannot construct the infinite type: a ~ [a] + Expected type: [a] + Actual type: F a Bool + Relevant bindings include + test1 :: a (bound at FrozenErrorTests.hs:26:1) + In the expression: goo1 False undefined + In an equation for ‘test1’: test1 = goo1 False undefined + +FrozenErrorTests.hs:29:15: + Couldn't match type ‘[Int]’ with ‘Int’ + Expected type: [[Int]] + Actual type: F [Int] Bool + In the first argument of ‘goo2’, namely ‘(goo1 False undefined)’ + In the expression: goo2 (goo1 False undefined) + In an equation for ‘test2’: test2 = goo2 (goo1 False undefined) + +FrozenErrorTests.hs:30:9: + Couldn't match type ‘[Int]’ with ‘Int’ + Expected type: [[Int]] + Actual type: F [Int] Bool + In the expression: goo1 False (goo2 undefined) + In an equation for ‘test3’: test3 = goo1 False (goo2 undefined) + +FrozenErrorTests.hs:45:15: + Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’ + Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) + Actual type: F (T2 (T2 c c) c) Bool + Relevant bindings include + test4 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:45:1) + In the first argument of ‘goo4’, namely ‘(goo3 False undefined)’ + In the expression: goo4 (goo3 False undefined) + In an equation for ‘test4’: test4 = goo4 (goo3 False undefined) + +FrozenErrorTests.hs:46:9: + Couldn't match type ‘T2 c c’ with ‘M (T2 (T2 c c) c)’ + Expected type: T2 (M (T2 (T2 c c) c)) (T2 (T2 c c) c) + Actual type: F (T2 (T2 c c) c) Bool + Relevant bindings include + test5 :: T2 (T2 c c) c (bound at FrozenErrorTests.hs:46:1) + In the expression: goo3 False (goo4 undefined) + In an equation for ‘test5’: test5 = goo3 False (goo4 undefined) |