ghc-lib-parser 9.6.3.20231121 → 9.6.4.20240109
raw patch · 29 files changed
+286/−190 lines, 29 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- GHC.Data.Bag: instance GHC.Exts.IsList (GHC.Data.Bag.Bag a)
- GHC.Utils.Binary: instance GHC.Utils.Binary.Binary Data.ByteString.Internal.ByteString
- GHC.Utils.Outputable: instance GHC.Utils.Outputable.OutputableP env Data.Void.Void
- Language.Haskell.Syntax.Type: instance (Data.Data.Data tyarg, Data.Data.Data arg, Data.Data.Data rec) => Data.Data.Data (Language.Haskell.Syntax.Type.HsConDetails tyarg arg rec)
- Language.Haskell.TH.Syntax: instance Language.Haskell.TH.Syntax.Lift Data.Void.Void
+ GHC.Data.Bag: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (GHC.Data.Bag.Bag a)
+ GHC.Data.Bag: instance GHC.IsList.IsList (GHC.Data.Bag.Bag a)
+ GHC.Driver.Flags: instance GHC.Enum.Bounded GHC.Driver.Flags.WarningFlag
+ GHC.Prelude.Basic: class a ~# b => (a :: k) ~ (b :: k)
+ GHC.Settings: [toolSettings_ldSupportsSingleModule] :: ToolSettings -> Bool
+ GHC.Tc.Errors.Types: [TcRnDisconnectedTyVar] :: !Name -> TcRnMessage
+ GHC.Types.Error: SuggestBindTyVarExplicitly :: Name -> GhcHint
+ GHC.Types.Hint: SuggestBindTyVarExplicitly :: Name -> GhcHint
+ GHC.Types.Name.Occurrence: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (GHC.Types.Name.Occurrence.OccEnv a)
+ GHC.Types.Name.Reader: instance Control.DeepSeq.NFData GHC.Types.Name.Reader.GlobalRdrElt
+ GHC.Types.Name.Reader: instance Control.DeepSeq.NFData GHC.Types.Name.Reader.ImportSpec
+ GHC.Types.Name.Reader: instance Control.DeepSeq.NFData GHC.Types.Name.Reader.Parent
+ GHC.Types.Var: funTyFlagArgTypeOrConstraint :: FunTyFlag -> TypeOrConstraint
+ GHC.Unit.State: UnusableUnit :: !Unit -> !UnusableUnitReason -> !Bool -> UnusableUnit
+ GHC.Unit.State: [uuIsReexport] :: UnusableUnit -> !Bool
+ GHC.Unit.State: [uuReason] :: UnusableUnit -> !UnusableUnitReason
+ GHC.Unit.State: [uuUnit] :: UnusableUnit -> !Unit
+ GHC.Unit.State: data UnusableUnit
+ GHC.Utils.Binary: instance GHC.Utils.Binary.Binary Data.ByteString.Internal.Type.ByteString
+ GHC.Utils.Outputable: instance GHC.Utils.Outputable.OutputableP env GHC.Base.Void
+ Language.Haskell.Syntax.Type: instance (Data.Data.Data tyarg, Data.Data.Data rec, Data.Data.Data arg) => Data.Data.Data (Language.Haskell.Syntax.Type.HsConDetails tyarg arg rec)
+ Language.Haskell.TH.Syntax: addrToByteArray :: Int -> Addr# -> ByteArray
+ Language.Haskell.TH.Syntax: addrToByteArrayName :: Name
+ Language.Haskell.TH.Syntax: instance Language.Haskell.TH.Syntax.Lift Data.Array.Byte.ByteArray
+ Language.Haskell.TH.Syntax: instance Language.Haskell.TH.Syntax.Lift GHC.Base.Void
- GHC.Core.TyCo.FVs: newtype Endo a
+ GHC.Core.TyCo.FVs: newtype () => Endo a
- GHC.Data.Graph.Directed: data SCC vertex
+ GHC.Data.Graph.Directed: data () => SCC vertex
- GHC.Data.IOEnv: data IORef a
+ GHC.Data.IOEnv: data () => IORef a
- GHC.Data.Maybe: newtype MaybeT (m :: Type -> Type) a
+ GHC.Data.Maybe: newtype () => MaybeT (m :: Type -> Type) a
- GHC.Hs.Decls: type HsDeriving pass = [LHsDerivingClause pass] " The optional @deriving@ clauses of a data declaration. "Clauses" is plural because one can specify multiple deriving clauses using the @-XDerivingStrategies@ language extension. The list of 'LHsDerivingClause's corresponds to exactly what the user requested to derive, in order. If no deriving clauses were specified, the list is empty."
+ GHC.Hs.Decls: type HsDeriving pass = -- | The optional @deriving@ clauses of a data declaration. "Clauses" is -- plural because one can specify multiple deriving clauses using the -- @-XDerivingStrategies@ language extension. -- -- The list of 'LHsDerivingClause's corresponds to exactly what the user -- requested to derive, in order. If no deriving clauses were specified, -- the list is empty. [LHsDerivingClause pass]
- GHC.Hs.Decls: type LConDecl pass = XRec pass (ConDecl pass) " May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' when in a GADT constructor list"
+ GHC.Hs.Decls: type LConDecl pass = -- | May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' when -- in a GADT constructor list XRec pass (ConDecl pass)
- GHC.Hs.Decls: type LHsDecl p = XRec p (HsDecl p) " When in a list this may have - 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' "
+ GHC.Hs.Decls: type LHsDecl p = -- | When in a list this may have -- -- - 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' -- XRec p (HsDecl p)
- GHC.Hs.Decls: type LTyFamInstEqn pass = XRec pass (TyFamInstEqn pass) " May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' when in a list"
+ GHC.Hs.Decls: type LTyFamInstEqn pass = -- | May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' -- when in a list XRec pass (TyFamInstEqn pass)
- GHC.Hs.Type: type EpAnnForallTy = EpAnn (AddEpAnn, AddEpAnn) " Location of 'forall' and '->' for HsForAllVis Location of 'forall' and '.' for HsForAllInvis"
+ GHC.Hs.Type: type EpAnnForallTy = -- | Location of 'forall' and '->' for HsForAllVis -- Location of 'forall' and '.' for HsForAllInvis EpAnn (AddEpAnn, AddEpAnn)
- GHC.Hs.Type: type LConDeclField pass = XRec pass (ConDeclField pass) " May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' when in a list"
+ GHC.Hs.Type: type LConDeclField pass = -- | May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' when -- in a list XRec pass (ConDeclField pass)
- GHC.Hs.Type: type LHsContext pass = XRec pass (HsContext pass) " 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnUnit' For details on above see Note [exact print annotations] in GHC.Parser.Annotation"
+ GHC.Hs.Type: type LHsContext pass = -- | 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnUnit' -- For details on above see Note [exact print annotations] in GHC.Parser.Annotation XRec pass (HsContext pass)
- GHC.Hs.Type: type LHsKind pass = XRec pass (HsKind pass) " 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnDcolon'"
+ GHC.Hs.Type: type LHsKind pass = -- | 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnDcolon' XRec pass (HsKind pass)
- GHC.Hs.Type: type LHsType pass = XRec pass (HsType pass) " May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' when in a list"
+ GHC.Hs.Type: type LHsType pass = -- | May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' when -- in a list XRec pass (HsType pass)
- GHC.Parser.Annotation: type EpAnnCO = EpAnn NoEpAnns " Api Annotations for comments only"
+ GHC.Parser.Annotation: type EpAnnCO = -- | Api Annotations for comments only EpAnn NoEpAnns
- GHC.Platform: data ByteOrder
+ GHC.Platform: data () => ByteOrder
- GHC.Prelude.Basic: (!!) :: [a] -> Int -> a
+ GHC.Prelude.Basic: (!!) :: HasCallStack => [a] -> Int -> a
- GHC.Prelude.Basic: class Bounded a
+ GHC.Prelude.Basic: class () => Bounded a
- GHC.Prelude.Basic: class Enum a
+ GHC.Prelude.Basic: class () => Enum a
- GHC.Prelude.Basic: class Eq a
+ GHC.Prelude.Basic: class () => Eq a
- GHC.Prelude.Basic: class Foldable (t :: TYPE LiftedRep -> Type)
+ GHC.Prelude.Basic: class () => Foldable (t :: Type -> Type)
- GHC.Prelude.Basic: class Functor (f :: Type -> Type)
+ GHC.Prelude.Basic: class () => Functor (f :: Type -> Type)
- GHC.Prelude.Basic: class Num a
+ GHC.Prelude.Basic: class () => Num a
- GHC.Prelude.Basic: class Read a
+ GHC.Prelude.Basic: class () => Read a
- GHC.Prelude.Basic: class Semigroup a
+ GHC.Prelude.Basic: class () => Semigroup a
- GHC.Prelude.Basic: class Show a
+ GHC.Prelude.Basic: class () => Show a
- GHC.Prelude.Basic: cycle :: [a] -> [a]
+ GHC.Prelude.Basic: cycle :: HasCallStack => [a] -> [a]
- GHC.Prelude.Basic: data Bool
+ GHC.Prelude.Basic: data () => Bool
- GHC.Prelude.Basic: data Char
+ GHC.Prelude.Basic: data () => Char
- GHC.Prelude.Basic: data Double
+ GHC.Prelude.Basic: data () => Double
- GHC.Prelude.Basic: data Either a b
+ GHC.Prelude.Basic: data () => Either a b
- GHC.Prelude.Basic: data Float
+ GHC.Prelude.Basic: data () => Float
- GHC.Prelude.Basic: data IO a
+ GHC.Prelude.Basic: data () => IO a
- GHC.Prelude.Basic: data Int
+ GHC.Prelude.Basic: data () => Int
- GHC.Prelude.Basic: data Integer
+ GHC.Prelude.Basic: data () => Integer
- GHC.Prelude.Basic: data Maybe a
+ GHC.Prelude.Basic: data () => Maybe a
- GHC.Prelude.Basic: data Ordering
+ GHC.Prelude.Basic: data () => Ordering
- GHC.Prelude.Basic: data Word
+ GHC.Prelude.Basic: data () => Word
- GHC.Prelude.Basic: head :: [a] -> a
+ GHC.Prelude.Basic: head :: HasCallStack => [a] -> a
- GHC.Prelude.Basic: infixl 1 >>=
+ GHC.Prelude.Basic: infixl 1 >>
- GHC.Prelude.Basic: infixl 8 `rotate`
+ GHC.Prelude.Basic: infixl 8 `rotateR`
- GHC.Prelude.Basic: infixr 8 ^
+ GHC.Prelude.Basic: infixr 8 ^^
- GHC.Prelude.Basic: init :: [a] -> [a]
+ GHC.Prelude.Basic: init :: HasCallStack => [a] -> [a]
- GHC.Prelude.Basic: last :: [a] -> a
+ GHC.Prelude.Basic: last :: HasCallStack => [a] -> a
- GHC.Prelude.Basic: tail :: [a] -> [a]
+ GHC.Prelude.Basic: tail :: HasCallStack => [a] -> [a]
- GHC.Settings: ToolSettings :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> String -> (String, [Option]) -> String -> String -> String -> (String, [Option]) -> (String, [Option]) -> Maybe (String, [Option]) -> (String, [Option]) -> String -> String -> String -> String -> String -> String -> (String, [Option]) -> (String, [Option]) -> (String, [Option]) -> String -> [String] -> [String] -> Fingerprint -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> ToolSettings
+ GHC.Settings: ToolSettings :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> String -> (String, [Option]) -> String -> String -> String -> (String, [Option]) -> (String, [Option]) -> Maybe (String, [Option]) -> (String, [Option]) -> String -> String -> String -> String -> String -> String -> (String, [Option]) -> (String, [Option]) -> (String, [Option]) -> String -> [String] -> [String] -> Fingerprint -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> ToolSettings
- GHC.Tc.Solver.InertSet: type CycleBreakerVarStack = NonEmpty [(TcTyVar, TcType)] " a stack of (CycleBreakerTv, original family applications) lists first element in the stack corresponds to current implication; later elements correspond to outer implications used to undo the cycle-breaking needed to handle Note [Type equality cycles] in GHC.Tc.Solver.Canonical Why store the outer implications? For the use in mightEqualLater (only)"
+ GHC.Tc.Solver.InertSet: type CycleBreakerVarStack = -- | a stack of (CycleBreakerTv, original family applications) lists -- first element in the stack corresponds to current implication; -- later elements correspond to outer implications -- used to undo the cycle-breaking needed to handle -- Note [Type equality cycles] in GHC.Tc.Solver.Canonical -- Why store the outer implications? For the use in mightEqualLater (only) NonEmpty [(TcTyVar, TcType)]
- GHC.Tc.Types: type TcPluginRewriter = RewriteEnv " Rewriter environment" -> [Ct] " Givens" -> [TcType] " type family arguments" -> TcPluginM TcPluginRewriteResult
+ GHC.Tc.Types: type TcPluginRewriter = -- | Rewriter environment RewriteEnv -> -- | Givens [Ct] -> -- | type family arguments [TcType] -> TcPluginM TcPluginRewriteResult
- GHC.Tc.Types: type TcPluginSolver = EvBindsVar -> [Ct] " Givens" -> [Ct] " Wanteds" -> TcPluginM TcPluginSolveResult
+ GHC.Tc.Types: type TcPluginSolver = EvBindsVar -> -- | Givens [Ct] -> -- | Wanteds [Ct] -> TcPluginM TcPluginSolveResult
- GHC.Types.Annotations: type AnnPayload = Serialized " The "payload" of an annotation allows recovery of its value at a given type, and can be persisted to an interface file"
+ GHC.Types.Annotations: type AnnPayload = -- | The "payload" of an annotation -- allows recovery of its value at a given type, -- and can be persisted to an interface file Serialized
- GHC.Types.Basic: data PromotionFlag
+ GHC.Types.Basic: data () => PromotionFlag
- GHC.Types.Name.Reader: ImpDeclSpec :: ModuleName -> ModuleName -> Bool -> SrcSpan -> ImpDeclSpec
+ GHC.Types.Name.Reader: ImpDeclSpec :: !ModuleName -> !ModuleName -> !Bool -> !SrcSpan -> ImpDeclSpec
- GHC.Types.Name.Reader: ImpSome :: Bool -> SrcSpan -> ImpItemSpec
+ GHC.Types.Name.Reader: ImpSome :: !Bool -> !SrcSpan -> ImpItemSpec
- GHC.Types.Name.Reader: ImpSpec :: ImpDeclSpec -> ImpItemSpec -> ImportSpec
+ GHC.Types.Name.Reader: ImpSpec :: !ImpDeclSpec -> !ImpItemSpec -> ImportSpec
- GHC.Types.Name.Reader: ParentIs :: Name -> Parent
+ GHC.Types.Name.Reader: ParentIs :: !Name -> Parent
- GHC.Types.Name.Reader: [is_as] :: ImpDeclSpec -> ModuleName
+ GHC.Types.Name.Reader: [is_as] :: ImpDeclSpec -> !ModuleName
- GHC.Types.Name.Reader: [is_decl] :: ImportSpec -> ImpDeclSpec
+ GHC.Types.Name.Reader: [is_decl] :: ImportSpec -> !ImpDeclSpec
- GHC.Types.Name.Reader: [is_dloc] :: ImpDeclSpec -> SrcSpan
+ GHC.Types.Name.Reader: [is_dloc] :: ImpDeclSpec -> !SrcSpan
- GHC.Types.Name.Reader: [is_explicit] :: ImpItemSpec -> Bool
+ GHC.Types.Name.Reader: [is_explicit] :: ImpItemSpec -> !Bool
- GHC.Types.Name.Reader: [is_iloc] :: ImpItemSpec -> SrcSpan
+ GHC.Types.Name.Reader: [is_iloc] :: ImpItemSpec -> !SrcSpan
- GHC.Types.Name.Reader: [is_item] :: ImportSpec -> ImpItemSpec
+ GHC.Types.Name.Reader: [is_item] :: ImportSpec -> !ImpItemSpec
- GHC.Types.Name.Reader: [is_mod] :: ImpDeclSpec -> ModuleName
+ GHC.Types.Name.Reader: [is_mod] :: ImpDeclSpec -> !ModuleName
- GHC.Types.Name.Reader: [is_qual] :: ImpDeclSpec -> Bool
+ GHC.Types.Name.Reader: [is_qual] :: ImpDeclSpec -> !Bool
- GHC.Types.Name.Reader: [par_is] :: Parent -> Name
+ GHC.Types.Name.Reader: [par_is] :: Parent -> !Name
- GHC.Unit.Finder.Types: NotFound :: [FilePath] -> Maybe Unit -> [Unit] -> [Unit] -> [(Unit, UnusableUnitReason)] -> [ModuleSuggestion] -> FindResult
+ GHC.Unit.Finder.Types: NotFound :: [FilePath] -> Maybe Unit -> [Unit] -> [Unit] -> [UnusableUnit] -> [ModuleSuggestion] -> FindResult
- GHC.Unit.Finder.Types: [fr_unusables] :: FindResult -> [(Unit, UnusableUnitReason)]
+ GHC.Unit.Finder.Types: [fr_unusables] :: FindResult -> [UnusableUnit]
- GHC.Unit.Info: data Version
+ GHC.Unit.Info: data () => Version
- GHC.Unit.State: ModUnusable :: UnusableUnitReason -> ModuleOrigin
+ GHC.Unit.State: ModUnusable :: !UnusableUnit -> ModuleOrigin
- GHC.Unit.Types: data IsBootInterface
+ GHC.Unit.Types: data () => IsBootInterface
- GHC.Utils.Exception: data AllocationLimitExceeded
+ GHC.Utils.Exception: data () => AllocationLimitExceeded
- GHC.Utils.Exception: data ArithException
+ GHC.Utils.Exception: data () => ArithException
- GHC.Utils.Exception: data ArrayException
+ GHC.Utils.Exception: data () => ArrayException
- GHC.Utils.Exception: data AsyncException
+ GHC.Utils.Exception: data () => AsyncException
- GHC.Utils.Exception: data BlockedIndefinitelyOnMVar
+ GHC.Utils.Exception: data () => BlockedIndefinitelyOnMVar
- GHC.Utils.Exception: data BlockedIndefinitelyOnSTM
+ GHC.Utils.Exception: data () => BlockedIndefinitelyOnSTM
- GHC.Utils.Exception: data Deadlock
+ GHC.Utils.Exception: data () => Deadlock
- GHC.Utils.Exception: data ErrorCall
+ GHC.Utils.Exception: data () => ErrorCall
- GHC.Utils.Exception: data Handler a
+ GHC.Utils.Exception: data () => Handler a
- GHC.Utils.Exception: data IOException
+ GHC.Utils.Exception: data () => IOException
- GHC.Utils.Exception: data MaskingState
+ GHC.Utils.Exception: data () => MaskingState
- GHC.Utils.Exception: data NestedAtomically
+ GHC.Utils.Exception: data () => NestedAtomically
- GHC.Utils.Exception: data NonTermination
+ GHC.Utils.Exception: data () => NonTermination
- GHC.Utils.Exception: data SomeAsyncException
+ GHC.Utils.Exception: data () => SomeAsyncException
- GHC.Utils.Exception: data SomeException
+ GHC.Utils.Exception: data () => SomeException
- GHC.Utils.Exception: newtype AssertionFailed
+ GHC.Utils.Exception: newtype () => AssertionFailed
- GHC.Utils.Exception: newtype CompactionFailed
+ GHC.Utils.Exception: newtype () => CompactionFailed
- GHC.Utils.Exception: newtype NoMethodError
+ GHC.Utils.Exception: newtype () => NoMethodError
- GHC.Utils.Exception: newtype PatternMatchFail
+ GHC.Utils.Exception: newtype () => PatternMatchFail
- GHC.Utils.Exception: newtype RecConError
+ GHC.Utils.Exception: newtype () => RecConError
- GHC.Utils.Exception: newtype RecSelError
+ GHC.Utils.Exception: newtype () => RecSelError
- GHC.Utils.Exception: newtype RecUpdError
+ GHC.Utils.Exception: newtype () => RecUpdError
- GHC.Utils.Exception: newtype TypeError
+ GHC.Utils.Exception: newtype () => TypeError
- GHC.Utils.Fingerprint: data Fingerprint
+ GHC.Utils.Fingerprint: data () => Fingerprint
- GHC.Utils.Misc: foldl1' :: (a -> a -> a) -> [a] -> a
+ GHC.Utils.Misc: foldl1' :: HasCallStack => (a -> a -> a) -> [a] -> a
- Language.Haskell.Syntax.Decls: type HsDeriving pass = [LHsDerivingClause pass] " The optional @deriving@ clauses of a data declaration. "Clauses" is plural because one can specify multiple deriving clauses using the @-XDerivingStrategies@ language extension. The list of 'LHsDerivingClause's corresponds to exactly what the user requested to derive, in order. If no deriving clauses were specified, the list is empty."
+ Language.Haskell.Syntax.Decls: type HsDeriving pass = -- | The optional @deriving@ clauses of a data declaration. "Clauses" is -- plural because one can specify multiple deriving clauses using the -- @-XDerivingStrategies@ language extension. -- -- The list of 'LHsDerivingClause's corresponds to exactly what the user -- requested to derive, in order. If no deriving clauses were specified, -- the list is empty. [LHsDerivingClause pass]
- Language.Haskell.Syntax.Decls: type LConDecl pass = XRec pass (ConDecl pass) " May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' when in a GADT constructor list"
+ Language.Haskell.Syntax.Decls: type LConDecl pass = -- | May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' when -- in a GADT constructor list XRec pass (ConDecl pass)
- Language.Haskell.Syntax.Decls: type LHsDecl p = XRec p (HsDecl p) " When in a list this may have - 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' "
+ Language.Haskell.Syntax.Decls: type LHsDecl p = -- | When in a list this may have -- -- - 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' -- XRec p (HsDecl p)
- Language.Haskell.Syntax.Decls: type LTyFamInstEqn pass = XRec pass (TyFamInstEqn pass) " May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' when in a list"
+ Language.Haskell.Syntax.Decls: type LTyFamInstEqn pass = -- | May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' -- when in a list XRec pass (TyFamInstEqn pass)
- Language.Haskell.Syntax.Expr: type LHsExpr p = XRec p (HsExpr p) " May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' when in a list"
+ Language.Haskell.Syntax.Expr: type LHsExpr p = -- | May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' when -- in a list XRec p (HsExpr p)
- Language.Haskell.Syntax.ImpExp: type LIE pass = XRec pass (IE pass) " When in a list this may have - 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma'"
+ Language.Haskell.Syntax.ImpExp: type LIE pass = -- | When in a list this may have -- -- - 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' XRec pass (IE pass)
- Language.Haskell.Syntax.ImpExp: type LImportDecl pass = XRec pass (ImportDecl pass) " When in a list this may have - 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi'"
+ Language.Haskell.Syntax.ImpExp: type LImportDecl pass = -- | When in a list this may have -- -- - 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnSemi' XRec pass (ImportDecl pass)
- Language.Haskell.Syntax.Type: type LConDeclField pass = XRec pass (ConDeclField pass) " May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' when in a list"
+ Language.Haskell.Syntax.Type: type LConDeclField pass = -- | May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' when -- in a list XRec pass (ConDeclField pass)
- Language.Haskell.Syntax.Type: type LHsContext pass = XRec pass (HsContext pass) " 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnUnit' For details on above see Note [exact print annotations] in GHC.Parser.Annotation"
+ Language.Haskell.Syntax.Type: type LHsContext pass = -- | 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnUnit' -- For details on above see Note [exact print annotations] in GHC.Parser.Annotation XRec pass (HsContext pass)
- Language.Haskell.Syntax.Type: type LHsKind pass = XRec pass (HsKind pass) " 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnDcolon'"
+ Language.Haskell.Syntax.Type: type LHsKind pass = -- | 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnDcolon' XRec pass (HsKind pass)
- Language.Haskell.Syntax.Type: type LHsType pass = XRec pass (HsType pass) " May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' when in a list"
+ Language.Haskell.Syntax.Type: type LHsType pass = -- | May have 'GHC.Parser.Annotation.AnnKeywordId' : 'GHC.Parser.Annotation.AnnComma' when -- in a list XRec pass (HsType pass)
- Language.Haskell.TH: type Cxt = [Pred] " @(Eq a, Ord b)@"
+ Language.Haskell.TH: type Cxt = -- | @(Eq a, Ord b)@ [Pred]
- Language.Haskell.TH.Syntax: type CharPos = (Int, Int) " Line and character position"
+ Language.Haskell.TH.Syntax: type CharPos = -- | Line and character position (Int, Int)
- Language.Haskell.TH.Syntax: type Cxt = [Pred] " @(Eq a, Ord b)@"
+ Language.Haskell.TH.Syntax: type Cxt = -- | @(Eq a, Ord b)@ [Pred]
Files
- compiler/GHC/Core/Opt/Simplify/Env.hs +39/−22
- compiler/GHC/Core/Type.hs +2/−1
- compiler/GHC/Data/Bag.hs +7/−0
- compiler/GHC/Driver/Flags.hs +1/−1
- compiler/GHC/Driver/Session.hs +110/−113
- compiler/GHC/Settings.hs +1/−0
- compiler/GHC/Tc/Errors/Ppr.hs +10/−0
- compiler/GHC/Tc/Errors/Types.hs +8/−1
- compiler/GHC/Types/Error/Codes.hs +1/−0
- compiler/GHC/Types/Hint.hs +3/−0
- compiler/GHC/Types/Hint/Ppr.hs +3/−0
- compiler/GHC/Types/Name/Occurrence.hs +7/−0
- compiler/GHC/Types/Name/Reader.hs +21/−9
- compiler/GHC/Types/Var.hs +7/−1
- compiler/GHC/Unit/Finder/Types.hs +1/−1
- compiler/GHC/Unit/Module/ModIface.hs +1/−1
- compiler/GHC/Unit/State.hs +37/−11
- compiler/ghc.cabal +4/−4
- ghc-lib-parser.cabal +1/−1
- ghc-lib/stage0/lib/settings +2/−1
- ghc-lib/stage0/libraries/ghc-boot/build/GHC/Version.hs +4/−4
- ghc-lib/stage0/rts/build/include/GhclibDerivedConstants.h +3/−6
- ghc/ghc-bin.cabal +4/−4
- libraries/ghc-boot-th/ghc-boot-th.cabal +1/−1
- libraries/ghc-boot/ghc-boot.cabal +2/−2
- libraries/ghc-heap/ghc-heap.cabal +1/−1
- libraries/ghci/GHCi/Message.hs +1/−1
- libraries/ghci/ghci.cabal +3/−3
- libraries/template-haskell/template-haskell.cabal +1/−1
compiler/GHC/Core/Opt/Simplify/Env.hs view
@@ -58,30 +58,34 @@ import GHC.Core.Rules.Config ( RuleOpts(..) ) import GHC.Core import GHC.Core.Utils-import GHC.Core.Multiplicity ( scaleScaled ) import GHC.Core.Unfold import GHC.Core.TyCo.Subst (emptyIdSubstEnv)+import GHC.Core.Multiplicity( Scaled(..), mkMultMul )+import GHC.Core.Make ( mkWildValBinder, mkCoreLet )+import GHC.Core.Type hiding ( substTy, substTyVar, substTyVarBndr, substCo+ , extendTvSubst, extendCvSubst )+import qualified GHC.Core.Coercion as Coercion+import GHC.Core.Coercion hiding ( substCo, substCoVar, substCoVarBndr )+import qualified GHC.Core.Type as Type+ import GHC.Types.Var import GHC.Types.Var.Env import GHC.Types.Var.Set+import GHC.Types.Id as Id+import GHC.Types.Basic+import GHC.Types.Unique.FM ( pprUniqFM )+ import GHC.Data.OrdList import GHC.Data.Graph.UnVar-import GHC.Types.Id as Id-import GHC.Core.Make ( mkWildValBinder, mkCoreLet )+ import GHC.Builtin.Types-import qualified GHC.Core.Type as Type-import GHC.Core.Type hiding ( substTy, substTyVar, substTyVarBndr, substCo- , extendTvSubst, extendCvSubst )-import qualified GHC.Core.Coercion as Coercion-import GHC.Core.Coercion hiding ( substCo, substCoVar, substCoVarBndr ) import GHC.Platform ( Platform )-import GHC.Types.Basic+ import GHC.Utils.Monad import GHC.Utils.Outputable import GHC.Utils.Panic import GHC.Utils.Panic.Plain import GHC.Utils.Misc-import GHC.Types.Unique.FM ( pprUniqFM ) import Data.List ( intersperse, mapAccumL ) @@ -1171,21 +1175,34 @@ = assert (isJoinId join_id) $ setIdType join_id new_join_ty where- orig_ar = idJoinArity join_id- orig_ty = idType join_id+ join_arity = idJoinArity join_id+ orig_ty = idType join_id+ res_torc = typeTypeOrConstraint new_res_ty :: TypeOrConstraint - new_join_ty = go orig_ar orig_ty :: Type+ new_join_ty = go join_arity orig_ty :: Type - go 0 _ = new_res_ty- go n ty | Just (arg_bndr, res_ty) <- splitPiTy_maybe ty- = mkPiTy (scale_bndr arg_bndr) $- go (n-1) res_ty- | otherwise- = pprPanic "adjustJoinPointType" (ppr orig_ar <+> ppr orig_ty)+ go :: JoinArity -> Type -> Type+ go n ty+ | n == 0+ = new_res_ty - -- See Note [Bangs in the Simplifier]- scale_bndr (Anon t af) = (Anon $! (scaleScaled mult t)) af- scale_bndr b@(Named _) = b+ | Just (arg_bndr, body_ty) <- splitPiTy_maybe ty+ , let body_ty' = go (n-1) body_ty+ = case arg_bndr of+ Named b -> mkForAllTy b body_ty'+ Anon (Scaled arg_mult arg_ty) af -> mkFunTy af' arg_mult' arg_ty body_ty'+ where+ -- Using "!": See Note [Bangs in the Simplifier]+ -- mkMultMul: see Note [Scaling join point arguments]+ !arg_mult' = arg_mult `mkMultMul` mult++ -- the new_res_ty might be ConstraintLike while the original+ -- one was TypeLike. So we may need to adjust the FunTyFlag.+ -- (see #23952)+ !af' = mkFunTyFlag (funTyFlagArgTypeOrConstraint af) res_torc++ | otherwise+ = pprPanic "adjustJoinPointType" (ppr join_arity <+> ppr orig_ty) {- Note [Scaling join point arguments] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compiler/GHC/Core/Type.hs view
@@ -2491,10 +2491,11 @@ ty : body_torc rep bndr_torc is Type or Constraint ki : bndr_torc+ ki : Type `a` is a type variable `a` is not free in rep (FORALL1) ------------------------ forall (a::ki). ty : torc rep+ forall (a::ki). ty : body_torc rep torc is TYPE or CONSTRAINT ty : body_torc rep
compiler/GHC/Data/Bag.hs view
@@ -38,6 +38,7 @@ import Data.List.NonEmpty ( NonEmpty(..) ) import qualified Data.List.NonEmpty as NE import qualified Data.Semigroup ( (<>) )+import Control.DeepSeq infixr 3 `consBag` infixl 3 `snocBag`@@ -48,6 +49,12 @@ | TwoBags (Bag a) (Bag a) -- INVARIANT: neither branch is empty | ListBag (NonEmpty a) deriving (Foldable, Functor, Traversable)++instance NFData a => NFData (Bag a) where+ rnf EmptyBag = ()+ rnf (UnitBag a) = rnf a+ rnf (TwoBags a b) = rnf a `seq` rnf b+ rnf (ListBag a) = rnf a emptyBag :: Bag a emptyBag = EmptyBag
compiler/GHC/Driver/Flags.hs view
@@ -667,7 +667,7 @@ | Opt_WarnTypeEqualityOutOfScope -- Since 9.4 | Opt_WarnTypeEqualityRequiresOperators -- Since 9.4 | Opt_WarnLoopySuperclassSolve -- Since 9.6- deriving (Eq, Ord, Show, Enum)+ deriving (Eq, Ord, Show, Enum, Bounded) -- | Return the names of a WarningFlag --
compiler/GHC/Driver/Session.hs view
@@ -3209,122 +3209,119 @@ wWarningFlags = map snd (sortBy (comparing fst) wWarningFlagsDeps) wWarningFlagsDeps :: [(Deprecation, FlagSpec WarningFlag)]-wWarningFlagsDeps = mconcat [+wWarningFlagsDeps = [minBound..maxBound] >>= \x -> case x of -- See Note [Updating flag description in the User's Guide] -- See Note [Supporting CLI completion] -- Please keep the list of flags below sorted alphabetically- warnSpec Opt_WarnAlternativeLayoutRuleTransitional,- warnSpec Opt_WarnAmbiguousFields,- depWarnSpec Opt_WarnAutoOrphans- "it has no effect",- warnSpec Opt_WarnCPPUndef,- warnSpec Opt_WarnUnbangedStrictPatterns,- warnSpec Opt_WarnDeferredTypeErrors,- warnSpec Opt_WarnDeferredOutOfScopeVariables,- warnSpec Opt_WarnWarningsDeprecations,- warnSpec Opt_WarnDeprecatedFlags,- warnSpec Opt_WarnDerivingDefaults,- warnSpec Opt_WarnDerivingTypeable,- warnSpec Opt_WarnDodgyExports,- warnSpec Opt_WarnDodgyForeignImports,- warnSpec Opt_WarnDodgyImports,- warnSpec Opt_WarnEmptyEnumerations,- subWarnSpec "duplicate-constraints"- Opt_WarnDuplicateConstraints- "it is subsumed by -Wredundant-constraints",- warnSpec Opt_WarnRedundantConstraints,- warnSpec Opt_WarnDuplicateExports,- depWarnSpec Opt_WarnHiShadows- "it is not used, and was never implemented",- warnSpec Opt_WarnInaccessibleCode,- warnSpec Opt_WarnImplicitPrelude,- depWarnSpec Opt_WarnImplicitKindVars- "it is now an error",- warnSpec Opt_WarnIncompletePatterns,- warnSpec Opt_WarnIncompletePatternsRecUpd,- warnSpec Opt_WarnIncompleteUniPatterns,- warnSpec Opt_WarnInlineRuleShadowing,- warnSpec Opt_WarnIdentities,- warnSpec Opt_WarnMissingFields,- warnSpec Opt_WarnMissingImportList,- warnSpec Opt_WarnMissingExportList,- subWarnSpec "missing-local-sigs"- Opt_WarnMissingLocalSignatures- "it is replaced by -Wmissing-local-signatures",- warnSpec Opt_WarnMissingLocalSignatures,- warnSpec Opt_WarnMissingMethods,- depWarnSpec Opt_WarnMissingMonadFailInstances- "fail is no longer a method of Monad",- warnSpec Opt_WarnSemigroup,- warnSpec Opt_WarnMissingSignatures,- warnSpec Opt_WarnMissingKindSignatures,- subWarnSpec "missing-exported-sigs"- Opt_WarnMissingExportedSignatures- "it is replaced by -Wmissing-exported-signatures",- warnSpec Opt_WarnMissingExportedSignatures,- warnSpec Opt_WarnMonomorphism,- warnSpec Opt_WarnNameShadowing,- warnSpec Opt_WarnNonCanonicalMonadInstances,- depWarnSpec Opt_WarnNonCanonicalMonadFailInstances- "fail is no longer a method of Monad",- warnSpec Opt_WarnNonCanonicalMonoidInstances,- warnSpec Opt_WarnOrphans,- warnSpec Opt_WarnOverflowedLiterals,- warnSpec Opt_WarnOverlappingPatterns,- warnSpec Opt_WarnMissedSpecs,- warnSpec Opt_WarnAllMissedSpecs,- warnSpec' Opt_WarnSafe setWarnSafe,- warnSpec Opt_WarnTrustworthySafe,- warnSpec Opt_WarnInferredSafeImports,- warnSpec Opt_WarnMissingSafeHaskellMode,- warnSpec Opt_WarnTabs,- warnSpec Opt_WarnTypeDefaults,- warnSpec Opt_WarnTypedHoles,- warnSpec Opt_WarnPartialTypeSignatures,- warnSpec Opt_WarnUnrecognisedPragmas,- warnSpec Opt_WarnMisplacedPragmas,- warnSpec' Opt_WarnUnsafe setWarnUnsafe,- warnSpec Opt_WarnUnsupportedCallingConventions,- warnSpec Opt_WarnUnsupportedLlvmVersion,- warnSpec Opt_WarnMissedExtraSharedLib,- warnSpec Opt_WarnUntickedPromotedConstructors,- warnSpec Opt_WarnUnusedDoBind,- warnSpec Opt_WarnUnusedForalls,- warnSpec Opt_WarnUnusedImports,- warnSpec Opt_WarnUnusedLocalBinds,- warnSpec Opt_WarnUnusedMatches,- warnSpec Opt_WarnUnusedPatternBinds,- warnSpec Opt_WarnUnusedTopBinds,- warnSpec Opt_WarnUnusedTypePatterns,- warnSpec Opt_WarnUnusedRecordWildcards,- warnSpec Opt_WarnRedundantBangPatterns,- warnSpec Opt_WarnRedundantRecordWildcards,- warnSpec Opt_WarnRedundantStrictnessFlags,- warnSpec Opt_WarnWrongDoBind,- warnSpec Opt_WarnMissingPatternSynonymSignatures,- warnSpec Opt_WarnMissingDerivingStrategies,- warnSpec Opt_WarnSimplifiableClassConstraints,- warnSpec Opt_WarnMissingHomeModules,- warnSpec Opt_WarnUnrecognisedWarningFlags,- warnSpec Opt_WarnStarBinder,- warnSpec Opt_WarnStarIsType,- depWarnSpec Opt_WarnSpaceAfterBang- "bang patterns can no longer be written with a space",- warnSpec Opt_WarnPartialFields,- warnSpec Opt_WarnPrepositiveQualifiedModule,- warnSpec Opt_WarnUnusedPackages,- warnSpec Opt_WarnCompatUnqualifiedImports,- warnSpec Opt_WarnInvalidHaddock,- warnSpec Opt_WarnOperatorWhitespaceExtConflict,- warnSpec Opt_WarnOperatorWhitespace,- warnSpec Opt_WarnImplicitLift,- warnSpec Opt_WarnMissingExportedPatternSynonymSignatures,- warnSpec Opt_WarnForallIdentifier,- warnSpec Opt_WarnUnicodeBidirectionalFormatCharacters,- warnSpec Opt_WarnGADTMonoLocalBinds,- warnSpec Opt_WarnTypeEqualityOutOfScope,- warnSpec Opt_WarnTypeEqualityRequiresOperators- ]+ Opt_WarnAlternativeLayoutRuleTransitional -> warnSpec x+ Opt_WarnAmbiguousFields -> warnSpec x+ Opt_WarnAutoOrphans+ -> depWarnSpec x "it has no effect"+ Opt_WarnCPPUndef -> warnSpec x+ Opt_WarnUnbangedStrictPatterns -> warnSpec x+ Opt_WarnDeferredTypeErrors -> warnSpec x+ Opt_WarnDeferredOutOfScopeVariables -> warnSpec x+ Opt_WarnWarningsDeprecations -> warnSpec x+ Opt_WarnDeprecatedFlags -> warnSpec x+ Opt_WarnDerivingDefaults -> warnSpec x+ Opt_WarnDerivingTypeable -> warnSpec x+ Opt_WarnDodgyExports -> warnSpec x+ Opt_WarnDodgyForeignImports -> warnSpec x+ Opt_WarnDodgyImports -> warnSpec x+ Opt_WarnEmptyEnumerations -> warnSpec x+ Opt_WarnDuplicateConstraints+ -> subWarnSpec "duplicate-constraints" x "it is subsumed by -Wredundant-constraints"+ Opt_WarnRedundantConstraints -> warnSpec x+ Opt_WarnDuplicateExports -> warnSpec x+ Opt_WarnHiShadows+ -> depWarnSpec x "it is not used and was never implemented"+ Opt_WarnInaccessibleCode -> warnSpec x+ Opt_WarnImplicitPrelude -> warnSpec x+ Opt_WarnImplicitKindVars+ -> depWarnSpec x "it is now an error"+ Opt_WarnIncompletePatterns -> warnSpec x+ Opt_WarnIncompletePatternsRecUpd -> warnSpec x+ Opt_WarnIncompleteUniPatterns -> warnSpec x+ Opt_WarnInlineRuleShadowing -> warnSpec x+ Opt_WarnIdentities -> warnSpec x+ Opt_WarnLoopySuperclassSolve -> warnSpec x+ Opt_WarnMissingFields -> warnSpec x+ Opt_WarnMissingImportList -> warnSpec x+ Opt_WarnMissingExportList -> warnSpec x+ Opt_WarnMissingLocalSignatures+ -> subWarnSpec "missing-local-sigs" x "it is replaced by -Wmissing-local-signatures"+ ++ warnSpec x+ Opt_WarnMissingMethods -> warnSpec x+ Opt_WarnMissingMonadFailInstances+ -> depWarnSpec x "fail is no longer a method of Monad"+ Opt_WarnSemigroup -> warnSpec x+ Opt_WarnMissingSignatures -> warnSpec x+ Opt_WarnMissingKindSignatures -> warnSpec x+ Opt_WarnMissingExportedSignatures+ -> subWarnSpec "missing-exported-sigs" x "it is replaced by -Wmissing-exported-signatures"+ ++ warnSpec x+ Opt_WarnMonomorphism -> warnSpec x+ Opt_WarnNameShadowing -> warnSpec x+ Opt_WarnNonCanonicalMonadInstances -> warnSpec x+ Opt_WarnNonCanonicalMonadFailInstances+ -> depWarnSpec x "fail is no longer a method of Monad"+ Opt_WarnNonCanonicalMonoidInstances -> warnSpec x+ Opt_WarnOrphans -> warnSpec x+ Opt_WarnOverflowedLiterals -> warnSpec x+ Opt_WarnOverlappingPatterns -> warnSpec x+ Opt_WarnMissedSpecs -> warnSpec x+ Opt_WarnAllMissedSpecs -> warnSpec x+ Opt_WarnSafe -> warnSpec' x setWarnSafe+ Opt_WarnTrustworthySafe -> warnSpec x+ Opt_WarnInferredSafeImports -> warnSpec x+ Opt_WarnMissingSafeHaskellMode -> warnSpec x+ Opt_WarnTabs -> warnSpec x+ Opt_WarnTypeDefaults -> warnSpec x+ Opt_WarnTypedHoles -> warnSpec x+ Opt_WarnPartialTypeSignatures -> warnSpec x+ Opt_WarnUnrecognisedPragmas -> warnSpec x+ Opt_WarnMisplacedPragmas -> warnSpec x+ Opt_WarnUnsafe -> warnSpec' x setWarnUnsafe+ Opt_WarnUnsupportedCallingConventions -> warnSpec x+ Opt_WarnUnsupportedLlvmVersion -> warnSpec x+ Opt_WarnMissedExtraSharedLib -> warnSpec x+ Opt_WarnUntickedPromotedConstructors -> warnSpec x+ Opt_WarnUnusedDoBind -> warnSpec x+ Opt_WarnUnusedForalls -> warnSpec x+ Opt_WarnUnusedImports -> warnSpec x+ Opt_WarnUnusedLocalBinds -> warnSpec x+ Opt_WarnUnusedMatches -> warnSpec x+ Opt_WarnUnusedPatternBinds -> warnSpec x+ Opt_WarnUnusedTopBinds -> warnSpec x+ Opt_WarnUnusedTypePatterns -> warnSpec x+ Opt_WarnUnusedRecordWildcards -> warnSpec x+ Opt_WarnRedundantBangPatterns -> warnSpec x+ Opt_WarnRedundantRecordWildcards -> warnSpec x+ Opt_WarnRedundantStrictnessFlags -> warnSpec x+ Opt_WarnWrongDoBind -> warnSpec x+ Opt_WarnMissingPatternSynonymSignatures -> warnSpec x+ Opt_WarnMissingDerivingStrategies -> warnSpec x+ Opt_WarnSimplifiableClassConstraints -> warnSpec x+ Opt_WarnMissingHomeModules -> warnSpec x+ Opt_WarnUnrecognisedWarningFlags -> warnSpec x+ Opt_WarnStarBinder -> warnSpec x+ Opt_WarnStarIsType -> warnSpec x+ Opt_WarnSpaceAfterBang+ -> depWarnSpec x "bang patterns can no longer be written with a space"+ Opt_WarnPartialFields -> warnSpec x+ Opt_WarnPrepositiveQualifiedModule -> warnSpec x+ Opt_WarnUnusedPackages -> warnSpec x+ Opt_WarnCompatUnqualifiedImports -> warnSpec x+ Opt_WarnInvalidHaddock -> warnSpec x+ Opt_WarnOperatorWhitespaceExtConflict -> warnSpec x+ Opt_WarnOperatorWhitespace -> warnSpec x+ Opt_WarnImplicitLift -> warnSpec x+ Opt_WarnMissingExportedPatternSynonymSignatures -> warnSpec x+ Opt_WarnForallIdentifier -> warnSpec x+ Opt_WarnUnicodeBidirectionalFormatCharacters -> warnSpec x+ Opt_WarnGADTMonoLocalBinds -> warnSpec x+ Opt_WarnTypeEqualityOutOfScope -> warnSpec x+ Opt_WarnTypeEqualityRequiresOperators -> warnSpec x -- | These @-\<blah\>@ flags can all be reversed with @-no-\<blah\>@ negatableFlagsDeps :: [(Deprecation, FlagSpec GeneralFlag)]
compiler/GHC/Settings.hs view
@@ -87,6 +87,7 @@ data ToolSettings = ToolSettings { toolSettings_ldSupportsCompactUnwind :: Bool , toolSettings_ldSupportsFilelist :: Bool+ , toolSettings_ldSupportsSingleModule :: Bool , toolSettings_ldIsGnuLd :: Bool , toolSettings_ccSupportsNoPie :: Bool , toolSettings_useInplaceMinGW :: Bool
compiler/GHC/Tc/Errors/Ppr.hs view
@@ -890,6 +890,12 @@ -- Note [Swizzling the tyvars before generaliseTcTyCon] = vcat [ quotes (ppr n1) <+> text "bound at" <+> ppr (getSrcLoc n1) , quotes (ppr n2) <+> text "bound at" <+> ppr (getSrcLoc n2) ]++ TcRnDisconnectedTyVar n+ -> mkSimpleDecorated $+ hang (text "Scoped type variable only appears non-injectively in declaration header:")+ 2 (quotes (ppr n) <+> text "bound at" <+> ppr (getSrcLoc n))+ TcRnInvalidReturnKind data_sort allowed_kind kind _suggested_ext -> mkSimpleDecorated $ sep [ ppDataSort data_sort <+>@@ -1535,6 +1541,8 @@ -> ErrorWithoutFlag TcRnDifferentNamesForTyVar{} -> ErrorWithoutFlag+ TcRnDisconnectedTyVar{}+ -> ErrorWithoutFlag TcRnInvalidReturnKind{} -> ErrorWithoutFlag TcRnClassKindNotConstraint{}@@ -1944,6 +1952,8 @@ -> noHints TcRnDifferentNamesForTyVar{} -> noHints+ TcRnDisconnectedTyVar n+ -> [SuggestBindTyVarExplicitly n] TcRnInvalidReturnKind _ _ _ mb_suggest_unlifted_ext -> case mb_suggest_unlifted_ext of Nothing -> noHints
compiler/GHC/Tc/Errors/Types.hs view
@@ -2029,7 +2029,14 @@ -} TcRnDifferentNamesForTyVar :: !Name -> !Name -> TcRnMessage - {- TcRnInvalidReturnKind is an error for a data declaration that has a kind signature+ {-| TcRnDisconnectedTyVar is an error for a data declaration that has a kind signature,+ where the implicitly-bound type type variables can't be matched up unambiguously+ with the ones from the signature. See Note [Disconnected type variables] in+ GHC.Tc.Gen.HsType.+ -}+ TcRnDisconnectedTyVar :: !Name -> TcRnMessage++ {-| TcRnInvalidReturnKind is an error for a data declaration that has a kind signature with an invalid result kind. Example(s):
compiler/GHC/Types/Error/Codes.hs view
@@ -456,6 +456,7 @@ GhcDiagnosticCode "TcRnInvalidVisibleKindArgument" = 20967 GhcDiagnosticCode "TcRnTooManyBinders" = 05989 GhcDiagnosticCode "TcRnDifferentNamesForTyVar" = 17370+ GhcDiagnosticCode "TcRnDisconnectedTyVar" = 59738 GhcDiagnosticCode "TcRnInvalidReturnKind" = 55233 GhcDiagnosticCode "TcRnClassKindNotConstraint" = 80768 GhcDiagnosticCode "TcRnUnpromotableThing" = 88634
compiler/GHC/Types/Hint.hs view
@@ -422,6 +422,9 @@ | LoopySuperclassSolveHint PredType ClsInstOrQC + {-| Suggest binding explicitly; e.g data T @k (a :: F k) = .... -}+ | SuggestBindTyVarExplicitly Name+ -- | An 'InstantiationSuggestion' for a '.hsig' file. This is generated -- by GHC in case of a 'DriverUnexpectedSignature' and suggests a way -- to instantiate a particular signature, where the first argument is
compiler/GHC/Types/Hint/Ppr.hs view
@@ -215,6 +215,9 @@ what = case cls_or_qc of IsClsInst -> text "instance context" IsQC {} -> text "context of the quantified constraint"+ SuggestBindTyVarExplicitly tv+ -> text "bind" <+> quotes (ppr tv)+ <+> text "explicitly with" <+> quotes (char '@' <> ppr tv) perhapsAsPat :: SDoc perhapsAsPat = text "Perhaps you meant an as-pattern, which must not be surrounded by whitespace"
compiler/GHC/Types/Name/Occurrence.hs view
@@ -429,6 +429,13 @@ pprOccEnv :: (a -> SDoc) -> OccEnv a -> SDoc pprOccEnv ppr_elt (A env) = pprUniqFM ppr_elt env +instance NFData a => NFData (OccEnv a) where+ rnf = forceOccEnv rnf++-- | Force an 'OccEnv' with the provided function.+forceOccEnv :: (a -> ()) -> OccEnv a -> ()+forceOccEnv nf (A fs) = seqEltsUFM nf fs+ type OccSet = UniqSet OccName emptyOccSet :: OccSet
compiler/GHC/Types/Name/Reader.hs view
@@ -98,6 +98,7 @@ import Data.Data import Data.List( sortBy ) import qualified Data.Semigroup as S+import Control.DeepSeq import GHC.Data.Bag {-@@ -494,15 +495,23 @@ -- INVARIANT: either gre_lcl = True or gre_imp is non-empty -- See Note [GlobalRdrElt provenance] +instance NFData GlobalRdrElt where+ rnf (GRE name par _ imp) = rnf name `seq` rnf par `seq` rnf imp++ -- | See Note [Parents] data Parent = NoParent- | ParentIs { par_is :: Name }+ | ParentIs { par_is :: !Name } deriving (Eq, Data) instance Outputable Parent where ppr NoParent = empty ppr (ParentIs n) = text "parent:" <> ppr n +instance NFData Parent where+ rnf NoParent = ()+ rnf (ParentIs n) = rnf n+ plusParent :: Parent -> Parent -> Parent -- See Note [Combining parents] plusParent p1@(ParentIs _) p2 = hasParent p1 p2@@ -1190,25 +1199,28 @@ -- -- The 'ImportSpec' of something says how it came to be imported -- It's quite elaborate so that we can give accurate unused-name warnings.-data ImportSpec = ImpSpec { is_decl :: ImpDeclSpec,- is_item :: ImpItemSpec }+data ImportSpec = ImpSpec { is_decl :: !ImpDeclSpec,+ is_item :: !ImpItemSpec } deriving( Eq, Data ) +instance NFData ImportSpec where+ rnf = rwhnf -- All fields are strict, so we don't need to do anything+ -- | Import Declaration Specification -- -- Describes a particular import declaration and is -- shared among all the 'Provenance's for that decl data ImpDeclSpec = ImpDeclSpec {- is_mod :: ModuleName, -- ^ Module imported, e.g. @import Muggle@+ is_mod :: !ModuleName, -- ^ Module imported, e.g. @import Muggle@ -- Note the @Muggle@ may well not be -- the defining module for this thing! -- TODO: either should be Module, or there -- should be a Maybe UnitId here too.- is_as :: ModuleName, -- ^ Import alias, e.g. from @as M@ (or @Muggle@ if there is no @as@ clause)- is_qual :: Bool, -- ^ Was this import qualified?- is_dloc :: SrcSpan -- ^ The location of the entire import declaration+ is_as :: !ModuleName, -- ^ Import alias, e.g. from @as M@ (or @Muggle@ if there is no @as@ clause)+ is_qual :: !Bool, -- ^ Was this import qualified?+ is_dloc :: !SrcSpan -- ^ The location of the entire import declaration } deriving (Eq, Data) -- | Import Item Specification@@ -1219,8 +1231,8 @@ -- or had a hiding list | ImpSome {- is_explicit :: Bool,- is_iloc :: SrcSpan -- Location of the import item+ is_explicit :: !Bool,+ is_iloc :: !SrcSpan -- Location of the import item } -- ^ The import had an import list. -- The 'is_explicit' field is @True@ iff the thing was named -- /explicitly/ in the import specs rather
compiler/GHC/Types/Var.hs view
@@ -75,7 +75,7 @@ mkFunTyFlag, visArg, invisArg, visArgTypeLike, visArgConstraintLike, invisArgTypeLike, invisArgConstraintLike,- funTyFlagResultTypeOrConstraint,+ funTyFlagArgTypeOrConstraint, funTyFlagResultTypeOrConstraint, TypeOrConstraint(..), -- Re-export this: it's an argument of FunTyFlag -- * PiTyBinder@@ -588,6 +588,12 @@ -- This one, FUN, or (->), has an extra multiplicity argument isFUNArg FTF_T_T = True isFUNArg _ = False++funTyFlagArgTypeOrConstraint :: FunTyFlag -> TypeOrConstraint+-- Whether it /takes/ a type or a constraint+funTyFlagArgTypeOrConstraint FTF_T_T = TypeLike+funTyFlagArgTypeOrConstraint FTF_T_C = TypeLike+funTyFlagArgTypeOrConstraint _ = ConstraintLike funTyFlagResultTypeOrConstraint :: FunTyFlag -> TypeOrConstraint -- Whether it /returns/ a type or a constraint
compiler/GHC/Unit/Finder/Types.hs view
@@ -61,7 +61,7 @@ -- but the *unit* is hidden -- | Module is in these units, but it is unusable- , fr_unusables :: [(Unit, UnusableUnitReason)]+ , fr_unusables :: [UnusableUnit] , fr_suggestions :: [ModuleSuggestion] -- ^ Possible mis-spelled modules }
compiler/GHC/Unit/Module/ModIface.hs view
@@ -553,7 +553,7 @@ rnf (ModIface f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f23 f24) = rnf f1 `seq` rnf f2 `seq` f3 `seq` f4 `seq` f5 `seq` f6 `seq` rnf f7 `seq` f8 `seq`- f9 `seq` rnf f10 `seq` rnf f11 `seq` rnf f12 `seq` f13 `seq` rnf f14 `seq` rnf f15 `seq` rnf f16 `seq`+ f9 `seq` rnf f10 `seq` rnf f11 `seq` rnf f12 `seq` rnf f13 `seq` rnf f14 `seq` rnf f15 `seq` rnf f16 `seq` rnf f17 `seq` f18 `seq` rnf f19 `seq` rnf f20 `seq` rnf f21 `seq` f22 `seq` f23 `seq` rnf f24 `seq` ()
compiler/GHC/Unit/State.hs view
@@ -43,6 +43,7 @@ LookupResult(..), ModuleSuggestion(..), ModuleOrigin(..),+ UnusableUnit(..), UnusableUnitReason(..), pprReason, @@ -174,8 +175,10 @@ -- (But maybe the user didn't realize), so we'll still keep track -- of these modules.) ModHidden- -- | Module is unavailable because the package is unusable.- | ModUnusable UnusableUnitReason++ -- | Module is unavailable because the unit is unusable.+ | ModUnusable !UnusableUnit+ -- | Module is public, and could have come from some places. | ModOrigin { -- | @Just False@ means that this module is in@@ -193,6 +196,13 @@ , fromPackageFlag :: Bool } +-- | A unusable unit module origin+data UnusableUnit = UnusableUnit+ { uuUnit :: !Unit -- ^ Unusable unit+ , uuReason :: !UnusableUnitReason -- ^ Reason+ , uuIsReexport :: !Bool -- ^ Is the "module" a reexport?+ }+ instance Outputable ModuleOrigin where ppr ModHidden = text "hidden module" ppr (ModUnusable _) = text "unusable module"@@ -237,7 +247,8 @@ text "x: " <> ppr x $$ text "y: " <> ppr y g Nothing x = x g x Nothing = x- x <> y = pprPanic "ModOrigin: hidden module redefined" $++ x <> y = pprPanic "ModOrigin: module origin mismatch" $ text "x: " <> ppr x $$ text "y: " <> ppr y instance Monoid ModuleOrigin where@@ -1816,21 +1827,36 @@ mkUnusableModuleNameProvidersMap unusables = Map.foldl' extend_modmap Map.empty unusables where- extend_modmap modmap (pkg, reason) = addListTo modmap bindings+ extend_modmap modmap (unit_info, reason) = addListTo modmap bindings where bindings :: [(ModuleName, Map Module ModuleOrigin)] bindings = exposed ++ hidden - origin = ModUnusable reason- pkg_id = mkUnit pkg+ origin_reexport = ModUnusable (UnusableUnit unit reason True)+ origin_normal = ModUnusable (UnusableUnit unit reason False)+ unit = mkUnit unit_info exposed = map get_exposed exposed_mods- hidden = [(m, mkModMap pkg_id m origin) | m <- hidden_mods]+ hidden = [(m, mkModMap unit m origin_normal) | m <- hidden_mods] - get_exposed (mod, Just mod') = (mod, Map.singleton mod' origin)- get_exposed (mod, _) = (mod, mkModMap pkg_id mod origin)+ -- with re-exports, c:Foo can be reexported from two (or more)+ -- unusable packages:+ -- Foo -> a:Foo (unusable reason A) -> c:Foo+ -- -> b:Foo (unusable reason B) -> c:Foo+ --+ -- We must be careful to not record the following (#21097):+ -- Foo -> c:Foo (unusable reason A)+ -- -> c:Foo (unusable reason B)+ -- But:+ -- Foo -> a:Foo (unusable reason A)+ -- -> b:Foo (unusable reason B)+ --+ get_exposed (mod, Just _) = (mod, mkModMap unit mod origin_reexport)+ get_exposed (mod, _) = (mod, mkModMap unit mod origin_normal)+ -- in the reexport case, we create a virtual module that doesn't+ -- exist but we don't care as it's only used as a key in the map. - exposed_mods = unitExposedModules pkg- hidden_mods = unitHiddenModules pkg+ exposed_mods = unitExposedModules unit_info+ hidden_mods = unitHiddenModules unit_info -- | Add a list of key/value pairs to a nested map. --
compiler/ghc.cabal view
@@ -3,7 +3,7 @@ -- ./configure. Make sure you are editing ghc.cabal.in, not ghc.cabal. Name: ghc-Version: 9.6.3+Version: 9.6.4 License: BSD-3-Clause License-File: LICENSE Author: The GHC Team@@ -86,9 +86,9 @@ transformers >= 0.5 && < 0.7, exceptions == 0.10.*, stm,- ghc-boot == 9.6.3,- ghc-heap == 9.6.3,- ghci == 9.6.3+ ghc-boot == 9.6.4,+ ghc-heap == 9.6.4,+ ghci == 9.6.4 if os(windows) Build-Depends: Win32 >= 2.3 && < 2.14
ghc-lib-parser.cabal view
@@ -1,7 +1,7 @@ cabal-version: 3.0 build-type: Simple name: ghc-lib-parser-version: 9.6.3.20231121+version: 9.6.4.20240109 license: BSD-3-Clause license-file: LICENSE category: Development
ghc-lib/stage0/lib/settings view
@@ -3,7 +3,7 @@ ,("C compiler flags", "--target=x86_64-apple-darwin ") ,("C++ compiler command", "/usr/bin/g++") ,("C++ compiler flags", "--target=x86_64-apple-darwin ")-,("C compiler link flags", "--target=x86_64-apple-darwin -Wl,-no_fixup_chains")+,("C compiler link flags", "--target=x86_64-apple-darwin -Wl,-no_fixup_chains -Wl,-no_warn_duplicate_libraries") ,("C compiler supports -no-pie", "NO") ,("Haskell CPP command", "/usr/bin/gcc") ,("Haskell CPP flags", "-E -undef -traditional -Wno-invalid-pp-token -Wno-unicode -Wno-trigraphs")@@ -12,6 +12,7 @@ ,("ld supports compact unwind", "YES") ,("ld supports filelist", "YES") ,("ld is GNU ld", "NO")+,("ld supports single module", "NO") ,("Merge objects command", "ld") ,("Merge objects flags", "-r") ,("ar command", "/usr/bin/ar")
ghc-lib/stage0/libraries/ghc-boot/build/GHC/Version.hs view
@@ -3,19 +3,19 @@ import Prelude -- See Note [Why do we import Prelude here?] cProjectGitCommitId :: String-cProjectGitCommitId = "6819b70a7739205a75f0b4fefcfcc9fdab39cab9"+cProjectGitCommitId = "3187fc7644a41c182ec35292389b61bc0575e80b" cProjectVersion :: String-cProjectVersion = "9.6.3"+cProjectVersion = "9.6.4" cProjectVersionInt :: String cProjectVersionInt = "906" cProjectPatchLevel :: String-cProjectPatchLevel = "3"+cProjectPatchLevel = "4" cProjectPatchLevel1 :: String-cProjectPatchLevel1 = "3"+cProjectPatchLevel1 = "4" cProjectPatchLevel2 :: String cProjectPatchLevel2 = "0"
ghc-lib/stage0/rts/build/include/GhclibDerivedConstants.h view
@@ -166,8 +166,8 @@ #define StgEntCounter_entry_count(__ptr__) REP_StgEntCounter_entry_count[__ptr__+OFFSET_StgEntCounter_entry_count] #define SIZEOF_StgUpdateFrame_NoHdr 8 #define SIZEOF_StgUpdateFrame (SIZEOF_StgHeader+8)-#define SIZEOF_StgCatchFrame_NoHdr 16-#define SIZEOF_StgCatchFrame (SIZEOF_StgHeader+16)+#define SIZEOF_StgCatchFrame_NoHdr 8+#define SIZEOF_StgCatchFrame (SIZEOF_StgHeader+8) #define SIZEOF_StgStopFrame_NoHdr 0 #define SIZEOF_StgStopFrame (SIZEOF_StgHeader+0) #define SIZEOF_StgDeadThreadFrame_NoHdr 8@@ -260,12 +260,9 @@ #define OFFSET_StgUpdateFrame_updatee 0 #define REP_StgUpdateFrame_updatee b64 #define StgUpdateFrame_updatee(__ptr__) REP_StgUpdateFrame_updatee[__ptr__+SIZEOF_StgHeader+OFFSET_StgUpdateFrame_updatee]-#define OFFSET_StgCatchFrame_handler 8+#define OFFSET_StgCatchFrame_handler 0 #define REP_StgCatchFrame_handler b64 #define StgCatchFrame_handler(__ptr__) REP_StgCatchFrame_handler[__ptr__+SIZEOF_StgHeader+OFFSET_StgCatchFrame_handler]-#define OFFSET_StgCatchFrame_exceptions_blocked 0-#define REP_StgCatchFrame_exceptions_blocked b64-#define StgCatchFrame_exceptions_blocked(__ptr__) REP_StgCatchFrame_exceptions_blocked[__ptr__+SIZEOF_StgHeader+OFFSET_StgCatchFrame_exceptions_blocked] #define SIZEOF_StgPAP_NoHdr 16 #define SIZEOF_StgPAP (SIZEOF_StgHeader+16) #define OFFSET_StgPAP_n_args 4
ghc/ghc-bin.cabal view
@@ -2,7 +2,7 @@ -- ./configure. Make sure you are editing ghc-bin.cabal.in, not ghc-bin.cabal. Name: ghc-bin-Version: 9.6.3+Version: 9.6.4 Copyright: XXX -- License: XXX -- License-File: XXX@@ -39,8 +39,8 @@ filepath >= 1 && < 1.5, containers >= 0.5 && < 0.7, transformers >= 0.5 && < 0.7,- ghc-boot == 9.6.3,- ghc == 9.6.3+ ghc-boot == 9.6.4,+ ghc == 9.6.4 if os(windows) Build-Depends: Win32 >= 2.3 && < 2.14@@ -58,7 +58,7 @@ Build-depends: deepseq == 1.4.*, ghc-prim >= 0.5.0 && < 0.11,- ghci == 9.6.3,+ ghci == 9.6.4, haskeline == 0.8.*, exceptions == 0.10.*, time >= 1.8 && < 1.13
libraries/ghc-boot-th/ghc-boot-th.cabal view
@@ -3,7 +3,7 @@ -- ghc-boot-th.cabal.in, not ghc-boot-th.cabal. name: ghc-boot-th-version: 9.6.3+version: 9.6.4 license: BSD3 license-file: LICENSE category: GHC
libraries/ghc-boot/ghc-boot.cabal view
@@ -5,7 +5,7 @@ -- ghc-boot.cabal. name: ghc-boot-version: 9.6.3+version: 9.6.4 license: BSD-3-Clause license-file: LICENSE category: GHC@@ -77,7 +77,7 @@ directory >= 1.2 && < 1.4, filepath >= 1.3 && < 1.5, deepseq >= 1.4 && < 1.5,- ghc-boot-th == 9.6.3+ ghc-boot-th == 9.6.4 if !os(windows) build-depends: unix >= 2.7 && < 2.9
libraries/ghc-heap/ghc-heap.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: ghc-heap-version: 9.6.3+version: 9.6.4 license: BSD-3-Clause license-file: LICENSE maintainer: libraries@haskell.org
libraries/ghci/GHCi/Message.hs view
@@ -465,7 +465,7 @@ #define MIN_VERSION_ghc_heap(major1,major2,minor) (\ (major1) < 9 || \ (major1) == 9 && (major2) < 6 || \- (major1) == 9 && (major2) == 6 && (minor) <= 3)+ (major1) == 9 && (major2) == 6 && (minor) <= 4) #endif /* MIN_VERSION_ghc_heap */ #if MIN_VERSION_ghc_heap(8,11,0) instance Binary Heap.StgTSOProfInfo
libraries/ghci/ghci.cabal view
@@ -2,7 +2,7 @@ -- ../../configure. Make sure you are editing ghci.cabal.in, not ghci.cabal. name: ghci-version: 9.6.3+version: 9.6.4 license: BSD3 license-file: LICENSE category: GHC@@ -77,8 +77,8 @@ containers >= 0.5 && < 0.7, deepseq == 1.4.*, filepath == 1.4.*,- ghc-boot == 9.6.3,- ghc-heap == 9.6.3,+ ghc-boot == 9.6.4,+ ghc-heap == 9.6.4, template-haskell == 2.20.*, transformers >= 0.5 && < 0.7
libraries/template-haskell/template-haskell.cabal view
@@ -56,7 +56,7 @@ build-depends: base >= 4.11 && < 4.19,- ghc-boot-th == 9.6.3,+ ghc-boot-th == 9.6.4, ghc-prim, pretty == 1.1.*