projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2001-08-13 12:34:37 by simonmar]
[ghc-hetmet.git]
/
ghc
/
compiler
/
deSugar
/
DsListComp.lhs
diff --git
a/ghc/compiler/deSugar/DsListComp.lhs
b/ghc/compiler/deSugar/DsListComp.lhs
index
929dd3e
..
ebe08c6
100644
(file)
--- a/
ghc/compiler/deSugar/DsListComp.lhs
+++ b/
ghc/compiler/deSugar/DsListComp.lhs
@@
-12,8
+12,7
@@
import {-# SOURCE #-} DsExpr ( dsExpr, dsLet )
import BasicTypes ( Boxity(..) )
import HsSyn ( OutPat(..), HsExpr(..), Stmt(..), HsMatchContext(..), HsDoContext(..) )
import BasicTypes ( Boxity(..) )
import HsSyn ( OutPat(..), HsExpr(..), Stmt(..), HsMatchContext(..), HsDoContext(..) )
-import TcHsSyn ( TypecheckedStmt, TypecheckedPat, TypecheckedHsExpr )
-import DsHsSyn ( outPatType )
+import TcHsSyn ( TypecheckedStmt, TypecheckedPat, TypecheckedHsExpr, outPatType )
import CoreSyn
import DsMonad -- the monadery used in the desugarer
import CoreSyn
import DsMonad -- the monadery used in the desugarer
@@
-158,7
+157,7
@@
deListComp [ResultStmt expr locn] list -- Figure 7.4, SLPJ, p 135, rule C above
returnDs (mkConsExpr (exprType core_expr) core_expr list)
-- Non-last: must be a guard
returnDs (mkConsExpr (exprType core_expr) core_expr list)
-- Non-last: must be a guard
-deListComp (ExprStmt guard locn : quals) list -- rule B above
+deListComp (ExprStmt guard ty locn : quals) list -- rule B above
= dsExpr guard `thenDs` \ core_guard ->
deListComp quals list `thenDs` \ core_rest ->
returnDs (mkIfThenElse core_guard core_rest list)
= dsExpr guard `thenDs` \ core_guard ->
deListComp quals list `thenDs` \ core_rest ->
returnDs (mkIfThenElse core_guard core_rest list)
@@
-280,7
+279,7
@@
dfListComp c_id n_id [ResultStmt expr locn]
returnDs (mkApps (Var c_id) [core_expr, Var n_id])
-- Non-last: must be a guard
returnDs (mkApps (Var c_id) [core_expr, Var n_id])
-- Non-last: must be a guard
-dfListComp c_id n_id (ExprStmt guard locn : quals)
+dfListComp c_id n_id (ExprStmt guard ty locn : quals)
= dsExpr guard `thenDs` \ core_guard ->
dfListComp c_id n_id quals `thenDs` \ core_rest ->
returnDs (mkIfThenElse core_guard core_rest (Var n_id))
= dsExpr guard `thenDs` \ core_guard ->
dfListComp c_id n_id quals `thenDs` \ core_rest ->
returnDs (mkIfThenElse core_guard core_rest (Var n_id))