X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=compiler%2Ftypecheck%2FTcArrows.lhs;h=ee14eb85eddd215e259cfe9abc69d8d1c2336a3a;hb=432b9c9322181a3644083e3c19b7e240d90659e7;hp=082f9da797ba1b3080c53d8c5c2547101d155ed3;hpb=c1500e4888be2341c0b6e6897f494766c86feba0;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcArrows.lhs b/compiler/typecheck/TcArrows.lhs index 082f9da..ee14eb8 100644 --- a/compiler/typecheck/TcArrows.lhs +++ b/compiler/typecheck/TcArrows.lhs @@ -53,7 +53,7 @@ tcProc pat cmd exp_ty do { ((exp_ty1, res_ty), coi) <- boxySplitAppTy exp_ty ; ((arr_ty, arg_ty), coi1) <- boxySplitAppTy exp_ty1 ; let cmd_env = CmdEnv { cmd_arr = arr_ty } - ; (pat', cmd') <- tcProcPat pat arg_ty res_ty $ + ; (pat', cmd') <- tcPat ProcExpr pat arg_ty res_ty $ tcCmdTop cmd_env cmd [] ; let res_coi = mkTransCoI coi (mkAppTyCoI exp_ty1 coi1 res_ty IdCo) ; return (pat', cmd', res_coi) @@ -123,8 +123,7 @@ tc_cmd env (HsLet binds (L body_loc body)) res_ty tc_cmd env in_cmd@(HsCase scrut matches) (stk, res_ty) = addErrCtxt (cmdCtxt in_cmd) $ do - (scrut', scrut_ty) <- addErrCtxt (caseScrutCtxt scrut) $ - tcInferRho scrut + (scrut', scrut_ty) <- tcInferRho scrut matches' <- tcMatchesCase match_ctxt scrut_ty matches res_ty return (HsCase scrut' matches') where @@ -187,8 +186,8 @@ tc_cmd env cmd@(HsLam (MatchGroup [L mtch_loc (match@(Match pats _maybe_rhs_sig (kappaUnderflow cmd) -- Check the patterns, and the GRHSs inside - ; (pats', grhss') <- setSrcSpan mtch_loc $ - tcLamPats pats cmd_stk res_ty $ + ; (pats', grhss') <- setSrcSpan mtch_loc $ + tcPats LambdaExpr pats cmd_stk res_ty $ tc_grhss grhss ; let match' = L mtch_loc (Match pats' Nothing grhss') @@ -341,10 +340,6 @@ arrowTyConKind = mkArrowKinds [liftedTypeKind, liftedTypeKind] liftedTypeKind cmdCtxt :: HsExpr Name -> SDoc cmdCtxt cmd = ptext (sLit "In the command:") <+> ppr cmd -caseScrutCtxt :: LHsExpr Name -> SDoc -caseScrutCtxt cmd - = hang (ptext (sLit "In the scrutinee of a case command:")) 4 (ppr cmd) - nonEmptyCmdStkErr :: HsExpr Name -> SDoc nonEmptyCmdStkErr cmd = hang (ptext (sLit "Non-empty command stack at command:"))