projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ca002f9
)
Improve error message (part of Trac #1606)
author
simonpj@microsoft.com
<unknown>
Fri, 10 Aug 2007 08:33:12 +0000
(08:33 +0000)
committer
simonpj@microsoft.com
<unknown>
Fri, 10 Aug 2007 08:33:12 +0000
(08:33 +0000)
compiler/typecheck/TcMatches.lhs
patch
|
blob
|
history
diff --git
a/compiler/typecheck/TcMatches.lhs
b/compiler/typecheck/TcMatches.lhs
index
68e1398
..
485aacb
100644
(file)
--- a/
compiler/typecheck/TcMatches.lhs
+++ b/
compiler/typecheck/TcMatches.lhs
@@
-153,7
+153,7
@@
tcMatch ctxt pat_tys rhs_ty match
= wrapLocM (tc_match ctxt pat_tys rhs_ty) match
where
tc_match ctxt pat_tys rhs_ty match@(Match pats maybe_rhs_sig grhss)
= wrapLocM (tc_match ctxt pat_tys rhs_ty) match
where
tc_match ctxt pat_tys rhs_ty match@(Match pats maybe_rhs_sig grhss)
- = addErrCtxt (matchCtxt (mc_what ctxt) match) $
+ = add_match_ctxt match $
do { (pats', grhss') <- tcLamPats pats pat_tys rhs_ty $
tc_grhss ctxt maybe_rhs_sig grhss
; return (Match pats' Nothing grhss') }
do { (pats', grhss') <- tcLamPats pats pat_tys rhs_ty $
tc_grhss ctxt maybe_rhs_sig grhss
; return (Match pats' Nothing grhss') }
@@
-167,6
+167,13
@@
tcMatch ctxt pat_tys rhs_ty match
<+> ppr res_sig)
; tcGRHSs ctxt grhss (co, rhs_ty) }
<+> ppr res_sig)
; tcGRHSs ctxt grhss (co, rhs_ty) }
+ -- For (\x -> e), tcExpr has already said "In the expresssion \x->e"
+ -- so we don't want to add "In the lambda abstraction \x->e"
+ add_match_ctxt match thing_inside
+ = case mc_what ctxt of
+ LambdaExpr -> thing_inside
+ m_ctxt -> addErrCtxt (matchCtxt m_ctxt match) thing_inside
+
-------------
tcGRHSs :: TcMatchCtxt -> GRHSs Name -> (Refinement, BoxyRhoType)
-> TcM (GRHSs TcId)
-------------
tcGRHSs :: TcMatchCtxt -> GRHSs Name -> (Refinement, BoxyRhoType)
-> TcM (GRHSs TcId)