diff options
| author | simonpj@microsoft.com <unknown> | 2010-10-06 15:50:33 +0000 |
|---|---|---|
| committer | simonpj@microsoft.com <unknown> | 2010-10-06 15:50:33 +0000 |
| commit | 310c00498677181c35c632678711a5c82f151674 (patch) | |
| tree | 3b1fed8eb4bfef90e4b0a894a6c1785977f9ed8c /compiler | |
| parent | 67ed735fab12c12a1d48878d7bda33588c67fb78 (diff) | |
| download | haskell-310c00498677181c35c632678711a5c82f151674.tar.gz | |
Make warning-free
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/deSugar/Match.lhs | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/compiler/deSugar/Match.lhs b/compiler/deSugar/Match.lhs index 0544d9bb18..aa2e9fe110 100644 --- a/compiler/deSugar/Match.lhs +++ b/compiler/deSugar/Match.lhs @@ -331,7 +331,8 @@ matchVariables [] _ _ = panic "matchVariables" matchBangs :: [Id] -> Type -> [EquationInfo] -> DsM MatchResult matchBangs (var:vars) ty eqns - = do { match_result <- match (var:vars) ty (map decomposeFirst_Bang eqns) + = do { match_result <- match (var:vars) ty $ + map (decomposeFirstPat getBangPat) eqns ; return (mkEvalMatchResult var ty match_result) } matchBangs [] _ _ = panic "matchBangs" @@ -340,7 +341,8 @@ matchCoercion :: [Id] -> Type -> [EquationInfo] -> DsM MatchResult matchCoercion (var:vars) ty (eqns@(eqn1:_)) = do { let CoPat co pat _ = firstPat eqn1 ; var' <- newUniqueId var (hsPatType pat) - ; match_result <- match (var':vars) ty (map decomposeFirst_Coercion eqns) + ; match_result <- match (var':vars) ty $ + map (decomposeFirstPat getCoPat) eqns ; co' <- dsHsWrapper co ; let rhs' = co' (Var var) ; return (mkCoLetMatchResult (NonRec var' rhs') match_result) } @@ -355,7 +357,8 @@ matchView (var:vars) ty (eqns@(eqn1:_)) let ViewPat viewExpr (L _ pat) _ = firstPat eqn1 -- do the rest of the compilation ; var' <- newUniqueId var (hsPatType pat) - ; match_result <- match (var':vars) ty (map decomposeFirst_View eqns) + ; match_result <- match (var':vars) ty $ + map (decomposeFirstPat getViewPat) eqns -- compile the view expressions ; viewExpr' <- dsLExpr viewExpr ; return (mkViewMatchResult var' viewExpr' var match_result) } @@ -367,12 +370,13 @@ decomposeFirstPat extractpat (eqn@(EqnInfo { eqn_pats = pat : pats })) = eqn { eqn_pats = extractpat pat : pats} decomposeFirstPat _ _ = panic "decomposeFirstPat" -decomposeFirst_Coercion, decomposeFirst_Bang, decomposeFirst_View :: EquationInfo -> EquationInfo - -decomposeFirst_Coercion = decomposeFirstPat (\ (CoPat _ pat _) -> pat) -decomposeFirst_Bang = decomposeFirstPat (\ (BangPat pat ) -> unLoc pat) -decomposeFirst_View = decomposeFirstPat (\ (ViewPat _ pat _) -> unLoc pat) - +getCoPat, getBangPat, getViewPat :: Pat Id -> Pat Id +getCoPat (CoPat _ pat _) = pat +getCoPat _ = panic "getCoPat" +getBangPat (BangPat pat ) = unLoc pat +getBangPat _ = panic "getBangPat" +getViewPat (ViewPat _ pat _) = unLoc pat +getViewPat _ = panic "getBangPat" \end{code} %************************************************************************ |
