Skip to content

Commit a12426f

Browse files
committed
Add -Werror=incomplete-pattenrs for GHC>=9.0
1 parent eaa5a23 commit a12426f

File tree

14 files changed

+43
-1
lines changed

14 files changed

+43
-1
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,10 @@ jobs:
229229
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
230230
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package cabal-install-parsers" >> cabal.project ; fi
231231
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
232+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package haskell-ci" >> cabal.project ; fi
233+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
234+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package cabal-install-parsers" >> cabal.project ; fi
235+
if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
232236
cat >> cabal.project <<EOF
233237
allow-newer: ShellCheck:filepath
234238

cabal-install-parsers/test/Golden.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,4 @@ instance ToExpr Doc where
6565
instance ToExpr (PrettyField ann) where
6666
toExpr (PrettyField _ fn d) = App "PrettyField" [toExpr fn, toExpr d]
6767
toExpr (PrettySection _ fn ds ps) = App "PrettySection" [toExpr fn, toExpr ds, toExpr ps]
68+
toExpr PrettyEmpty = App "PrettyEmpty" []

fixtures/all-versions.github

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,8 @@ jobs:
445445
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
446446
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
447447
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
448+
if [ $((! GHCJSARITH && HCNUMVER >= 90000)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
449+
if [ $((! GHCJSARITH && HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
448450
cat >> cabal.project <<EOF
449451
EOF
450452
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(splitmix)$/; }' >> cabal.project.local

fixtures/doctest-version.github

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,8 @@ jobs:
460460
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
461461
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
462462
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
463+
if [ $((! GHCJSARITH && HCNUMVER >= 90000)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
464+
if [ $((! GHCJSARITH && HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
463465
cat >> cabal.project <<EOF
464466
EOF
465467
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(splitmix)$/; }' >> cabal.project.local

fixtures/doctest.github

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,8 @@ jobs:
460460
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
461461
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
462462
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
463+
if [ $((! GHCJSARITH && HCNUMVER >= 90000)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
464+
if [ $((! GHCJSARITH && HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
463465
cat >> cabal.project <<EOF
464466
EOF
465467
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(splitmix)$/; }' >> cabal.project.local

fixtures/empty-line.github

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,14 @@ jobs:
302302
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
303303
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-server" >> cabal.project ; fi
304304
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
305+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant" >> cabal.project ; fi
306+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
307+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-client" >> cabal.project ; fi
308+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
309+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-docs" >> cabal.project ; fi
310+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
311+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-server" >> cabal.project ; fi
312+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
305313
cat >> cabal.project <<EOF
306314
constraints: foundatiion >= 0.14
307315
allow-newer: servant-js:servant

fixtures/enabled-jobs.github

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,8 @@ jobs:
445445
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
446446
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
447447
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
448+
if [ $((! GHCJSARITH && HCNUMVER >= 90000)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
449+
if [ $((! GHCJSARITH && HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
448450
cat >> cabal.project <<EOF
449451
EOF
450452
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(splitmix)$/; }' >> cabal.project.local

fixtures/messy.github

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,14 @@ jobs:
303303
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
304304
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-server" >> cabal.project ; fi
305305
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
306+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant" >> cabal.project ; fi
307+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
308+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-client" >> cabal.project ; fi
309+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
310+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-docs" >> cabal.project ; fi
311+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
312+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-server" >> cabal.project ; fi
313+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
306314
cat >> cabal.project <<EOF
307315
EOF
308316
if $HEADHACKAGE; then

haskell-ci.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: 2.2
22
name: haskell-ci
3-
version: 0.19.20250708
3+
version: 0.19.20250710
44
synopsis: Haskell CI script generator
55
description:
66
Script generator (@haskell-ci@) for

src/HaskellCI/Config/Grammar.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,8 @@ configGrammar = Config
165165
^^^ metahelp "PKGSCOPE" "Insert -Werror=missing-methods for package scope (none, local, all)"
166166
<*> rangeField "error-unused-packages" (field @"cfgErrorUnusedPkgs") defaultConfig
167167
^^^ metahelp "RANGE" "Insert -Werror=unused-packages"
168+
<*> rangeField "error-incomplete-patterns" (field @"cfgErrorIncompletePatterns") defaultConfig
169+
^^^ metahelp "RANGE" "Insert -Werror=incomplete-(uni-)patterns"
168170
<*> blurFieldGrammar (field @"cfgDoctest") doctestConfigGrammar defaultConfig
169171
<*> blurFieldGrammar (field @"cfgDocspec") docspecConfigGrammar defaultConfig
170172
<*> pure [] -- constraint sets

0 commit comments

Comments
 (0)