diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml index cf62a58..423350a 100644 --- a/.github/workflows/haskell-ci.yml +++ b/.github/workflows/haskell-ci.yml @@ -8,9 +8,9 @@ # # For more information, see https://github.com/haskell-CI/haskell-ci # -# version: 0.19.20251105 +# version: 0.19.20260331 # -# REGENDATA ("0.19.20251105",["github","--config=cabal.haskell-ci","cabal.project"]) +# REGENDATA ("0.19.20260331",["github","--config=cabal.haskell-ci","cabal.project"]) # name: Haskell-CI on: @@ -23,6 +23,8 @@ on: merge_group: branches: - master + workflow_dispatch: + {} jobs: linux: name: Haskell-CI - Linux - ${{ matrix.compiler }} @@ -35,19 +37,19 @@ jobs: strategy: matrix: include: - - compiler: ghc-9.12.2 + - compiler: ghc-9.14.1 compilerKind: ghc - compilerVersion: 9.12.2 + compilerVersion: 9.14.1 setup-method: ghcup allow-failure: false - - compiler: ghc-9.10.3 + - compiler: ghc-9.12.4 compilerKind: ghc - compilerVersion: 9.10.3 + compilerVersion: 9.12.4 setup-method: ghcup allow-failure: false - - compiler: ghc-9.8.4 + - compiler: ghc-9.10.3 compilerKind: ghc - compilerVersion: 9.8.4 + compilerVersion: 9.10.3 setup-method: ghcup allow-failure: false fail-fast: false @@ -171,6 +173,10 @@ jobs: echo "package ghc-tags" >> cabal.project echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project cat >> cabal.project <=4.19 && <4.22 + build-depends: base >=4.20 && <4.23 , aeson >= 2.0.0.0 , async >= 2.2.5 , attoparsec diff --git a/src/GhcTags/Ghc.hs b/src/GhcTags/Ghc.hs index 17e95b8..b6bd045 100644 --- a/src/GhcTags/Ghc.hs +++ b/src/GhcTags/Ghc.hs @@ -399,8 +399,8 @@ hsDeclsToGhcTags mies = foldr go [] mkHsConDeclGADTDetails decLoc tyName (RecConGADT _ (L _ fields)) = foldr f [] fields where - f :: LConDeclField GhcPs -> [GhcTag] -> [GhcTag] - f (L _ ConDeclField { cd_fld_names }) ts = ts ++ map g cd_fld_names + f :: LHsConDeclRecField GhcPs -> [GhcTag] -> [GhcTag] + f (L _ HsConDeclRecField { cdrf_names }) ts = ts ++ map g cdrf_names g :: LFieldOcc GhcPs -> GhcTag g (L _ FieldOcc { foLabel }) = @@ -415,8 +415,8 @@ hsDeclsToGhcTags mies = foldr go [] mkHsConDeclH98Details decLoc tyName (RecCon (L _ fields)) = foldr f [] fields where - f :: LConDeclField GhcPs -> [GhcTag] -> [GhcTag] - f (L _ ConDeclField { cd_fld_names }) ts = ts ++ map g cd_fld_names + f :: LHsConDeclRecField GhcPs -> [GhcTag] -> [GhcTag] + f (L _ HsConDeclRecField { cdrf_names }) ts = ts ++ map g cdrf_names g :: LFieldOcc GhcPs -> GhcTag g (L _ FieldOcc { foLabel }) = @@ -450,7 +450,9 @@ hsDeclsToGhcTags mies = foldr go [] PatSynBind _ PSB { psb_id, psb_args } -> mkGhcTag' decLoc psb_id GtkPatternSynonym : case psb_args of RecCon fields -> - let fldLabel = foLabel . recordPatSynField + let fldLabel fld = case recordPatSynField fld of + FieldOcc _ label -> label + XFieldOcc _ -> error "can't happen" in map (\fld -> mkGhcTag' decLoc (fldLabel fld) GtkRecordField) fields _ -> [] @@ -479,6 +481,7 @@ hsDeclsToGhcTags mies = foldr go [] mkSigTags _ InlineSig {} = [] -- SPECIALISE pragmas mkSigTags _ SpecSig {} = [] + mkSigTags _ SpecSigE {} = [] mkSigTags _ SpecInstSig {} = [] -- MINIMAL pragma mkSigTags _ MinimalSig {} = [] diff --git a/src/GhcTags/GhcCompat.hs b/src/GhcTags/GhcCompat.hs index d6015ed..54bf6c4 100644 --- a/src/GhcTags/GhcCompat.hs +++ b/src/GhcTags/GhcCompat.hs @@ -20,6 +20,7 @@ import GHC.Settings.Config import GHC.Settings.Utils import GHC.SysTools.BaseDir import GHC.Types.SrcLoc +import GHC.Unit.Types import GHC.Utils.Fingerprint import GHC.Utils.TmpFs import System.Directory @@ -169,6 +170,11 @@ compatInitSettings top_dir = do , fileSettings_globalPackageDatabase = globalpkgdb_path } + , sUnitSettings = UnitSettings + { + unitSettings_baseUnitId = stringToUnitId "" + } + , sToolSettings = ToolSettings { toolSettings_ldSupportsCompactUnwind = ldSupportsCompactUnwind , toolSettings_ldSupportsFilelist = ldSupportsFilelist