PersistentCompilerState(..), GlobalRdrEnv,
LocalRdrEnv,
HomeIfaceTable, PackageIfaceTable )
-import BasicTypes ( Version, defaultFixity )
+import BasicTypes ( Version, defaultFixity,
+ Fixity(..), FixityDirection(..) )
import ErrUtils ( addShortErrLocLine, addShortWarnLocLine,
Message, Messages, errorsFound, warningsFound,
printErrorsAndWarnings
RdrNameEnv, emptyRdrEnv, extendRdrEnv,
addListToRdrEnv, rdrEnvToList, rdrEnvElts
)
+import Id ( idName )
+import MkId ( seqId )
import Name ( Name, OccName, NamedThing(..),
- nameOccName,
- decode, mkLocalName, mkKnownKeyGlobal
+ nameOccName, nameRdrName,
+ decode, mkInternalName
)
import NameEnv ( NameEnv, lookupNameEnv, emptyNameEnv,
extendNameEnvList )
import Module ( Module, ModuleName, ModuleSet, emptyModuleSet,
- PackageName )
+ PackageName, preludePackage )
import PrelInfo ( ghcPrimExports,
cCallableClassDecl, cReturnableClassDecl, assertDecl )
import PrelNames ( mkUnboundName, gHC_PRIM_Name )
import UniqSupply
import Outputable
-import IOExts ( IORef, newIORef, readIORef, writeIORef,
- fixIO, unsafePerformIO )
+import DATA_IOREF ( IORef, newIORef, readIORef, writeIORef )
+import UNSAFE_IO ( unsafePerformIO )
+import FIX_IO ( fixIO )
+
import IO ( hPutStr, stderr )
infixr 9 `thenRn`, `thenRn_`
isCmdLineMode _ = False
\end{code}
-%===================================================
-\subsubsection{ ENVIRONMENTS}
-%===================================================
-
\begin{code}
---------------------------------
type LocalFixityEnv = NameEnv RenamedFixitySig
-- We keep the whole fixity sig so that we
-- can report line-number info when there is a duplicate
emptyLocalFixityEnv :: LocalFixityEnv
emptyLocalFixityEnv = emptyNameEnv
-
-lookupLocalFixity :: LocalFixityEnv -> Name -> Fixity
-lookupLocalFixity env name
- = case lookupNameEnv env name of
- Just (FixitySig _ fix _) -> fix
- Nothing -> defaultFixity
\end{code}
+
%************************************************************************
%* *
\subsection{Interface file stuff}
ghcPrimIface :: ParsedIface
ghcPrimIface = ParsedIface {
pi_mod = gHC_PRIM_Name,
- pi_pkg = FSLIT("base"),
+ pi_pkg = preludePackage,
pi_vers = 1,
pi_orphan = False,
pi_usages = [],
pi_decls = [(1,cCallableClassDecl),
(1,cReturnableClassDecl),
(1,assertDecl)],
- pi_fixity = [],
+ pi_fixity = [(nameRdrName (idName seqId), Fixity 0 InfixR)],
+ -- seq is infixr 0
pi_insts = [],
pi_rules = (1,[]),
pi_deprecs = Nothing
getFixityEnv rn_down (SDown {rn_fixenv = fixity_env})
= return fixity_env
-extendFixityEnv :: [(Name, RenamedFixitySig)] -> RnMS a -> RnMS a
-extendFixityEnv fixes enclosed_scope
- rn_down l_down@(SDown {rn_fixenv = fixity_env})
- = let
- new_fixity_env = extendNameEnvList fixity_env fixes
- in
- enclosed_scope rn_down (l_down {rn_fixenv = new_fixity_env})
+setFixityEnv :: LocalFixityEnv -> RnMS a -> RnMS a
+setFixityEnv fixes enclosed_scope rn_down l_down
+ = enclosed_scope rn_down (l_down {rn_fixenv = fixes})
\end{code}
%================