Fix #13233 by checking for lev-poly primops
authorRichard Eisenberg <rae@cs.brynmawr.edu>
Sun, 23 Apr 2017 18:16:32 +0000 (14:16 -0400)
committerBen Gamari <ben@smart-cactus.org>
Wed, 3 May 2017 03:07:28 +0000 (23:07 -0400)
The implementation plan is all in Note [Detecting forced eta expansion]
in DsExpr.

testsuite/tests/codeGen/should_fail/T13233.stderr

index 2d167cf..c1cbb97 100644 (file)
@@ -2,7 +2,7 @@
 T13233.hs:14:11: error:
     Cannot use primitive with levity-polymorphic arguments:
       GHC.Prim.(#,#) :: a -> a -> (# a, a #)
-    Levity polymorphic arguments:
+    Levity-polymorphic arguments:
       a :: TYPE rep
       a :: TYPE rep
 
@@ -10,7 +10,7 @@ T13233.hs:22:16: error:
     Cannot use primitive with levity-polymorphic arguments:
       GHC.Prim.(#,#) :: forall (a :: TYPE rep1) (b :: TYPE rep2).
                         a -> b -> (# a, b #)
-    Levity polymorphic arguments:
+    Levity-polymorphic arguments:
       a :: TYPE rep1
       b :: TYPE rep2
 
@@ -21,4 +21,4 @@ T13233.hs:27:10: error:
                  -> (State# RealWorld -> (# State# RealWorld, c #))
                  -> State# RealWorld
                  -> (# State# RealWorld, Weak# b #)
-    Levity polymorphic arguments: a :: TYPE rep
+    Levity-polymorphic arguments: a :: TYPE rep