Remove the unused HsExpr constructor DictPat
[ghc-hetmet.git] / compiler / typecheck / TcHsSyn.lhs
index 3736184..eaa7b23 100644 (file)
@@ -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)