X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcHsSyn.lhs;h=eaa7b23331ae75fe99e3a87874cea787bf1349bc;hb=74b27e20425336403d80e942ee3faf00f8c36ef8;hp=37361842d7bcaa4d24b3814ef4b7fe341868cafd;hpb=e5ca7e6e5137a2e6081717e5e90ca52a30840f68;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcHsSyn.lhs b/compiler/typecheck/TcHsSyn.lhs index 3736184..eaa7b23 100644 --- a/compiler/typecheck/TcHsSyn.lhs +++ b/compiler/typecheck/TcHsSyn.lhs @@ -35,12 +35,10 @@ import Id import TcRnMonad import Type import TcType -import qualified Type import TcMType import TysPrim import TysWiredIn import TyCon -import {- Kind parts of -} Type import Name import Var import VarSet @@ -88,11 +86,6 @@ hsPatType (SigPatOut pat ty) = ty hsPatType (NPat lit _ _ ty) = ty hsPatType (NPlusKPat id _ _ _) = idType (unLoc id) hsPatType (CoPat _ _ ty) = ty -hsPatType (DictPat ds ms) = case (ds ++ ms) of - [] -> unitTy - [d] -> idType d - ds -> mkTupleTy Boxed (length ds) (map idType ds) - hsLitType :: HsLit -> TcType hsLitType (HsChar c) = charTy @@ -463,12 +456,12 @@ zonkExpr env (RecordCon data_con con_expr rbinds) zonkRbinds env rbinds `thenM` \ new_rbinds -> returnM (RecordCon data_con new_con_expr new_rbinds) -zonkExpr env (RecordUpd expr rbinds in_ty out_ty) - = zonkLExpr env expr `thenM` \ new_expr -> - zonkTcTypeToType env in_ty `thenM` \ new_in_ty -> - zonkTcTypeToType env out_ty `thenM` \ new_out_ty -> - zonkRbinds env rbinds `thenM` \ new_rbinds -> - returnM (RecordUpd new_expr new_rbinds new_in_ty new_out_ty) +zonkExpr env (RecordUpd expr rbinds cons in_tys out_tys) + = zonkLExpr env expr `thenM` \ new_expr -> + mapM (zonkTcTypeToType env) in_tys `thenM` \ new_in_tys -> + mapM (zonkTcTypeToType env) out_tys `thenM` \ new_out_tys -> + zonkRbinds env rbinds `thenM` \ new_rbinds -> + returnM (RecordUpd new_expr new_rbinds cons new_in_tys new_out_tys) zonkExpr env (ExprWithTySigOut e ty) = do { e' <- zonkLExpr env e @@ -753,11 +746,6 @@ zonk_pat env (NPlusKPat (L loc n) lit e1 e2) ; e2' <- zonkExpr env e2 ; return (extendZonkEnv1 env n', NPlusKPat (L loc n') lit' e1' e2') } -zonk_pat env (DictPat ds ms) - = do { ds' <- zonkIdBndrs env ds - ; 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)