module GHC.Driver.Config.Core.Rules
  ( initRuleOpts
  ) where

import GHC.Prelude

import GHC.Driver.Flags
import GHC.Driver.DynFlags ( DynFlags, gopt, targetPlatform )

import GHC.Core.Rules.Config

-- | Initialize RuleOpts from DynFlags
initRuleOpts :: DynFlags -> RuleOpts
initRuleOpts :: DynFlags -> RuleOpts
initRuleOpts DynFlags
dflags = RuleOpts
  { roPlatform :: Platform
roPlatform                = DynFlags -> Platform
targetPlatform DynFlags
dflags
  , roNumConstantFolding :: Bool
roNumConstantFolding      = GeneralFlag -> DynFlags -> Bool
gopt GeneralFlag
Opt_NumConstantFolding DynFlags
dflags
  , roExcessRationalPrecision :: Bool
roExcessRationalPrecision = GeneralFlag -> DynFlags -> Bool
gopt GeneralFlag
Opt_ExcessPrecision DynFlags
dflags
  , roBignumRules :: Bool
roBignumRules             = Bool
True
  }