summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <ian@well-typed.com>2013-05-17 14:38:05 +0100
committerIan Lynagh <ian@well-typed.com>2013-05-17 14:38:05 +0100
commit8c6794ab70ad2b009ea257f26deb81a5d1fa2312 (patch)
tree999d4daa71cfdaa445670535514b544d230d4f84
parent5888f61486048d41e7ca2a324d784c78fc9c19f1 (diff)
parentcb5ed257a85a133fdf75dcd8e12295b3f4fe9513 (diff)
downloadhaskell-8c6794ab70ad2b009ea257f26deb81a5d1fa2312.tar.gz
Merge branch 'master' of http://darcs.haskell.org/testsuite
-rw-r--r--testsuite/tests/perf/compiler/all.T12
-rw-r--r--testsuite/tests/rename/should_fail/T7906.hs5
-rw-r--r--testsuite/tests/rename/should_fail/T7906.stderr4
-rw-r--r--testsuite/tests/rename/should_fail/all.T1
-rw-r--r--testsuite/tests/simplCore/should_compile/T7865.stdout2
-rw-r--r--testsuite/tests/typecheck/should_compile/T7891.hs37
-rw-r--r--testsuite/tests/typecheck/should_compile/T7903.hs4
-rw-r--r--testsuite/tests/typecheck/should_compile/all.T2
8 files changed, 63 insertions, 4 deletions
diff --git a/testsuite/tests/perf/compiler/all.T b/testsuite/tests/perf/compiler/all.T
index 0a579fec70..44f8f5e69a 100644
--- a/testsuite/tests/perf/compiler/all.T
+++ b/testsuite/tests/perf/compiler/all.T
@@ -90,12 +90,14 @@ test('T3294',
# 14593500 (Windows)
# 2013-02-10 20651576 (x86/Windows)
# 2013-02-10 20772984 (x86/OSX)
- (wordsize(64), 44894544, 15)]),
+ (wordsize(64), 36904752, 15)]),
# prev: 25753192 (amd64/Linux)
# 29/08/2012: 37724352 (amd64/Linux)
# (increase due to new codegen, see #7198)
# 13/13/2012: 44894544 (amd64/Linux)
# (reason for increase unknown)
+ # 15/5/2013: 36904752 (amd64/Linux)
+ # (reason for decrease unknown)
compiler_stats_num_field('bytes allocated',
[(wordsize(32), 1373514844, 5),
# previous: 815479800 (x86/Linux)
@@ -257,10 +259,12 @@ test('T5321Fun',
# prev: 300000000
# 2012-10-08: 344416344 x86/Linux
# (increase due to new codegen)
- (wordsize(64), 713385808, 10)])
+ (wordsize(64), 628341952, 10)])
# prev: 585521080
# 29/08/2012: 713385808
# (increase due to new codegen)
+ # 15/05/2013: 628341952
+ # (reason for decrease unknown)
],
compile,[''])
@@ -271,10 +275,12 @@ test('T5321FD',
# prev: 213380256
# 2012-10-08: 240302920 (x86/Linux)
# (increase due to new codegen)
- (wordsize(64), 492905640, 10)])
+ (wordsize(64), 406039584, 10)])
# prev: 418306336
# 29/08/2012: 492905640
# (increase due to new codegen)
+ # 15/05/2013: 406039584
+ # (reason for decrease unknown)
],
compile,[''])
diff --git a/testsuite/tests/rename/should_fail/T7906.hs b/testsuite/tests/rename/should_fail/T7906.hs
new file mode 100644
index 0000000000..eeb0c892ac
--- /dev/null
+++ b/testsuite/tests/rename/should_fail/T7906.hs
@@ -0,0 +1,5 @@
+module T7906 where
+
+class Foo f where
+ foo :: f
+{-# INLINEABLE foo #-}
diff --git a/testsuite/tests/rename/should_fail/T7906.stderr b/testsuite/tests/rename/should_fail/T7906.stderr
new file mode 100644
index 0000000000..30ccbed6e9
--- /dev/null
+++ b/testsuite/tests/rename/should_fail/T7906.stderr
@@ -0,0 +1,4 @@
+
+T7906.hs:5:16:
+ The INLINABLE pragma for ‛foo’ lacks an accompanying binding
+ (You cannot give a INLINABLE pragma for a record selector or class method)
diff --git a/testsuite/tests/rename/should_fail/all.T b/testsuite/tests/rename/should_fail/all.T
index c05662bde7..c1fbfac98a 100644
--- a/testsuite/tests/rename/should_fail/all.T
+++ b/testsuite/tests/rename/should_fail/all.T
@@ -107,3 +107,4 @@ test('T7164', normal, compile_fail, [''])
test('T7338', normal, compile_fail, [''])
test('T7338a', normal, compile_fail, [''])
test('T7454', normal, compile, [''])
+test('T7906', normal, compile_fail, [''])
diff --git a/testsuite/tests/simplCore/should_compile/T7865.stdout b/testsuite/tests/simplCore/should_compile/T7865.stdout
index 2fa5b9a0ac..dc3398c2ca 100644
--- a/testsuite/tests/simplCore/should_compile/T7865.stdout
+++ b/testsuite/tests/simplCore/should_compile/T7865.stdout
@@ -1,4 +1,4 @@
T7865.expensive [InlPrag=NOINLINE]
T7865.expensive =
- case T7865.expensive sc3 of _ { GHC.Types.I# x ->
+ case T7865.expensive sc1 of _ { GHC.Types.I# x ->
(case T7865.expensive x of _ { GHC.Types.I# x1 ->
diff --git a/testsuite/tests/typecheck/should_compile/T7891.hs b/testsuite/tests/typecheck/should_compile/T7891.hs
new file mode 100644
index 0000000000..45a6773fa0
--- /dev/null
+++ b/testsuite/tests/typecheck/should_compile/T7891.hs
@@ -0,0 +1,37 @@
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE TypeFamilies #-}
+
+module T7891 where
+
+newtype T = T (forall t. t -> t)
+
+tf :: T
+tf = T id
+
+-- Can't write this type signature:
+f :: t -> t
+T f = tf
+
+-- But with an indirection we can:
+g :: t -> t
+g = f
+
+-- We can still use f as it were fully polymorphic (which is good):
+a :: ()
+a = f ()
+b :: Char
+b = f 'b'
+
+-------------
+
+class C t where
+ data F t :: *
+ mkF :: t -> F t
+
+instance C () where
+ data F () = FUnit (forall t. t -> t)
+ mkF () = FUnit id
+
+-- Can't write a type for f here either:
+k :: t -> t
+FUnit k = mkF ()
diff --git a/testsuite/tests/typecheck/should_compile/T7903.hs b/testsuite/tests/typecheck/should_compile/T7903.hs
new file mode 100644
index 0000000000..43f97a07f3
--- /dev/null
+++ b/testsuite/tests/typecheck/should_compile/T7903.hs
@@ -0,0 +1,4 @@
+module T7903 where
+
+instance Eq (((->) a) b)
+instance (Ord b) => Ord (((->) a) b)
diff --git a/testsuite/tests/typecheck/should_compile/all.T b/testsuite/tests/typecheck/should_compile/all.T
index 68c9b81835..1fc81cb1a4 100644
--- a/testsuite/tests/typecheck/should_compile/all.T
+++ b/testsuite/tests/typecheck/should_compile/all.T
@@ -402,3 +402,5 @@ test('T7827', normal, compile, [''])
test('T7875', normal, compile, [''])
test('T7268', normal, compile, [''])
test('T7888', normal, compile, [''])
+test('T7891', normal, compile, [''])
+test('T7903', normal, compile, [''])