diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2018-05-21 09:00:32 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2018-05-21 13:04:09 +0100 |
commit | b7e80ae005d0072eda79135c371a794dc48f70e1 (patch) | |
tree | d58ed53143606ea688e5e1a5e175a5725625393e /compiler/deSugar | |
parent | 5f3fb71213e78838cd3060be37ad2d9dd1ed247f (diff) | |
download | haskell-b7e80ae005d0072eda79135c371a794dc48f70e1.tar.gz |
Remove TcType.toTcType
In the olden days we insisted that only TcTyVars could appear
in a TcType. But now we are more accommodating; see TcType
Note [TcTyVars and TyVars in the typechecker]
This patch removes a function that converted a Type to a TcType.
It didn't do anything useful except statisfy an invariant that
we no longer have. Now it's gone.
Diffstat (limited to 'compiler/deSugar')
-rw-r--r-- | compiler/deSugar/Check.hs | 8 | ||||
-rw-r--r-- | compiler/deSugar/DsBinds.hs | 2 | ||||
-rw-r--r-- | compiler/deSugar/Match.hs | 3 |
3 files changed, 6 insertions, 7 deletions
diff --git a/compiler/deSugar/Check.hs b/compiler/deSugar/Check.hs index b383fb2f5d..39f585394a 100644 --- a/compiler/deSugar/Check.hs +++ b/compiler/deSugar/Check.hs @@ -44,7 +44,7 @@ import HscTypes (CompleteMatch(..)) import DsMonad import TcSimplify (tcCheckSatisfiability) -import TcType (toTcType, isStringTy, isIntTy, isWordTy) +import TcType (isStringTy, isIntTy, isWordTy) import Bag import ErrUtils import Var (EvVar) @@ -624,12 +624,12 @@ inhabitationCandidates fam_insts ty Just (tc, _) | tc `elem` trivially_inhabited -> case dcs of [] -> return (Left src_ty) - (_:_) -> do var <- liftD $ mkPmId (toTcType core_ty) + (_:_) -> do var <- liftD $ mkPmId core_ty let va = build_tm (PmVar var) dcs return $ Right [(va, mkIdEq var, emptyBag)] | pmIsClosedType core_ty -> liftD $ do - var <- mkPmId (toTcType core_ty) -- it would be wrong to unify x + var <- mkPmId core_ty -- it would be wrong to unify x alts <- mapM (mkOneConFull var . RealDataCon) (tyConDataCons tc) return $ Right [(build_tm va dcs, eq, cs) | (va, eq, cs) <- alts] -- For other types conservatively assume that they are inhabited. @@ -1330,7 +1330,7 @@ allCompleteMatches cl tys = do -- * Types and constraints newEvVar :: Name -> Type -> EvVar -newEvVar name ty = mkLocalId name (toTcType ty) +newEvVar name ty = mkLocalId name ty nameType :: String -> Type -> DsM EvVar nameType name ty = do diff --git a/compiler/deSugar/DsBinds.hs b/compiler/deSugar/DsBinds.hs index ad666a2ce2..4684d436a4 100644 --- a/compiler/deSugar/DsBinds.hs +++ b/compiler/deSugar/DsBinds.hs @@ -181,7 +181,7 @@ dsHsBind dflags (AbsBinds { abs_tvs = tyvars, abs_ev_vars = dicts , abs_exports = exports , abs_ev_binds = ev_binds , abs_binds = binds, abs_sig = has_sig }) - = do { ds_binds <- addDictsDs (toTcTypeBag (listToBag dicts)) $ + = do { ds_binds <- addDictsDs (listToBag dicts) $ dsLHsBinds binds -- addDictsDs: push type constraints deeper -- for inner pattern match check diff --git a/compiler/deSugar/Match.hs b/compiler/deSugar/Match.hs index 0044cbe49f..6b548a4f5a 100644 --- a/compiler/deSugar/Match.hs +++ b/compiler/deSugar/Match.hs @@ -39,7 +39,6 @@ import MatchCon import MatchLit import Type import Coercion ( eqCoercion ) -import TcType ( toTcTypeBag ) import TyCon( isNewTyCon ) import TysWiredIn import SrcLoc @@ -733,7 +732,7 @@ matchWrapper ctxt mb_scr (MG { mg_alts = L _ matches mk_eqn_info vars (L _ (Match { m_pats = pats, m_grhss = grhss })) = do { dflags <- getDynFlags ; let upats = map (unLoc . decideBangHood dflags) pats - dicts = toTcTypeBag (collectEvVarsPats upats) -- Only TcTyVars + dicts = collectEvVarsPats upats ; tm_cs <- genCaseTmCs2 mb_scr upats vars ; match_result <- addDictsDs dicts $ -- See Note [Type and Term Equality Propagation] addTmCsDs tm_cs $ -- See Note [Type and Term Equality Propagation] |