RdrHsSyn: Only suggest `type` qualification when appropriate
authorBen Gamari <ben@smart-cactus.org>
Tue, 10 May 2016 09:02:19 +0000 (11:02 +0200)
committerBen Gamari <ben@smart-cactus.org>
Tue, 10 May 2016 10:02:14 +0000 (12:02 +0200)
This suggestion only applies to operators.

compiler/parser/RdrHsSyn.hs
testsuite/tests/module/T11432.stderr
testsuite/tests/module/T11432a.stderr
testsuite/tests/module/T12026.stderr
testsuite/tests/module/mod89.stderr

index c3f1d53..c445bee 100644 (file)
@@ -1406,11 +1406,12 @@ mkModuleImpExp n@(L l name) subs =
     nameT =
       if isVarNameSpace (rdrNameSpace name)
         then parseErrorSDoc l
-              (text "Expecting a type constructor but found a variable."
+              (text "Expecting a type constructor but found a variable,"
+               <+> quotes (ppr name) <> text "."
               $$ if isSymOcc $ rdrNameOcc name
                    then text "If" <+> quotes (ppr name) <+> text "is a type constructor"
-                   else empty
-              <+> text "then enable ExplicitNamespaces and use the 'type' keyword.")
+                    <+> text "then enable ExplicitNamespaces and use the 'type' keyword."
+                   else empty)
         else return $ name
 
 mkTypeImpExp :: Located RdrName   -- TcCls or Var name space
index 9e61092..61ccc7d 100644 (file)
@@ -1,4 +1,4 @@
 
 T11432.hs:7:16: error:
-    Expecting a type constructor but found a variable.
-    If  ‘-.->’ is a type constructor then enable ExplicitNamespaces and use the 'type' keyword.
+    Expecting a type constructor but found a variable, ‘-.->’.
+    If ‘-.->’ is a type constructor then enable ExplicitNamespaces and use the 'type' keyword.
index 2542af3..79d6525 100644 (file)
@@ -1,4 +1,4 @@
 
 T11432a.hs:7:17: error:
-    Expecting a type constructor but found a variable.
+    Expecting a type constructor but found a variable, ‘-.->’.
     If ‘-.->’ is a type constructor then enable ExplicitNamespaces and use the 'type' keyword.
index 38d53d7..cd93875 100644 (file)
@@ -1,4 +1,3 @@
 
 T12026.hs:3:17: error:
-    Expecting a type constructor but found a variable.
-    If  ‘map’ is a type constructor then enable ExplicitNamespaces and use the 'type' keyword.
+    Expecting a type constructor but found a variable, ‘map’.
index afdc464..ef07a5a 100644 (file)
@@ -1,4 +1,3 @@
 
 mod89.hs:5:16: error:
-    Expecting a type constructor but found a variable.
-    If  ‘map’ is a type constructor then enable ExplicitNamespaces and use the 'type' keyword.
+    Expecting a type constructor but found a variable, ‘map’.