Add HsUtils.unguardedGRHSs, and use it
authorsimonpj@microsoft.com <unknown>
Fri, 10 Nov 2006 13:12:50 +0000 (13:12 +0000)
committersimonpj@microsoft.com <unknown>
Fri, 10 Nov 2006 13:12:50 +0000 (13:12 +0000)
compiler/hsSyn/HsUtils.lhs
compiler/parser/Parser.y.pp

index 51c6a19..5d57cf4 100644 (file)
@@ -28,7 +28,6 @@ import RdrName
 import Var
 import Type
 import DataCon
-import OccName
 import Name
 import BasicTypes
 import SrcLoc
@@ -53,16 +52,18 @@ just attach noSrcSpan to everything.
 mkHsPar :: LHsExpr id -> LHsExpr id
 mkHsPar e = L (getLoc e) (HsPar e)
 
--- gaw 2004
 mkSimpleMatch :: [LPat id] -> LHsExpr id -> LMatch id
 mkSimpleMatch pats rhs 
   = L loc $
-    Match pats Nothing (GRHSs (unguardedRHS rhs) emptyLocalBinds)
+    Match pats Nothing (unguardedGRHSs rhs)
   where
     loc = case pats of
                []      -> getLoc rhs
                (pat:_) -> combineSrcSpans (getLoc pat) (getLoc rhs)
 
+unguardedGRHSs :: LHsExpr id -> GRHSs id
+unguardedGRHSs rhs = GRHSs (unguardedRHS rhs) emptyLocalBinds
+
 unguardedRHS :: LHsExpr id -> [LGRHS id]
 unguardedRHS rhs@(L loc _) = [L loc (GRHS [] rhs)]
 
index 0209ec8..c0d3f4e 100644 (file)
@@ -1186,8 +1186,8 @@ exp10 :: { LHsExpr RdrName }
        : '\\' aexp aexps opt_asig '->' exp     
                        {% checkPatterns ($2 : reverse $3) >>= \ ps -> 
                           return (LL $ HsLam (mkMatchGroup [LL $ Match ps $4
-                                           (GRHSs (unguardedRHS $6) emptyLocalBinds
-                                                       )])) }
+                                                                 (unguardedGRHSs $6)
+                                                           ])) }
        | 'let' binds 'in' exp                  { LL $ HsLet (unLoc $2) $4 }
        | 'if' exp 'then' exp 'else' exp        { LL $ HsIf $2 $4 $6 }
        | 'case' exp 'of' altslist              { LL $ HsCase $2 (mkMatchGroup (unLoc $4)) }