From 16530a4a97e2a7b39377878d65463194babc48f8 Mon Sep 17 00:00:00 2001 From: sewardj Date: Mon, 16 Oct 2000 14:28:54 +0000 Subject: [PATCH] [project @ 2000-10-16 14:28:54 by sewardj] More typechecker bits. --- ghc/compiler/typecheck/TcEnv.lhs | 4 ++-- ghc/compiler/typecheck/TcMonad.lhs | 30 ++++++++---------------------- 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/ghc/compiler/typecheck/TcEnv.lhs b/ghc/compiler/typecheck/TcEnv.lhs index edfd1f2..c782a2a 100644 --- a/ghc/compiler/typecheck/TcEnv.lhs +++ b/ghc/compiler/typecheck/TcEnv.lhs @@ -54,7 +54,7 @@ import DataCon ( DataCon ) import TyCon ( TyCon, tyConKind, tyConArity, isSynTyCon ) import Class ( Class, ClassOpItem, ClassContext, classTyCon ) import Subst ( substTy ) -import Name ( Name, OccName, Provenance(..), ExportFlag(..), NamedThing(..), +import Name ( Name, OccName, NamedThing(..), nameOccName, nameModule, getSrcLoc, mkGlobalName, isLocallyDefined, NameEnv, emptyNameEnv, lookupNameEnv, nameEnvElts, @@ -64,7 +64,7 @@ import OccName ( mkDFunOcc, mkDefaultMethodOcc, occNameString ) import Module ( Module ) import Unify ( unifyTyListsX, matchTys ) import HscTypes ( ModDetails(..), InstEnv, lookupTypeEnv, TyThing(..), - GlobalSymbolTable ) + GlobalSymbolTable, Provenance(..) ) import Unique ( pprUnique10, Unique, Uniquable(..) ) import UniqFM import Unique ( Uniquable(..) ) diff --git a/ghc/compiler/typecheck/TcMonad.lhs b/ghc/compiler/typecheck/TcMonad.lhs index d71810c..341a618 100644 --- a/ghc/compiler/typecheck/TcMonad.lhs +++ b/ghc/compiler/typecheck/TcMonad.lhs @@ -59,7 +59,8 @@ import Name ( Name ) import Var ( Id, TyVar, newMutTyVar, newSigTyVar, readMutTyVar, writeMutTyVar ) import VarEnv ( TidyEnv, emptyTidyEnv ) import VarSet ( TyVarSet ) -import UniqSupply ( UniqSupply, uniqFromSupply, uniqsFromSupply, splitUniqSupply, +import UniqSupply ( UniqSupply, uniqFromSupply, uniqsFromSupply, + splitUniqSupply, mkSplitUniqSupply, UniqSM, initUs_ ) import SrcLoc ( SrcLoc, noSrcLoc ) import FiniteMap ( FiniteMap, lookupFM, addToFM, emptyFM ) @@ -124,24 +125,14 @@ type TcRef a = IORef a \end{code} \begin{code} -<<<<<<< TcMonad.lhs --- initEnv is passed in to avoid module recursion between TcEnv & TcMonad. - -initTc :: DynFlags - -> UniqSupply - -> (TcRef (UniqFM a) -> TcEnv) -======= -initTc :: TcEnv + +initTc :: DynFlags + -> TcEnv -> SrcLoc ->>>>>>> 1.44 -> TcM r -> IO (Maybe r, (Bag ErrMsg, Bag WarnMsg)) -<<<<<<< TcMonad.lhs -initTc dflags us initenv do_this -======= -initTc tc_env src_loc do_this ->>>>>>> 1.44 +initTc dflags tc_env src_loc do_this = do { us <- mkSplitUniqSupply 'a' ; us_var <- newIORef us ; @@ -150,17 +141,12 @@ initTc tc_env src_loc do_this tvs_var <- newIORef emptyUFM ; let -<<<<<<< TcMonad.lhs init_down = TcDown dflags [] us_var dfun_var - noSrcLoc -======= - init_down = TcDown [] us_var dfun_var src_loc ->>>>>>> 1.44 [] errs_var ; - maybe_res <- catch (do { res <- do_this init_down env ; + maybe_res <- catch (do { res <- do_this init_down tc_env ; return (Just res)}) (\_ -> return Nothing) ; @@ -321,7 +307,7 @@ addErrTc err_msg = addErrTcM (emptyTidyEnv, err_msg) addErrsTc :: [Message] -> NF_TcM () addErrsTc [] = returnNF_Tc () -addErrsTc err_msgs = listNF_Tc_ (map addErrTc err_msgs) `thenNF_Tc_` returnNF_Tc () +addErrsTc err_msgs = listNF_Tc (map addErrTc err_msgs) `thenNF_Tc_` returnNF_Tc () -- The 'M' variants do the TidyEnv bit failWithTcM :: (TidyEnv, Message) -> TcM a -- Add an error message and fail -- 1.7.10.4