X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FHscTypes.lhs;h=6b59a5915deed4bb786707579a18790f3ff898c8;hb=7f1db085b2256e3372feca52d493ca7577413cbe;hp=c187932835cec9a8842d388b63587bc6e11a6baa;hpb=9a4607c35c107bca78f08f7e57896044c66118be;p=ghc-hetmet.git diff --git a/compiler/main/HscTypes.lhs b/compiler/main/HscTypes.lhs index c187932..6b59a59 100644 --- a/compiler/main/HscTypes.lhs +++ b/compiler/main/HscTypes.lhs @@ -111,6 +111,7 @@ import ByteCodeAsm ( CompiledByteCode ) import {-# SOURCE #-} InteractiveEval ( Resume ) #endif +import HsSyn import RdrName import Name import NameEnv @@ -480,7 +481,8 @@ withLocalCallbacks f m = do let cb' = f cb0 setSession (hsc_env { hsc_callbacks = cb' `seq` cb' }) r <- m - setSession (hsc_env { hsc_callbacks = cb0 }) + hsc_env' <- getSession + setSession (hsc_env' { hsc_callbacks = cb0 }) return r \end{code} @@ -1147,6 +1149,8 @@ data InteractiveContext #ifdef GHCI , ic_resume :: [Resume] -- ^ The stack of breakpoint contexts #endif + + , ic_cwd :: Maybe FilePath -- virtual CWD of the program } @@ -1160,6 +1164,7 @@ emptyInteractiveContext #ifdef GHCI , ic_resume = [] #endif + , ic_cwd = Nothing } icPrintUnqual :: DynFlags -> InteractiveContext -> PrintUnqualified @@ -1291,14 +1296,13 @@ mkPrintUnqualified dflags env = (qual_name, qual_mod) implicitTyThings :: TyThing -> [TyThing] -- For data and newtype declarations: -implicitTyThings (ATyCon tc) = - -- fields (names of selectors) - map AnId (tyConSelIds tc) ++ - -- (possibly) implicit coercion and family coercion - -- depending on whether it's a newtype or a family instance or both +implicitTyThings (ATyCon tc) + = -- fields (names of selectors) + -- (possibly) implicit coercion and family coercion + -- depending on whether it's a newtype or a family instance or both implicitCoTyCon tc ++ - -- for each data constructor in order, - -- the contructor, worker, and (possibly) wrapper + -- for each data constructor in order, + -- the contructor, worker, and (possibly) wrapper concatMap (extras_plus . ADataCon) (tyConDataCons tc) implicitTyThings (AClass cl) @@ -1852,7 +1856,8 @@ type OrigIParamCache = FiniteMap (IPName OccName) (IPName Name) -- There will be a node for each source module, plus a node for each hi-boot -- module. -- --- The graph is not necessarily stored in topologically-sorted order. +-- The graph is not necessarily stored in topologically-sorted order. Use +-- 'GHC.topSortModuleGraph' and 'Digraph.flattenSCC' to achieve this. type ModuleGraph = [ModSummary] emptyMG :: ModuleGraph @@ -1872,8 +1877,8 @@ data ModSummary ms_location :: ModLocation, -- ^ Location of the various files belonging to the module ms_hs_date :: ClockTime, -- ^ Timestamp of source file ms_obj_date :: Maybe ClockTime, -- ^ Timestamp of object, if we have one - ms_srcimps :: [Located ModuleName], -- ^ Source imports of the module - ms_imps :: [Located ModuleName], -- ^ Non-source imports of the module + ms_srcimps :: [Located (ImportDecl RdrName)], -- ^ Source imports of the module + ms_imps :: [Located (ImportDecl RdrName)], -- ^ Non-source imports of the module ms_hspp_file :: FilePath, -- ^ Filename of preprocessed source file ms_hspp_opts :: DynFlags, -- ^ Cached flags from @OPTIONS@, @INCLUDE@ -- and @LANGUAGE@ pragmas in the modules source code