diff options
| author | Ian Lynagh <ian@well-typed.com> | 2013-02-01 14:32:27 +0000 |
|---|---|---|
| committer | Ian Lynagh <ian@well-typed.com> | 2013-02-01 15:34:33 +0000 |
| commit | 2de4a2aa66baf0492d94c6ea936349112e3e8dba (patch) | |
| tree | 281e378fa1c5f58c39fe5569522cc5f22a53481b | |
| parent | 8760cf35f0603b939c34224fa391c8ee5a61e095 (diff) | |
| download | haskell-2de4a2aa66baf0492d94c6ea936349112e3e8dba.tar.gz | |
A couple of small refactorings
| -rw-r--r-- | compiler/parser/RdrHsSyn.lhs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/compiler/parser/RdrHsSyn.lhs b/compiler/parser/RdrHsSyn.lhs index 6bd8701d7f..4d384be276 100644 --- a/compiler/parser/RdrHsSyn.lhs +++ b/compiler/parser/RdrHsSyn.lhs @@ -560,17 +560,20 @@ checkPat loc e args -- OK to let this happen even if bang-patterns | Just (e', args') <- splitBang e = do { args'' <- checkPatterns args' ; checkPat loc e' (args'' ++ args) } -checkPat loc (L _ (HsApp f x)) args - = do { x <- checkLPat x; checkPat loc f (x:args) } +checkPat loc (L _ (HsApp f e)) args + = do p <- checkLPat e + checkPat loc f (p : args) checkPat loc (L _ e) [] - = do { pState <- getPState - ; p <- checkAPat (dflags pState) loc e - ; return (L loc p) } + = do p <- checkAPat loc e + return (L loc p) checkPat loc e _ = patFail loc (unLoc e) -checkAPat :: DynFlags -> SrcSpan -> HsExpr RdrName -> P (Pat RdrName) -checkAPat dynflags loc e0 = case e0 of +checkAPat :: SrcSpan -> HsExpr RdrName -> P (Pat RdrName) +checkAPat loc e0 = do + pState <- getPState + let dynflags = dflags pState + case e0 of EWildPat -> return (WildPat placeHolderType) HsVar x -> return (VarPat x) HsLit l -> return (LitPat l) |
