Update T7594 as a result of fixing #8644
authorSimon Peyton Jones <simonpj@microsoft.com>
Fri, 3 Jan 2014 16:09:47 +0000 (16:09 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Fri, 3 Jan 2014 16:09:47 +0000 (16:09 +0000)
The fix to #8644 makes the original T7594 pass (rightly).
I've added a variant that shouuld and does fail

testsuite/tests/polykinds/T7594.hs
testsuite/tests/polykinds/T7594.stderr

index 89e749c..2cbd3db 100644 (file)
@@ -23,5 +23,15 @@ q :: ColD (Show :&: Real)
 q = ColD (1.2 :: Double)
 
 bar = app print q
 q = ColD (1.2 :: Double)
 
 bar = app print q
+-- This one works, as a result of fixing Trac #8644,
+-- because the given constraint is
+--   (Show :&: Real) a, which has no equality superclasses
+
+q2 :: ColD (c :&: Real)
+q2 = error "urk"
+
+bar2 = app print q2
+-- This one fail, because the given constraint is
+--   (c :&: Real) a, which might have equality superclasses
 
 
 
 
index 64d0fa2..80d39f1 100644 (file)
@@ -1,15 +1,14 @@
 
 
-T7594.hs:25:11:
+T7594.hs:32:12:
     Couldn't match type ‛b’ with ‛IO ()’
       ‛b’ is untouchable
     Couldn't match type ‛b’ with ‛IO ()’
       ‛b’ is untouchable
-        inside the constraints ((:&:) Show Real a)
-        bound by a type expected by the context:
-                   (:&:) Show Real a => a -> b
-        at T7594.hs:25:7-17
+        inside the constraints ((:&:) c0 Real a)
+        bound by a type expected by the context: (:&:) c0 Real a => a -> b
+        at T7594.hs:32:8-19
       ‛b’ is a rigid type variable bound by
       ‛b’ is a rigid type variable bound by
-          the inferred type of bar :: b at T7594.hs:25:1
+          the inferred type of bar2 :: b at T7594.hs:32:1
     Expected type: a -> b
       Actual type: a -> IO ()
     Expected type: a -> b
       Actual type: a -> IO ()
-    Relevant bindings include bar :: b (bound at T7594.hs:25:1)
+    Relevant bindings include bar2 :: b (bound at T7594.hs:32:1)
     In the first argument of ‛app’, namely ‛print’
     In the first argument of ‛app’, namely ‛print’
-    In the expression: app print q
+    In the expression: app print q2