[project @ 2003-07-18 13:18:06 by simonmar]
[ghc-hetmet.git] / ghc / compiler / main / HscMain.lhs
index 23f00c9..e920e7b 100644 (file)
@@ -48,10 +48,8 @@ import MkIface               ( mkIface )
 import Desugar
 import Flattening       ( flatten )
 import SimplCore
-import CoreUtils       ( coreBindsSize )
 import TidyPgm         ( tidyCorePgm )
 import CorePrep                ( corePrepPgm )
-import StgSyn
 import CoreToStg       ( coreToStg )
 import SimplStg                ( stg2stg )
 import CodeGen         ( codeGen )
@@ -72,8 +70,6 @@ import ParserCore
 import ParserCoreUtils
 import FiniteMap       ( emptyFM )
 import Name            ( nameModule )
-import NameEnv         ( emptyNameEnv )
-import NameSet         ( emptyNameSet )
 import Module          ( Module, ModLocation(..), showModMsg )
 import FastString
 import Maybes          ( expectJust )
@@ -390,10 +386,7 @@ myParseModule dflags src_filename
       _scc_  "Parser" do
       buf <- hGetStringBuffer src_filename
 
-      let exts = ExtFlags {glasgowExtsEF = dopt Opt_GlasgowExts dflags,
-                          ffiEF         = dopt Opt_FFI         dflags,
-                          withEF        = dopt Opt_With        dflags,
-                          parrEF        = dopt Opt_PArr        dflags}
+      let exts = mkExtFlags dflags
          loc  = mkSrcLoc (mkFastString src_filename) 1
 
       case parseModule buf (mkPState loc exts) of {
@@ -516,10 +509,7 @@ hscParseStmt dflags str
 
       buf <- stringToStringBuffer str
 
-      let exts = ExtFlags {glasgowExtsEF = dopt Opt_GlasgowExts dflags,
-                          ffiEF         = dopt Opt_FFI         dflags,
-                          withEF        = dopt Opt_With        dflags,
-                          parrEF        = dopt Opt_PArr        dflags}
+      let exts = mkExtFlags dflags 
          loc  = mkSrcLoc FSLIT("<interactive>") 1
 
       case parseStmt buf (mkPState loc exts) of {
@@ -577,10 +567,7 @@ hscThing hsc_env pcs0 ic str
 myParseIdentifier dflags str
   = do buf <- stringToStringBuffer str
  
-       let exts = ExtFlags {glasgowExtsEF = dopt Opt_GlasgowExts dflags,
-                           ffiEF         = dopt Opt_FFI         dflags,
-                           withEF        = dopt Opt_With        dflags,
-                           parrEF        = dopt Opt_PArr        dflags}
+       let exts = mkExtFlags dflags
           loc  = mkSrcLoc FSLIT("<interactive>") 1
 
        case parseIdentifier buf (mkPState loc exts) of
@@ -686,4 +673,11 @@ initExternalPackageState
 
 initOrigNames :: OrigNameCache
 initOrigNames = foldl extendOrigNameCache emptyModuleEnv knownKeyNames 
+
+mkExtFlags dflags
+  = ExtFlags { glasgowExtsEF = dopt Opt_GlasgowExts dflags,
+              ffiEF         = dopt Opt_FFI      dflags,
+              withEF        = dopt Opt_With     dflags,
+              arrowsEF      = dopt Opt_Arrows   dflags,
+              parrEF        = dopt Opt_PArr     dflags}
 \end{code}