[project @ 2000-10-18 12:47:55 by sewardj]
[ghc-hetmet.git] / ghc / compiler / types / Generics.lhs
index 9be3138..674dc3b 100644 (file)
@@ -4,7 +4,7 @@ module Generics ( mkTyConGenInfo, mkGenericRhs,
     ) where
 
 
-import CmdLineOpts     ( opt_GlasgowExts )
+import CmdLineOpts     ( DynFlags, DynFlag(..), dopt )
 import RnHsSyn         ( RenamedHsExpr )
 import HsSyn           ( HsExpr(..), InPat(..), mkSimpleMatch )
 
@@ -36,7 +36,7 @@ import IdInfo           ( vanillaIdInfo, setUnfoldingInfo )
 import CoreUnfold       ( mkTopUnfolding ) 
 
 import Unique          ( Uniquable(..), mkBuiltinUnique )
-import SrcLoc          ( mkBuiltinSrcLoc )
+import SrcLoc          ( builtinSrcLoc )
 import Maybes          ( maybeToBool, expectJust )
 import Outputable 
 
@@ -219,7 +219,7 @@ valid ty
 %************************************************************************
 
 \begin{code}
-mkTyConGenInfo :: TyCon -> Name -> Name -> Maybe (EP Id)
+mkTyConGenInfo :: DynFlags -> TyCon -> Name -> Name -> Maybe (EP Id)
 -- mkTyConGenInfo is called twice
 --     once from TysWiredIn for Tuples
 --     once the typechecker TcTyDecls 
@@ -230,8 +230,8 @@ mkTyConGenInfo :: TyCon -> Name -> Name -> Maybe (EP Id)
 -- The two names are the names constructed by the renamer
 -- for the fromT and toT conversion functions.
 
-mkTyConGenInfo tycon from_name to_name
-  | not opt_GlasgowExts
+mkTyConGenInfo dflags tycon from_name to_name
+  | dopt Opt_Generics dflags
   = Nothing
 
   | null datacons      -- Abstractly imported types don't have
@@ -473,6 +473,6 @@ genericNames :: [Name]
 genericNames = [mkSysLocalName (mkBuiltinUnique i) (_PK_ ('g' : show i)) | i <- [1..]]
 (g1:g2:g3:_) = genericNames
 
-mk_hs_lam pats body = HsPar (HsLam (mkSimpleMatch pats body Nothing mkBuiltinSrcLoc))
+mk_hs_lam pats body = HsPar (HsLam (mkSimpleMatch pats body Nothing builtinSrcLoc))
 idexpr             = mk_hs_lam [VarPatIn g3] (HsVar g3)
 \end{code}