diff options
Diffstat (limited to 'compiler/main')
| -rw-r--r-- | compiler/main/DynFlags.hs | 5 | ||||
| -rw-r--r-- | compiler/main/HscTypes.lhs | 10 |
2 files changed, 7 insertions, 8 deletions
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 484744373d..f5fc45aab3 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -2174,6 +2174,11 @@ impliedFlags , (Opt_RecordWildCards, turnOn, Opt_DisambiguateRecordFields) , (Opt_ParallelArrays, turnOn, Opt_ParallelListComp) + + -- An implicit parameter constraint, `?x::Int`, is desugared into + -- `IP "x" Int`, which requires a flexible context/instance. + , (Opt_ImplicitParams, turnOn, Opt_FlexibleContexts) + , (Opt_ImplicitParams, turnOn, Opt_FlexibleInstances) ] optLevelFlags :: [([Int], DynFlag)] diff --git a/compiler/main/HscTypes.lhs b/compiler/main/HscTypes.lhs index 6d1a9c02fb..1631e8ccaf 100644 --- a/compiler/main/HscTypes.lhs +++ b/compiler/main/HscTypes.lhs @@ -73,7 +73,7 @@ module HscTypes ( -- * Information on imports and exports WhetherHasOrphans, IsBootInterface, Usage(..), Dependencies(..), noDependencies, - NameCache(..), OrigNameCache, OrigIParamCache, + NameCache(..), OrigNameCache, IfaceExport, -- * Warnings @@ -162,7 +162,6 @@ import Util import Control.Monad ( mplus, guard, liftM, when ) import Data.Array ( Array, array ) import Data.IORef -import Data.Map ( Map ) import Data.Time import Data.Word import Data.Typeable ( Typeable ) @@ -1763,17 +1762,12 @@ its binding site, we fix it up. data NameCache = NameCache { nsUniqs :: UniqSupply, -- ^ Supply of uniques - nsNames :: OrigNameCache, + nsNames :: OrigNameCache -- ^ Ensures that one original name gets one unique - nsIPs :: OrigIParamCache - -- ^ Ensures that one implicit parameter name gets one unique } -- | Per-module cache of original 'OccName's given 'Name's type OrigNameCache = ModuleEnv (OccEnv Name) - --- | Module-local cache of implicit parameter 'OccName's given 'Name's -type OrigIParamCache = Map FastString (IPName Name) \end{code} |
