summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsewardj <unknown>2000-10-13 14:14:32 +0000
committersewardj <unknown>2000-10-13 14:14:32 +0000
commit064a65d90058bbb5f48e311649a1211a32ad891d (patch)
treef85af60bfdf0cc7cd5f556f8351677962ffc9211
parent318425f68a61a14459a63fda9541897b5d347743 (diff)
downloadhaskell-064a65d90058bbb5f48e311649a1211a32ad891d.tar.gz
[project @ 2000-10-13 14:14:31 by sewardj]
Fix some typechecker bits.
-rw-r--r--ghc/compiler/main/HscTypes.lhs6
-rw-r--r--ghc/compiler/typecheck/TcEnv.lhs16
-rw-r--r--ghc/compiler/typecheck/TcHsSyn.lhs3
3 files changed, 16 insertions, 9 deletions
diff --git a/ghc/compiler/main/HscTypes.lhs b/ghc/compiler/main/HscTypes.lhs
index ebe0aac2a7..cb91e51bf4 100644
--- a/ghc/compiler/main/HscTypes.lhs
+++ b/ghc/compiler/main/HscTypes.lhs
@@ -7,7 +7,8 @@
module HscTypes ( TyThing(..), GlobalSymbolTable, OrigNameEnv, AvailEnv,
WhetherHasOrphans, ImportVersion, ExportItem,
PersistentRenamerState(..), IsBootInterface, Avails, DeclsMap,
- IfaceInsts, IfaceRules, DeprecationEnv )
+ IfaceInsts, IfaceRules, DeprecationEnv, ModDetails(..),
+ InstEnv, lookupTypeEnv )
where
#include "HsVersions.h"
@@ -38,7 +39,8 @@ import CoreSyn ( CoreRule )
import NameSet ( NameSet )
import Type ( Type )
import VarSet ( TyVarSet )
-import {-# SOURCE #-} TcInstUtil ( emptyInstEnv )
+import {-# SOURCE #-}
+ TcInstUtil ( emptyInstEnv )
import Panic ( panic )
\end{code}
diff --git a/ghc/compiler/typecheck/TcEnv.lhs b/ghc/compiler/typecheck/TcEnv.lhs
index 13ce1ef289..e106cba20b 100644
--- a/ghc/compiler/typecheck/TcEnv.lhs
+++ b/ghc/compiler/typecheck/TcEnv.lhs
@@ -12,7 +12,8 @@ module TcEnv(
-- Global environment
tcExtendGlobalEnv, tcExtendGlobalValEnv,
- tcLookupTy, tcLookupTyCon, tcLookupClass, tcLookupGlobalId, tcLookupDataCon,
+ tcLookupTyCon, tcLookupClass, tcLookupGlobalId, tcLookupDataCon,
+ tcLookupGlobal_maybe,
-- Local environment
tcExtendKindEnv,
@@ -55,14 +56,15 @@ import Class ( Class, ClassOpItem, ClassContext, classTyCon )
import Subst ( substTy )
import Name ( Name, OccName, Provenance(..), ExportFlag(..), NamedThing(..),
nameOccName, nameModule, getSrcLoc, mkGlobalName,
- maybeWiredInTyConName, maybeWiredInIdName, isLocallyDefined,
+ isLocallyDefined,
NameEnv, emptyNameEnv, lookupNameEnv, nameEnvElts,
extendNameEnv, extendNameEnvList
)
import OccName ( mkDFunOcc, mkDefaultMethodOcc, occNameString )
import Module ( Module )
import Unify ( unifyTyListsX, matchTys )
-import HscTypes ( ModDetails(..), InstEnv, lookupTypeEnv )
+import HscTypes ( ModDetails(..), InstEnv, lookupTypeEnv, TyThing(..),
+ GlobalSymbolTable )
import Unique ( pprUnique10, Unique, Uniquable(..) )
import UniqFM
import Unique ( Uniquable(..) )
@@ -71,6 +73,7 @@ import SrcLoc ( SrcLoc )
import FastString ( FastString )
import Maybes
import Outputable
+import IOExts ( newIORef )
\end{code}
%************************************************************************
@@ -140,7 +143,7 @@ data TcTyThing
initTcEnv :: GlobalSymbolTable -> InstEnv -> IO TcEnv
initTcEnv gst inst_env
- = do { gtv_var <- newIORef emptyVarSet
+ = do { gtv_var <- newIORef emptyVarSet ;
return (TcEnv { tcGST = gst,
tcGEnv = emptyNameEnv,
tcInsts = inst_env,
@@ -182,7 +185,7 @@ lookup_local env name
= case lookupNameEnv (tcLEnv env) name of
Just thing -> Just thing
Nothing -> case lookup_global env name of
- Just thing -> AGlobal thing
+ Just thing -> Just (AGlobal thing)
Nothing -> Nothing
explicitLookupId :: TcEnv -> Name -> Maybe Id
@@ -308,6 +311,7 @@ A variety of global lookups, when we know what we are looking for.
\begin{code}
tcLookupGlobal :: Name -> NF_TcM TyThing
+tcLookupGlobal name
= tcLookupGlobal_maybe name `thenNF_Tc` \ maybe_thing ->
case maybe_thing of
Just thing -> returnNF_Tc thing
@@ -317,7 +321,7 @@ tcLookupGlobalId :: Name -> NF_TcM Id
tcLookupGlobalId name
= tcLookupGlobal_maybe name `thenNF_Tc` \ maybe_id ->
case maybe_id of
- Just (AnId clas) -> returnNF_Tc id
+ Just (AnId clas) -> returnNF_Tc clas
other -> notFound "tcLookupGlobalId:" name
tcLookupDataCon :: Name -> TcM DataCon
diff --git a/ghc/compiler/typecheck/TcHsSyn.lhs b/ghc/compiler/typecheck/TcHsSyn.lhs
index 1bcdd73ebf..9dc5fcafce 100644
--- a/ghc/compiler/typecheck/TcHsSyn.lhs
+++ b/ghc/compiler/typecheck/TcHsSyn.lhs
@@ -41,7 +41,7 @@ import HsSyn -- oodles of it
-- others:
import Id ( idName, idType, idUnfolding, setIdType, omitIfaceSigForId, isIP, Id )
import DataCon ( dataConWrapId )
-import TcEnv ( tcLookupGlobal_maybe, tcExtendGlobalValEnv, tcGetEnv,
+import TcEnv ( tcLookupGlobal_maybe, tcExtendGlobalValEnv,
TcEnv, TcId, tcInstId
)
@@ -54,6 +54,7 @@ import CoreUnfold( unfoldingTemplate )
import BasicTypes ( RecFlag(..) )
import Bag
import Outputable
+import HscTypes ( TyThing(..) )
\end{code}