
Ben Gamari pushed to branch wip/ghc-9.12 at Glasgow Haskell Compiler / GHC Commits: b30f2559 by Vladislav Zavialov at 2025-04-18T17:19:43-04:00 Fixes for built-in names (#25182, #25174) * In isBuiltInOcc_maybe, do not match on "FUN" (#25174) * Classify MkSolo and MkSolo# as UserSyntax (#25182) Extracted from 51e3ec839c378f0da7052278a56482f0349e9bc7 - - - - - 7ac61ea6 by Ben Gamari at 2025-05-07T15:13:10+00:00 Bump index-state Allowing splitmix-0.1.1 which is necessary for bootstrapping with GHC 9.12. - - - - - e5301bb6 by Ben Gamari at 2025-05-07T15:13:10+00:00 hadrian: Bump QuickCheck upper bound - - - - - 23 changed files: - compiler/GHC/Builtin/Types.hs - compiler/GHC/Types/Name/Ppr.hs - + docs/users_guide/9.12.3-notes.rst - docs/users_guide/release-notes.rst - hadrian/cabal.project - hadrian/hadrian.cabal - libraries/base/src/GHC/Base.hs - libraries/base/src/GHC/Exts.hs - testsuite/tests/core-to-stg/T24124.stderr - testsuite/tests/interface-stability/ghc-experimental-exports.stdout - testsuite/tests/interface-stability/ghc-experimental-exports.stdout-mingw32 - + testsuite/tests/rename/should_compile/ReExportTuples.hs - + testsuite/tests/rename/should_compile/T25182.hs - testsuite/tests/rename/should_compile/all.T - testsuite/tests/simplStg/should_compile/T15226b.stderr - + testsuite/tests/th/FunNameTH.hs - testsuite/tests/th/T13776.hs - testsuite/tests/th/T13776.stderr - + testsuite/tests/th/T25174.hs - testsuite/tests/th/all.T - testsuite/tests/typecheck/should_compile/holes.stderr - testsuite/tests/typecheck/should_compile/holes3.stderr - testsuite/tests/typecheck/should_compile/valid_hole_fits.stderr Changes: ===================================== compiler/GHC/Builtin/Types.hs ===================================== @@ -78,6 +78,7 @@ module GHC.Builtin.Types ( promotedTupleDataCon, unitTyCon, unitDataCon, unitDataConId, unitTy, unitTyConKey, soloTyCon, + soloDataConName, pairTyCon, mkPromotedPairTy, isPromotedPairType, unboxedUnitTy, unboxedUnitTyCon, unboxedUnitDataCon, @@ -895,7 +896,6 @@ isBuiltInOcc_maybe occ = ":" -> Just consDataConName -- function tycon - "FUN" -> Just fUNTyConName "->" -> Just unrestrictedFunTyConName -- tuple data/tycon @@ -1054,40 +1054,36 @@ isPunOcc_maybe mod occ isCTupleOcc_maybe mod occ <|> isSumTyOcc_maybe mod occ -mkTupleOcc :: NameSpace -> Boxity -> Arity -> OccName --- No need to cache these, the caching is done in mk_tuple -mkTupleOcc ns Boxed ar = mkOccName ns (mkBoxedTupleStr ns ar) -mkTupleOcc ns Unboxed ar = mkOccName ns (mkUnboxedTupleStr ns ar) +mkTupleOcc :: NameSpace -> Boxity -> Arity -> (OccName, BuiltInSyntax) +mkTupleOcc ns b ar = (mkOccName ns str, built_in) + where (str, built_in) = mkTupleStr' ns b ar mkCTupleOcc :: NameSpace -> Arity -> OccName mkCTupleOcc ns ar = mkOccName ns (mkConstraintTupleStr ar) mkTupleStr :: Boxity -> NameSpace -> Arity -> String -mkTupleStr Boxed = mkBoxedTupleStr -mkTupleStr Unboxed = mkUnboxedTupleStr - -mkBoxedTupleStr :: NameSpace -> Arity -> String -mkBoxedTupleStr ns 0 - | isDataConNameSpace ns = "()" - | otherwise = "Unit" -mkBoxedTupleStr ns 1 - | isDataConNameSpace ns = "MkSolo" -- See Note [One-tuples] - | otherwise = "Solo" -mkBoxedTupleStr ns ar - | isDataConNameSpace ns = '(' : commas ar ++ ")" - | otherwise = "Tuple" ++ showInt ar "" - - -mkUnboxedTupleStr :: NameSpace -> Arity -> String -mkUnboxedTupleStr ns 0 - | isDataConNameSpace ns = "(##)" - | otherwise = "Unit#" -mkUnboxedTupleStr ns 1 - | isDataConNameSpace ns = "MkSolo#" -- See Note [One-tuples] - | otherwise = "Solo#" -mkUnboxedTupleStr ns ar - | isDataConNameSpace ns = "(#" ++ commas ar ++ "#)" - | otherwise = "Tuple" ++ show ar ++ "#" +mkTupleStr b ns ar = str + where (str, _) = mkTupleStr' ns b ar + +mkTupleStr' :: NameSpace -> Boxity -> Arity -> (String, BuiltInSyntax) +mkTupleStr' ns Boxed 0 + | isDataConNameSpace ns = ("()", BuiltInSyntax) + | otherwise = ("Unit", UserSyntax) +mkTupleStr' ns Boxed 1 + | isDataConNameSpace ns = ("MkSolo", UserSyntax) -- See Note [One-tuples] + | otherwise = ("Solo", UserSyntax) +mkTupleStr' ns Boxed ar + | isDataConNameSpace ns = ('(' : commas ar ++ ")", BuiltInSyntax) + | otherwise = ("Tuple" ++ showInt ar "", UserSyntax) +mkTupleStr' ns Unboxed 0 + | isDataConNameSpace ns = ("(##)", BuiltInSyntax) + | otherwise = ("Unit#", UserSyntax) +mkTupleStr' ns Unboxed 1 + | isDataConNameSpace ns = ("MkSolo#", UserSyntax) -- See Note [One-tuples] + | otherwise = ("Solo#", UserSyntax) +mkTupleStr' ns Unboxed ar + | isDataConNameSpace ns = ("(#" ++ commas ar ++ "#)", BuiltInSyntax) + | otherwise = ("Tuple" ++ show ar ++ "#", UserSyntax) mkConstraintTupleStr :: Arity -> String mkConstraintTupleStr 0 = "CUnit" @@ -1243,10 +1239,10 @@ mk_tuple Boxed arity = (tycon, tuple_con) boxity = Boxed modu = gHC_INTERNAL_TUPLE - tc_name = mkWiredInName modu (mkTupleOcc tcName boxity arity) tc_uniq - (ATyCon tycon) UserSyntax - dc_name = mkWiredInName modu (mkTupleOcc dataName boxity arity) dc_uniq - (AConLike (RealDataCon tuple_con)) BuiltInSyntax + tc_name = mkWiredInName modu occ tc_uniq (ATyCon tycon) built_in + where (occ, built_in) = mkTupleOcc tcName boxity arity + dc_name = mkWiredInName modu occ dc_uniq (AConLike (RealDataCon tuple_con)) built_in + where (occ, built_in) = mkTupleOcc dataName boxity arity tc_uniq = mkTupleTyConUnique boxity arity dc_uniq = mkTupleDataConUnique boxity arity @@ -1277,10 +1273,10 @@ mk_tuple Unboxed arity = (tycon, tuple_con) boxity = Unboxed modu = gHC_TYPES - tc_name = mkWiredInName modu (mkTupleOcc tcName boxity arity) tc_uniq - (ATyCon tycon) UserSyntax - dc_name = mkWiredInName modu (mkTupleOcc dataName boxity arity) dc_uniq - (AConLike (RealDataCon tuple_con)) BuiltInSyntax + tc_name = mkWiredInName modu occ tc_uniq (ATyCon tycon) built_in + where (occ, built_in) = mkTupleOcc tcName boxity arity + dc_name = mkWiredInName modu occ dc_uniq (AConLike (RealDataCon tuple_con)) built_in + where (occ, built_in) = mkTupleOcc dataName boxity arity tc_uniq = mkTupleTyConUnique boxity arity dc_uniq = mkTupleDataConUnique boxity arity @@ -1344,6 +1340,9 @@ soloTyCon = tupleTyCon Boxed 1 soloTyConName :: Name soloTyConName = tyConName soloTyCon +soloDataConName :: Name +soloDataConName = tupleDataConName Boxed 1 + pairTyCon :: TyCon pairTyCon = tupleTyCon Boxed 2 ===================================== compiler/GHC/Types/Name/Ppr.hs ===================================== @@ -123,7 +123,8 @@ mkQualName env = qual_name where , fUNTyConName, unrestrictedFunTyConName , oneDataConName , listTyConName - , manyDataConName ] + , manyDataConName + , soloDataConName ] || isJust (isTupleTyOcc_maybe mod occ) || isJust (isSumTyOcc_maybe mod occ) ===================================== docs/users_guide/9.12.3-notes.rst ===================================== @@ -0,0 +1,69 @@ +.. _release-9-12-3: + +Version 9.12.3 +============== + +The significant changes to the various parts of the compiler are listed in the +following sections. See the `migration guide +https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.12`_ on the GHC Wiki +for specific guidance on migrating programs to this release. + +Compiler +~~~~~~~~ + +- Fixed re-exports of ``MkSolo`` and ``MkSolo#`` (:ghc-ticket:`25182`) +- Fixed the behavior of ``Language.Haskell.TH.mkName "FUN"`` (:ghc-ticket:`25174`) + +Included libraries +~~~~~~~~~~~~~~~~~~ + +The package database provided with this distribution also contains a number of +packages other than GHC itself. See the changelogs provided with these packages +for further change information. + +.. ghc-package-list:: + + compiler/ghc.cabal: The compiler itself + libraries/array/array.cabal: Dependency of ``ghc`` library + libraries/base/base.cabal: Core library + libraries/binary/binary.cabal: Dependency of ``ghc`` library + libraries/bytestring/bytestring.cabal: Dependency of ``ghc`` library + libraries/Cabal/Cabal/Cabal.cabal: Dependency of ``ghc-pkg`` utility + libraries/Cabal/Cabal-syntax/Cabal-syntax.cabal: Dependency of ``ghc-pkg`` utility + libraries/containers/containers/containers.cabal: Dependency of ``ghc`` library + libraries/deepseq/deepseq.cabal: Dependency of ``ghc`` library + libraries/directory/directory.cabal: Dependency of ``ghc`` library + libraries/exceptions/exceptions.cabal: Dependency of ``ghc`` and ``haskeline`` library + libraries/file-io/file-io.cabal: Dependency of ``directory`` library + libraries/filepath/filepath.cabal: Dependency of ``ghc`` library + libraries/ghc-boot/ghc-boot.cabal: Internal compiler library + libraries/ghc-boot-th/ghc-boot-th.cabal: Internal compiler library + libraries/ghc-compact/ghc-compact.cabal: Core library + libraries/ghc-experimental/ghc-experimental.cabal: Core library + libraries/ghc-heap/ghc-heap.cabal: GHC heap-walking library + libraries/ghci/ghci.cabal: The REPL interface + libraries/ghc-internal/ghc-internal.cabal: Core library + libraries/ghc-platform/ghc-platform.cabal: Internal library + libraries/ghc-prim/ghc-prim.cabal: Core library + libraries/haskeline/haskeline.cabal: Dependency of ``ghci`` executable + libraries/hpc/hpc.cabal: Dependency of ``hpc`` executable + libraries/integer-gmp/integer-gmp.cabal: Core library + libraries/mtl/mtl.cabal: Dependency of ``Cabal`` library + libraries/os-string/os-string.cabal: Dependency of ``filepath`` library + libraries/parsec/parsec.cabal: Dependency of ``Cabal`` library + libraries/pretty/pretty.cabal: Dependency of ``ghc`` library + libraries/process/process.cabal: Dependency of ``ghc`` library + libraries/semaphore-compat/semaphore-compat.cabal: Dependency of ``ghc`` library + libraries/stm/stm.cabal: Dependency of ``haskeline`` library + libraries/template-haskell/template-haskell.cabal: Core library + libraries/terminfo/terminfo.cabal: Dependency of ``haskeline`` library + libraries/text/text.cabal: Dependency of ``Cabal`` library + libraries/time/time.cabal: Dependency of ``ghc`` library + libraries/transformers/transformers.cabal: Dependency of ``ghc`` library + libraries/unix/unix.cabal: Dependency of ``ghc`` library + libraries/Win32/Win32.cabal: Dependency of ``ghc`` library + libraries/xhtml/xhtml.cabal: Dependency of ``haddock`` executable + utils/haddock/haddock-api/haddock-api.cabal: Dependency of ``haddock`` executable + utils/haddock/haddock-library/haddock-library.cabal: Dependency of ``haddock`` executable + + ===================================== docs/users_guide/release-notes.rst ===================================== @@ -6,3 +6,4 @@ Release notes 9.12.1-notes 9.12.2-notes + 9.12.3-notes ===================================== hadrian/cabal.project ===================================== @@ -4,7 +4,7 @@ packages: ./ -- This essentially freezes the build plan for hadrian -- It would be wise to keep this up to date with the state set in .gitlab/ci.sh. -index-state: 2024-10-30T22:56:00Z +index-state: 2025-03-18T00:00:00Z -- unordered-containers-0.2.20-r1 requires template-haskell < 2.22 -- ghc-9.10 has template-haskell-2.22.0.0 ===================================== hadrian/hadrian.cabal ===================================== @@ -191,4 +191,4 @@ executable hadrian if flag(selftest) other-modules: Rules.Selftest cpp-options: -DHADRIAN_ENABLE_SELFTEST - build-depends: QuickCheck >= 2.6 && < 2.15 + build-depends: QuickCheck >= 2.6 && < 2.16 ===================================== libraries/base/src/GHC/Base.hs ===================================== @@ -278,7 +278,7 @@ import GHC.Internal.IO (seq#) import GHC.Internal.Maybe import GHC.Types hiding ( Unit#, - Solo#, + Solo#(..), Tuple0#, Tuple1#, Tuple2#, ===================================== libraries/base/src/GHC/Exts.hs ===================================== @@ -267,7 +267,7 @@ import GHC.Types hiding ( -- GHC's internal representation of 'TyCon's, for 'Typeable' Module, TrName, TyCon, TypeLitSort, KindRep, KindBndr, Unit#, - Solo#, + Solo#(..), Tuple0#, Tuple1#, Tuple2#, ===================================== testsuite/tests/core-to-stg/T24124.stderr ===================================== @@ -24,7 +24,7 @@ T15226b.testFun1 case y of conrep { __DEFAULT -> case T15226b.MkStrictPair [sat conrep] of sat { - __DEFAULT -> MkSolo# [sat]; + __DEFAULT -> GHC.Types.MkSolo# [sat]; }; }; }; ===================================== testsuite/tests/interface-stability/ghc-experimental-exports.stdout ===================================== @@ -4474,6 +4474,7 @@ module GHC.PrimOps where type role MVar# nominal representational type MVar# :: forall {l :: Levity}. * -> TYPE (BoxedRep l) -> UnliftedType data MVar# a b + MkSolo# :: forall (k :: RuntimeRep) (a :: TYPE k). a -> (# a #) type MultMul :: Multiplicity -> Multiplicity -> Multiplicity type family MultMul a b where forall (x :: Multiplicity). MultMul One x = x @@ -7331,9 +7332,9 @@ module Prelude.Experimental where data List a = ... pattern Solo :: forall a. a -> Solo a type Solo :: * -> * - data Solo a = ... + data Solo a = MkSolo a type Solo# :: forall (k :: GHC.Types.RuntimeRep). TYPE k -> TYPE (GHC.Types.TupleRep '[k]) - data Solo# a = ... + data Solo# a = MkSolo# a type Sum10# :: forall (k0 :: GHC.Types.RuntimeRep) (k1 :: GHC.Types.RuntimeRep) (k2 :: GHC.Types.RuntimeRep) (k3 :: GHC.Types.RuntimeRep) (k4 :: GHC.Types.RuntimeRep) (k5 :: GHC.Types.RuntimeRep) (k6 :: GHC.Types.RuntimeRep) (k7 :: GHC.Types.RuntimeRep) (k8 :: GHC.Types.RuntimeRep) (k9 :: GHC.Types.RuntimeRep). TYPE k0 -> TYPE k1 -> TYPE k2 -> TYPE k3 -> TYPE k4 -> TYPE k5 -> TYPE k6 -> TYPE k7 -> TYPE k8 -> TYPE k9 -> TYPE (GHC.Types.SumRep [k0, k1, k2, k3, k4, k5, k6, k7, k8, k9]) data Sum10# a b c d e f g h i j = ... type Sum11# :: forall (k0 :: GHC.Types.RuntimeRep) (k1 :: GHC.Types.RuntimeRep) (k2 :: GHC.Types.RuntimeRep) (k3 :: GHC.Types.RuntimeRep) (k4 :: GHC.Types.RuntimeRep) (k5 :: GHC.Types.RuntimeRep) (k6 :: GHC.Types.RuntimeRep) (k7 :: GHC.Types.RuntimeRep) (k8 :: GHC.Types.RuntimeRep) (k9 :: GHC.Types.RuntimeRep) (k10 :: GHC.Types.RuntimeRep). TYPE k0 -> TYPE k1 -> TYPE k2 -> TYPE k3 -> TYPE k4 -> TYPE k5 -> TYPE k6 -> TYPE k7 -> TYPE k8 -> TYPE k9 -> TYPE k10 -> TYPE (GHC.Types.SumRep [k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, k10]) ===================================== testsuite/tests/interface-stability/ghc-experimental-exports.stdout-mingw32 ===================================== @@ -4474,6 +4474,7 @@ module GHC.PrimOps where type role MVar# nominal representational type MVar# :: forall {l :: Levity}. * -> TYPE (BoxedRep l) -> UnliftedType data MVar# a b + MkSolo# :: forall (k :: RuntimeRep) (a :: TYPE k). a -> (# a #) type MultMul :: Multiplicity -> Multiplicity -> Multiplicity type family MultMul a b where forall (x :: Multiplicity). MultMul One x = x @@ -7334,9 +7335,9 @@ module Prelude.Experimental where data List a = ... pattern Solo :: forall a. a -> Solo a type Solo :: * -> * - data Solo a = ... + data Solo a = MkSolo a type Solo# :: forall (k :: GHC.Types.RuntimeRep). TYPE k -> TYPE (GHC.Types.TupleRep '[k]) - data Solo# a = ... + data Solo# a = MkSolo# a type Sum10# :: forall (k0 :: GHC.Types.RuntimeRep) (k1 :: GHC.Types.RuntimeRep) (k2 :: GHC.Types.RuntimeRep) (k3 :: GHC.Types.RuntimeRep) (k4 :: GHC.Types.RuntimeRep) (k5 :: GHC.Types.RuntimeRep) (k6 :: GHC.Types.RuntimeRep) (k7 :: GHC.Types.RuntimeRep) (k8 :: GHC.Types.RuntimeRep) (k9 :: GHC.Types.RuntimeRep). TYPE k0 -> TYPE k1 -> TYPE k2 -> TYPE k3 -> TYPE k4 -> TYPE k5 -> TYPE k6 -> TYPE k7 -> TYPE k8 -> TYPE k9 -> TYPE (GHC.Types.SumRep [k0, k1, k2, k3, k4, k5, k6, k7, k8, k9]) data Sum10# a b c d e f g h i j = ... type Sum11# :: forall (k0 :: GHC.Types.RuntimeRep) (k1 :: GHC.Types.RuntimeRep) (k2 :: GHC.Types.RuntimeRep) (k3 :: GHC.Types.RuntimeRep) (k4 :: GHC.Types.RuntimeRep) (k5 :: GHC.Types.RuntimeRep) (k6 :: GHC.Types.RuntimeRep) (k7 :: GHC.Types.RuntimeRep) (k8 :: GHC.Types.RuntimeRep) (k9 :: GHC.Types.RuntimeRep) (k10 :: GHC.Types.RuntimeRep). TYPE k0 -> TYPE k1 -> TYPE k2 -> TYPE k3 -> TYPE k4 -> TYPE k5 -> TYPE k6 -> TYPE k7 -> TYPE k8 -> TYPE k9 -> TYPE k10 -> TYPE (GHC.Types.SumRep [k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, k10]) ===================================== testsuite/tests/rename/should_compile/ReExportTuples.hs ===================================== @@ -0,0 +1,4 @@ +module ReExportTuples (module Data.Tuple) where +-- Re-export the entire Data.Tuple module at once + +import Data.Tuple ===================================== testsuite/tests/rename/should_compile/T25182.hs ===================================== @@ -0,0 +1,6 @@ +module T25182 where + +import ReExportTuples + +s :: Solo String +s = MkSolo "hello" \ No newline at end of file ===================================== testsuite/tests/rename/should_compile/all.T ===================================== @@ -225,3 +225,4 @@ test('T14032d', normal, compile, ['']) test('T24621_normal', normal, compile, ['']) test('T24621_th', req_th, compile, ['']) test('T24732', normal, compile_and_run, ['-package "base(Prelude, Text.Printf as P\')"']) +test('T25182', [extra_files(['ReExportTuples.hs'])], multimod_compile, ['T25182', '-v0']) ===================================== testsuite/tests/simplStg/should_compile/T15226b.stderr ===================================== @@ -20,7 +20,7 @@ T15226b.bar1 sat [Occ=Once1] :: T15226b.Str (GHC.Internal.Maybe.Maybe a) [LclId] = T15226b.Str! [sat]; - } in MkSolo# [sat]; + } in GHC.Types.MkSolo# [sat]; }; T15226b.bar ===================================== testsuite/tests/th/FunNameTH.hs ===================================== @@ -0,0 +1,11 @@ +{-# LANGUAGE TemplateHaskell #-} + +module FunNameTH where + +import Language.Haskell.TH + +f1 :: forall a. $(conT (mkName "->")) [a] Bool +f1 = null + +f2 :: forall a. $(conT ''(->)) [a] Bool +f2 = null \ No newline at end of file ===================================== testsuite/tests/th/T13776.hs ===================================== @@ -10,6 +10,9 @@ spliceTy1 = (1,2) spliceTy2 :: $(conT ''[] `appT` conT ''Int) spliceTy2 = [] +spliceTy3 :: $(conT ''(->)) [Int] Int +spliceTy3 = sum + spliceExp1 :: (Int, Int) spliceExp1 = $(conE '(,) `appE` litE (integerL 1) `appE` litE (integerL 1)) ===================================== testsuite/tests/th/T13776.stderr ===================================== @@ -1,12 +1,13 @@ +T13776.hs:13:15-27: Splicing type conT ''(->) ======> (->) T13776.hs:10:15-43: Splicing type conT ''[] `appT` conT ''Int ======> [] Int T13776.hs:7:15-62: Splicing type conT ''(,) `appT` conT ''Int `appT` conT ''Int ======> (,) Int Int -T13776.hs:14:15-75: Splicing expression +T13776.hs:17:15-75: Splicing expression conE '(,) `appE` litE (integerL 1) `appE` litE (integerL 1) ======> (,) 1 1 -T13776.hs:17:15-24: Splicing expression conE '[] ======> [] -T13776.hs:20:13-62: Splicing pattern +T13776.hs:20:15-24: Splicing expression conE '[] ======> [] +T13776.hs:23:13-62: Splicing pattern conP '(,) [litP (integerL 1), litP (integerL 1)] ======> (,) 1 1 -T13776.hs:23:13-25: Splicing pattern conP '[] [] ======> [] +T13776.hs:26:13-25: Splicing pattern conP '[] [] ======> [] ===================================== testsuite/tests/th/T25174.hs ===================================== @@ -0,0 +1,11 @@ +{-# LANGUAGE TemplateHaskell #-} + +module T25174 where + +import Language.Haskell.TH + +data FUN a b = MkFUN (a -> b) + +evenFUN :: $(conT (mkName "FUN")) Int Bool +evenFUN = MkFUN even + ===================================== testsuite/tests/th/all.T ===================================== @@ -631,3 +631,5 @@ test('T25252', req_c], compile_and_run, ['-fPIC T25252_c.c']) test('T25083', [extra_files(['T25083_A.hs', 'T25083_B.hs'])], multimod_compile_and_run, ['T25083', '-v0 -j']) +test('T25174', normal, compile, ['']) +test('FunNameTH', normal, compile, ['']) ===================================== testsuite/tests/typecheck/should_compile/holes.stderr ===================================== @@ -87,7 +87,6 @@ holes.hs:11:15: warning: [GHC-88464] [-Wtyped-holes (in -Wdefault)] Nothing :: forall a. Maybe a Just :: forall a. a -> Maybe a [] :: forall a. [a] - MkSolo :: forall a. a -> Solo a asTypeOf :: forall a. a -> a -> a id :: forall a. a -> a until :: forall a. (a -> Bool) -> (a -> a) -> a -> a ===================================== testsuite/tests/typecheck/should_compile/holes3.stderr ===================================== @@ -90,7 +90,6 @@ holes3.hs:11:15: error: [GHC-88464] Nothing :: forall a. Maybe a Just :: forall a. a -> Maybe a [] :: forall a. [a] - MkSolo :: forall a. a -> Solo a asTypeOf :: forall a. a -> a -> a id :: forall a. a -> a until :: forall a. (a -> Bool) -> (a -> a) -> a -> a ===================================== testsuite/tests/typecheck/should_compile/valid_hole_fits.stderr ===================================== @@ -1,6 +1,5 @@ [1 of 2] Compiling ValidHoleFits ( ValidHoleFits.hs, ValidHoleFits.o ) [2 of 2] Compiling Foo ( valid_hole_fits.hs, valid_hole_fits.o ) - valid_hole_fits.hs:9:6: warning: [GHC-88464] [-Wdeferred-out-of-scope-variables (in -Wdefault)] Variable not in scope: putStrLn :: String -> IO () Suggested fixes: @@ -148,9 +147,6 @@ valid_hole_fits.hs:34:11: warning: [GHC-88464] [-Wtyped-holes (in -Wdefault)] with Just @Bool (imported from ‘Data.Maybe’ at valid_hole_fits.hs:5:1-17 (and originally defined in ‘GHC.Internal.Maybe’)) - MkSolo :: forall a. a -> Solo a - with MkSolo @Bool - (bound at <wired into compiler>) id :: forall a. a -> a with id @Bool (imported from ‘Prelude’ at valid_hole_fits.hs:3:1-40 @@ -259,3 +255,4 @@ valid_hole_fits.hs:41:8: warning: [GHC-88464] [-Wtyped-holes (in -Wdefault)] with mempty @(String -> IO ()) (imported from ‘Prelude’ at valid_hole_fits.hs:3:1-40 (and originally defined in ‘GHC.Internal.Base’)) + View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e24ac496d08762fbcf309b64cdb8277... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e24ac496d08762fbcf309b64cdb8277... You're receiving this email because of your account on gitlab.haskell.org.