From 1b1e5a46082b74cb7ce05c14def21416375a9545 Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Fri, 10 Nov 2006 13:12:50 +0000 Subject: [PATCH] Add HsUtils.unguardedGRHSs, and use it --- compiler/hsSyn/HsUtils.lhs | 7 ++++--- compiler/parser/Parser.y.pp | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/compiler/hsSyn/HsUtils.lhs b/compiler/hsSyn/HsUtils.lhs index 51c6a19..5d57cf4 100644 --- a/compiler/hsSyn/HsUtils.lhs +++ b/compiler/hsSyn/HsUtils.lhs @@ -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)] diff --git a/compiler/parser/Parser.y.pp b/compiler/parser/Parser.y.pp index 0209ec8..c0d3f4e 100644 --- a/compiler/parser/Parser.y.pp +++ b/compiler/parser/Parser.y.pp @@ -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)) } -- 1.7.10.4