X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Ftypecheck%2FTcPat.lhs;h=208af13cc0c36c81d054693498bc918dbc9d0d8d;hb=ff818166a0a06e77becad9e28ed116f3b7f5cc8b;hp=64b5abbe5e1caffea16b43dcfc41b8a9543f29f8;hpb=19da321b73fb79535f72bf4abac69a3592f10e6d;p=ghc-hetmet.git diff --git a/ghc/compiler/typecheck/TcPat.lhs b/ghc/compiler/typecheck/TcPat.lhs index 64b5abb..208af13 100644 --- a/ghc/compiler/typecheck/TcPat.lhs +++ b/ghc/compiler/typecheck/TcPat.lhs @@ -25,8 +25,8 @@ import TcEnv ( newLocalName, tcExtendIdEnv1, tcExtendTyVarEnv2, tcLookupClass, tcLookupDataCon, tcLookupId ) import TcMType ( newTyFlexiVarTy, arityErr, tcSkolTyVars, readMetaTyVar ) import TcType ( TcType, TcTyVar, TcSigmaType, TcTauType, zipTopTvSubst, - SkolemInfo(PatSkol), isSkolemTyVar, isMetaTyVar, pprSkolemTyVar, - TvSubst, mkTvSubst, substTyVar, substTy, MetaDetails(..), + SkolemInfo(PatSkol), isSkolemTyVar, isMetaTyVar, pprTcTyVar, + TvSubst, mkOpenTvSubst, substTyVar, substTy, MetaDetails(..), mkTyVarTys, mkClassPred, mkTyConApp, isOverloadedTy ) import VarEnv ( mkVarEnv ) -- ugly import Kind ( argTypeKind, liftedTypeKind ) @@ -535,7 +535,7 @@ refineTyVars :: [TcTyVar] -- Newly instantiated meta-tyvars of the function -- Just one level of de-wobblification though. What a hack! refineTyVars tvs = do { mb_prs <- mapM mk_pr tvs - ; return (mkTvSubst (mkVarEnv (catMaybes mb_prs))) } + ; return (mkOpenTvSubst (mkVarEnv (catMaybes mb_prs))) } where mk_pr tv = do { details <- readMetaTyVar tv ; case details of @@ -634,9 +634,7 @@ badTypePat pat = ptext SLIT("Illegal type pattern") <+> ppr pat lazyPatErr pat tvs = failWithTc $ hang (ptext SLIT("A lazy (~) pattern connot bind existential type variables")) - 2 (vcat (map get tvs)) - where - get tv = ASSERT( isSkolemTyVar tv ) pprSkolemTyVar tv + 2 (vcat (map pprTcTyVar tvs)) inaccessibleAlt msg = hang (ptext SLIT("Inaccessible case alternative:")) 2 msg