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:
d5f23f7
)
breakpoints: fix the in-scope set for 'where' clauses
author
Simon Marlow
<simonmar@microsoft.com>
Fri, 20 Apr 2007 14:53:54 +0000
(14:53 +0000)
committer
Simon Marlow
<simonmar@microsoft.com>
Fri, 20 Apr 2007 14:53:54 +0000
(14:53 +0000)
compiler/deSugar/DsGRHSs.lhs
patch
|
blob
|
history
diff --git
a/compiler/deSugar/DsGRHSs.lhs
b/compiler/deSugar/DsGRHSs.lhs
index
31d48b6
..
55b4f57
100644
(file)
--- a/
compiler/deSugar/DsGRHSs.lhs
+++ b/
compiler/deSugar/DsGRHSs.lhs
@@
-57,19
+57,21
@@
dsGRHSs :: HsMatchContext Name -> [Pat Id] -- These are to build a MatchContext
-> GRHSs Id -- Guarded RHSs
-> Type -- Type of RHS
-> DsM MatchResult
-> GRHSs Id -- Guarded RHSs
-> Type -- Type of RHS
-> DsM MatchResult
-dsGRHSs hs_ctx pats (GRHSs grhss binds) rhs_ty =
- bindLocalsDs (bindsBinders ++ patsBinders) $
- mappM (dsGRHS hs_ctx pats rhs_ty) grhss `thenDs` \ match_results ->
+dsGRHSs hs_ctx pats grhssa@(GRHSs grhss binds) rhs_ty =
+ bindLocalsDs binders $ do
+ match_results <- mappM (dsGRHS hs_ctx pats rhs_ty) grhss
let
match_result1 = foldr1 combineMatchResults match_results
match_result2 = adjustMatchResultDs
let
match_result1 = foldr1 combineMatchResults match_results
match_result2 = adjustMatchResultDs
- (\e -> bindLocalsDs patsBinders $ dsLocalBinds binds e)
+ (\e -> bindLocalsDs binders $
+ dsLocalBinds binds e)
match_result1
-- NB: nested dsLet inside matchResult
match_result1
-- NB: nested dsLet inside matchResult
- in
+ --
returnDs match_result2
where bindsBinders = map unLoc (collectLocalBinders binds)
patsBinders = collectPatsBinders (map (L undefined) pats)
returnDs match_result2
where bindsBinders = map unLoc (collectLocalBinders binds)
patsBinders = collectPatsBinders (map (L undefined) pats)
+ binders = bindsBinders ++ patsBinders
dsGRHS hs_ctx pats rhs_ty (L loc (GRHS guards rhs))
= matchGuards (map unLoc guards) hs_ctx rhs rhs_ty
dsGRHS hs_ctx pats rhs_ty (L loc (GRHS guards rhs))
= matchGuards (map unLoc guards) hs_ctx rhs rhs_ty