[commit: ghc] master: Improve accuracy of suggestion to use TypeApplications (e38c07b)

git at git.haskell.org git at git.haskell.org
Thu Feb 25 16:16:56 UTC 2016


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/e38c07bf5ceb8f50fa5110b70b3b83f0ce1358ba/ghc

>---------------------------------------------------------------

commit e38c07bf5ceb8f50fa5110b70b3b83f0ce1358ba
Author: Matthew Pickering <matthewtpickering at gmail.com>
Date:   Thu Feb 25 15:51:46 2016 +0100

    Improve accuracy of suggestion to use TypeApplications
    
    The suggestion only makes sense when we try
    to use an as pattern in an expression context.
    
    It is misleading in the case of a lazy pattern and
    view pattern.
    
    Reviewers: austin, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1948


>---------------------------------------------------------------

e38c07bf5ceb8f50fa5110b70b3b83f0ce1358ba
 compiler/rename/RnExpr.hs                           | 13 +++++++------
 testsuite/tests/module/mod70.stderr                 |  4 +---
 testsuite/tests/rename/should_fail/rnfail016.stderr |  4 +---
 testsuite/tests/rename/should_fail/rnfail051.stderr |  1 -
 4 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/compiler/rename/RnExpr.hs b/compiler/rename/RnExpr.hs
index ce113b4..4764f3d 100644
--- a/compiler/rename/RnExpr.hs
+++ b/compiler/rename/RnExpr.hs
@@ -325,9 +325,10 @@ We return a (bogus) EWildPat in each case.
 -}
 
 rnExpr EWildPat        = return (hsHoleExpr, emptyFVs)   -- "_" is just a hole
-rnExpr e@(EAsPat {})   = patSynErr e
-rnExpr e@(EViewPat {}) = patSynErr e
-rnExpr e@(ELazyPat {}) = patSynErr e
+rnExpr e@(EAsPat {})   =
+  patSynErr e (text "Did you mean to enable TypeApplications?")
+rnExpr e@(EViewPat {}) = patSynErr e empty
+rnExpr e@(ELazyPat {}) = patSynErr e empty
 
 {-
 ************************************************************************
@@ -1854,10 +1855,10 @@ sectionErr expr
   = hang (text "A section must be enclosed in parentheses")
        2 (text "thus:" <+> (parens (ppr expr)))
 
-patSynErr :: HsExpr RdrName -> RnM (HsExpr Name, FreeVars)
-patSynErr e = do { addErr (sep [text "Pattern syntax in expression context:",
+patSynErr :: HsExpr RdrName -> SDoc -> RnM (HsExpr Name, FreeVars)
+patSynErr e explanation = do { addErr (sep [text "Pattern syntax in expression context:",
                                 nest 4 (ppr e)] $$
-                           text "Did you mean to enable TypeApplications?")
+                                  explanation)
                  ; return (EWildPat, emptyFVs) }
 
 badIpBinds :: Outputable a => SDoc -> a -> SDoc
diff --git a/testsuite/tests/module/mod70.stderr b/testsuite/tests/module/mod70.stderr
index f0e3042..616ef12 100644
--- a/testsuite/tests/module/mod70.stderr
+++ b/testsuite/tests/module/mod70.stderr
@@ -1,4 +1,2 @@
 
-mod70.hs:3:8: error:
-    Pattern syntax in expression context: ~1
-    Did you mean to enable TypeApplications?
+mod70.hs:3:8: error: Pattern syntax in expression context: ~1
diff --git a/testsuite/tests/rename/should_fail/rnfail016.stderr b/testsuite/tests/rename/should_fail/rnfail016.stderr
index 2193ffb..4013255 100644
--- a/testsuite/tests/rename/should_fail/rnfail016.stderr
+++ b/testsuite/tests/rename/should_fail/rnfail016.stderr
@@ -3,6 +3,4 @@ rnfail016.hs:6:7: error:
     Pattern syntax in expression context: x at x
     Did you mean to enable TypeApplications?
 
-rnfail016.hs:7:7: error:
-    Pattern syntax in expression context: ~x
-    Did you mean to enable TypeApplications?
+rnfail016.hs:7:7: error: Pattern syntax in expression context: ~x
diff --git a/testsuite/tests/rename/should_fail/rnfail051.stderr b/testsuite/tests/rename/should_fail/rnfail051.stderr
index a06ddc5..9c45a61 100644
--- a/testsuite/tests/rename/should_fail/rnfail051.stderr
+++ b/testsuite/tests/rename/should_fail/rnfail051.stderr
@@ -1,4 +1,3 @@
 
 rnfail051.hs:7:17: error:
     Pattern syntax in expression context: _ -> putStrLn "_"
-    Did you mean to enable TypeApplications?



More information about the ghc-commits mailing list