diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/deSugar/Check.lhs | 2 | ||||
-rw-r--r-- | compiler/typecheck/TcHsSyn.lhs | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/compiler/deSugar/Check.lhs b/compiler/deSugar/Check.lhs index 0b2dc08859..517dc79398 100644 --- a/compiler/deSugar/Check.lhs +++ b/compiler/deSugar/Check.lhs @@ -675,6 +675,8 @@ simplify_pat (DictPat dicts methods) num_of_d_and_ms = length dicts + length methods dict_and_method_pats = map VarPat (dicts ++ methods) +simplify_pat (CoPat co pat ty) = simplify_pat pat + ----------------- simplify_con con (PrefixCon ps) = PrefixCon (map simplify_lpat ps) simplify_con con (InfixCon p1 p2) = PrefixCon [simplify_lpat p1, simplify_lpat p2] diff --git a/compiler/typecheck/TcHsSyn.lhs b/compiler/typecheck/TcHsSyn.lhs index 322a5fd69d..47231fb0a6 100644 --- a/compiler/typecheck/TcHsSyn.lhs +++ b/compiler/typecheck/TcHsSyn.lhs @@ -777,6 +777,14 @@ zonk_pat env (DictPat ds ms) ; ms' <- zonkIdBndrs env ms ; return (extendZonkEnv env (ds' ++ ms'), DictPat ds' ms') } +zonk_pat env (CoPat co_fn pat ty) + = do { (env', co_fn') <- zonkCoFn env co_fn + ; (env'', pat') <- zonkPat env' (noLoc pat) + ; ty' <- zonkTcTypeToType env'' ty + ; return (env'', CoPat co_fn' (unLoc pat') ty') } + +zonk_pat env pat = pprPanic "zonk_pat" (ppr pat) + --------------------------- zonkConStuff env (PrefixCon pats) = do { (env', pats') <- zonkPats env pats |