) where
-import CmdLineOpts ( opt_Generics )
+import CmdLineOpts ( DynFlags, DynFlag(..), dopt )
import RnHsSyn ( RenamedHsExpr )
import HsSyn ( HsExpr(..), InPat(..), mkSimpleMatch )
import CoreUnfold ( mkTopUnfolding )
import Unique ( Uniquable(..), mkBuiltinUnique )
-import SrcLoc ( mkBuiltinSrcLoc )
+import SrcLoc ( builtinSrcLoc )
import Maybes ( maybeToBool, expectJust )
import Outputable
%************************************************************************
\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
-- 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_Generics
+mkTyConGenInfo dflags tycon from_name to_name
+ | dopt Opt_Generics dflags
= Nothing
| null datacons -- Abstractly imported types don't have
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}