add -Wall -Werror + update for GHC 9.8.2
commitcebcc1949565dc428d03f9bc0bfd3f4b07a8d29d
authorEvan Czaplicki <evancz@users.noreply.github.com>
dateWed 12 Nov 2025, 17:02 (1 year ago)
parentcc73f0d
builder/src/Build.hs+1−1
@@ -17,7 +17,7 @@ module Build
1717
1818import Control.Concurrent (forkIO)
1919import Control.Concurrent.MVar
20−import Control.Monad (filterM, mapM_, sequence_)
20+import Control.Monad (filterM)
2121import qualified Data.ByteString as B
2222import qualified Data.Char as Char
2323import qualified Data.Graph as Graph
builder/src/Deps/Solver.hs−3
@@ -408,9 +408,6 @@ instance Applicative Solver where
408408
409409
410410instance Monad Solver where
411− return a =
412− Solver $ \state ok back _ -> ok state a back
413−
414411 (>>=) (Solver solverA) callback =
415412 Solver $ \state ok back err ->
416413 let
builder/src/Reporting.hs+1−1
@@ -39,7 +39,7 @@ import qualified Elm.ModuleName as ModuleName
3939import qualified Elm.Package as Pkg
4040import qualified Elm.Version as V
4141import qualified Json.Encode as Encode
42−import Reporting.Doc ((<+>), (<>))
42+import Reporting.Doc ((<+>))
4343import qualified Reporting.Doc as D
4444import qualified Reporting.Exit as Exit
4545import qualified Reporting.Exit.Help as Help
builder/src/Reporting/Exit.hs−1
@@ -53,7 +53,6 @@ import qualified Json.Encode as Encode
5353import qualified Json.String as Json
5454import Parse.Primitives (Row, Col)
5555import qualified Reporting.Annotation as A
56−import Reporting.Doc ((<>))
5756import qualified Reporting.Doc as D
5857import qualified Reporting.Error.Import as Import
5958import qualified Reporting.Error.Json as Json
compiler/src/Canonicalize/Expression.hs+1−1
@@ -1,4 +1,4 @@
1−{-# OPTIONS_GHC -Wall #-}
1+{-# OPTIONS_GHC -fno-warn-x-partial #-}
22{-# LANGUAGE OverloadedStrings #-}
33module Canonicalize.Expression
44 ( canonicalize
compiler/src/Data/Name.hs+1−8
@@ -44,14 +44,7 @@ import qualified Data.Coerce as Coerce
4444import qualified Data.List as List
4545import qualified Data.String as Chars
4646import qualified Data.Utf8 as Utf8
47−import GHC.Exts
48− ( Int(I#), Ptr
49− , MutableByteArray#
50− , isTrue#
51− , newByteArray#
52− , sizeofByteArray#
53− , unsafeFreezeByteArray#
54− )
47+import GHC.Exts (Int(I#), Ptr, isTrue#)
5548import GHC.ST (ST(ST), runST)
5649import GHC.Prim
5750import GHC.Word (Word8(W8#))
compiler/src/Data/Utf8.hs+1−13
@@ -47,19 +47,7 @@ import qualified Data.List as List
4747import Foreign.ForeignPtr (touchForeignPtr)
4848import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
4949import Foreign.Ptr (minusPtr, plusPtr)
50−import GHC.Exts
51− ( Int(I#), Ptr(Ptr), Char(C#)
52− , RealWorld
53− , ByteArray#, MutableByteArray#
54− , isTrue#
55− , newByteArray#
56− , unsafeFreezeByteArray#
57− , sizeofByteArray#
58− , copyByteArray#
59− , copyAddrToByteArray#
60− , copyByteArrayToAddr#
61− , writeWord8Array#
62− )
50+import GHC.Exts (Int(I#), Ptr(Ptr), Char(C#), isTrue#)
6351import GHC.IO
6452import GHC.ST (ST(ST), runST)
6553import GHC.Prim
compiler/src/Elm/Compiler/Type.hs+1−1
@@ -1,4 +1,4 @@
1−{-# OPTIONS_GHC -Wall #-}
1+{-# OPTIONS_GHC -fno-warn-incomplete-uni-patterns #-}
22{-# LANGUAGE OverloadedStrings #-}
33module Elm.Compiler.Type
44 ( Type(..)
compiler/src/Elm/Package.hs−2
@@ -1,4 +1,3 @@
1−{-# OPTIONS_GHC -Wall #-}
21{-# LANGUAGE BangPatterns, EmptyDataDecls, FlexibleInstances, UnboxedTuples #-}
32module Elm.Package
43 ( Name(..)
@@ -34,7 +33,6 @@ import qualified Data.Coerce as Coerce
3433import qualified Data.List as List
3534import qualified Data.Map as Map
3635import qualified Data.Name as Name
37−import Data.Monoid ((<>))
3836import qualified Data.Utf8 as Utf8
3937import Data.Word (Word8)
4038import Foreign.Ptr (Ptr, plusPtr, minusPtr)
compiler/src/Generate/Html.hs−1
@@ -7,7 +7,6 @@ module Generate.Html
77
88
99import qualified Data.ByteString.Builder as B
10−import Data.Monoid ((<>))
1110import qualified Data.Name as Name
1211import Text.RawString.QQ (r)
1312
compiler/src/Generate/JavaScript.hs−1
@@ -9,7 +9,6 @@ module Generate.JavaScript
99
1010import Prelude hiding (cycle, print)
1111import qualified Data.ByteString.Builder as B
12−import Data.Monoid ((<>))
1312import qualified Data.List as List
1413import Data.Map ((!))
1514import qualified Data.Map as Map
compiler/src/Generate/JavaScript/Builder.hs−1
@@ -18,7 +18,6 @@ import Prelude hiding (lines)
1818import qualified Data.List as List
1919import qualified Data.ByteString as BS
2020import Data.ByteString.Builder as B
21−import Data.Monoid ((<>))
2221import qualified Generate.JavaScript.Name as Name
2322import Generate.JavaScript.Name (Name)
2423import qualified Json.Encode as Json
compiler/src/Generate/JavaScript/Expression.hs+1
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -fno-warn-x-partial #-}
12{-# LANGUAGE OverloadedStrings #-}
23module Generate.JavaScript.Expression
34 ( generate
compiler/src/Generate/JavaScript/Name.hs−1
@@ -19,7 +19,6 @@ module Generate.JavaScript.Name
1919
2020
2121import qualified Data.ByteString.Builder as B
22−import Data.Monoid ((<>))
2322import qualified Data.Map as Map
2423import qualified Data.Name as Name
2524import qualified Data.Set as Set
compiler/src/Json/Decode.hs+3−6
@@ -119,7 +119,9 @@ instance Functor (Decoder x) where
119119
120120instance Applicative (Decoder x) where
121121 {-# INLINE pure #-}
122− pure = return
122+ pure a =
123+ Decoder $ \_ ok _ ->
124+ ok a
123125
124126 {-# INLINE (<*>) #-}
125127 (<*>) (Decoder decodeFunc) (Decoder decodeArg) =
@@ -135,11 +137,6 @@ instance Applicative (Decoder x) where
135137
136138
137139instance Monad (Decoder x) where
138− {-# INLINE return #-}
139− return a =
140− Decoder $ \_ ok _ ->
141− ok a
142−
143140 {-# INLINE (>>=) #-}
144141 (>>=) (Decoder decodeA) callback =
145142 Decoder $ \ast ok err ->
compiler/src/Json/Encode.hs−1
@@ -28,7 +28,6 @@ import qualified Data.ByteString.Char8 as BSC
2828import qualified Data.ByteString.Builder as B
2929import qualified Data.Map as Map
3030import qualified Data.Scientific as Sci
31−import Data.Monoid ((<>))
3231import qualified Data.Name as Name
3332import qualified Data.Utf8 as Utf8
3433
compiler/src/Nitpick/PatternMatches.hs+1−1
@@ -1,4 +1,4 @@
1−{-# OPTIONS_GHC -Wall #-}
1+{-# OPTIONS_GHC -fno-warn-x-partial #-}
22{-# LANGUAGE OverloadedStrings #-}
33module Nitpick.PatternMatches
44 ( check
compiler/src/Optimize/DecisionTree.hs+1−1
@@ -1,4 +1,4 @@
1−{-# OPTIONS_GHC -Wall #-}
1+{-# OPTIONS_GHC -fno-warn-x-partial #-}
22{-# LANGUAGE OverloadedStrings #-}
33module Optimize.DecisionTree
44 ( DecisionTree(..)
compiler/src/Parse/Primitives.hs+3−6
@@ -82,7 +82,9 @@ instance Functor (Parser x) where
8282
8383instance Applicative.Applicative (Parser x) where
8484 {-# INLINE pure #-}
85− pure = return
85+ pure value =
86+ Parser $ \state _ eok _ _ ->
87+ eok value state
8688
8789 {-# INLINE (<*>) #-}
8890 (<*>) (Parser parserFunc) (Parser parserArg) =
@@ -177,11 +179,6 @@ oowfHelp state cok eok cerr parsers fallback =
177179
178180
179181instance Monad (Parser x) where
180− {-# INLINE return #-}
181− return value =
182− Parser $ \state _ eok _ _ ->
183− eok value state
184−
185182 {-# INLINE (>>=) #-}
186183 (Parser parserA) >>= callback =
187184 Parser $ \state cok eok cerr eerr ->
compiler/src/Reporting/Doc.hs+2−1
@@ -46,7 +46,6 @@ module Reporting.Doc
4646
4747import Prelude hiding (cycle)
4848import qualified Data.List as List
49−import Data.Monoid ((<>))
5049import qualified Data.Name as Name
5150import qualified System.Console.ANSI.Types as Ansi
5251import qualified System.Info as Info
@@ -348,6 +347,8 @@ sgrToStyle sgrs style@(Style bold underline color) =
348347 Ansi.SetSwapForegroundBackground _ -> style
349348 Ansi.SetColor l i c -> Style bold underline (toColor l i c)
350349 Ansi.SetRGBColor _ _ -> style
350+ Ansi.SetPaletteColor _ _ -> style
351+ Ansi.SetDefaultColor _ -> style
351352
352353
353354isBold :: Ansi.ConsoleIntensity -> Bool
compiler/src/Reporting/Error/Canonicalize.hs+1−1
@@ -26,7 +26,7 @@ import qualified Data.Index as Index
2626import qualified Elm.ModuleName as ModuleName
2727import qualified Reporting.Annotation as A
2828import qualified Reporting.Doc as D
29−import Reporting.Doc (Doc, (<+>), (<>))
29+import Reporting.Doc (Doc, (<+>))
3030import qualified Reporting.Render.Code as Code
3131import qualified Reporting.Render.Type as RT
3232import qualified Reporting.Report as Report
compiler/src/Reporting/Error/Docs.hs−1
@@ -16,7 +16,6 @@ import qualified Data.NonEmptyList as NE
1616import Parse.Primitives (Row, Col)
1717import Parse.Symbol (BadOperator(..))
1818import qualified Reporting.Annotation as A
19−import Reporting.Doc ((<>))
2019import qualified Reporting.Doc as D
2120import qualified Reporting.Render.Code as Code
2221import qualified Reporting.Error.Syntax as E
compiler/src/Reporting/Error/Pattern.hs−1
@@ -10,7 +10,6 @@ import qualified Data.List as List
1010
1111import qualified Elm.String as ES
1212import qualified Nitpick.PatternMatches as P
13−import Reporting.Doc ((<>))
1413import qualified Reporting.Doc as D
1514import qualified Reporting.Report as Report
1615import qualified Reporting.Render.Code as Code
compiler/src/Reporting/Error/Type.hs−1
@@ -21,7 +21,6 @@ module Reporting.Error.Type
2121
2222import Prelude hiding (round)
2323import qualified Data.Map as Map
24−import Data.Monoid ((<>))
2524import qualified Data.Name as Name
2625
2726import qualified AST.Canonical as Can
compiler/src/Reporting/Render/Code.hs+1−1
@@ -1,4 +1,4 @@
1−{-# OPTIONS_GHC -Wall #-}
1+{-# OPTIONS_GHC -fno-warn-incomplete-uni-patterns #-}
22{-# LANGUAGE OverloadedStrings #-}
33module Reporting.Render.Code
44 ( Source
compiler/src/Reporting/Render/Type.hs+1−1
@@ -21,7 +21,7 @@ import qualified AST.Source as Src
2121import qualified AST.Canonical as Can
2222import qualified Reporting.Annotation as A
2323import qualified Reporting.Doc as D
24−import Reporting.Doc ( Doc, (<+>), (<>) )
24+import Reporting.Doc (Doc, (<+>))
2525import qualified Reporting.Render.Type.Localizer as L
2626
2727
compiler/src/Reporting/Render/Type/Localizer.hs−1
@@ -17,7 +17,6 @@ import qualified Data.Set as Set
1717
1818import qualified AST.Source as Src
1919import qualified Elm.ModuleName as ModuleName
20−import Reporting.Doc ((<>))
2120import qualified Reporting.Doc as D
2221import qualified Reporting.Annotation as A
2322
compiler/src/Reporting/Result.hs+8−10
@@ -105,10 +105,16 @@ instance Applicative (Result i w e) where
105105 in
106106 kf i w bad1 good1
107107
108+ (*>) (Result ka) (Result kb) =
109+ Result $ \i w bad good ->
110+ let
111+ good1 i1 w1 _ =
112+ kb i1 w1 bad good
113+ in
114+ ka i w bad good1
108115
109−instance Monad (Result i w e) where
110− return = ok
111116
117+instance Monad (Result i w e) where
112118 (>>=) (Result ka) callback =
113119 Result $ \i w bad good ->
114120 let
@@ -118,12 +124,4 @@ instance Monad (Result i w e) where
118124 in
119125 ka i w bad good1
120126
121− (>>) (Result ka) (Result kb) =
122− Result $ \i w bad good ->
123− let
124− good1 i1 w1 _ =
125− kb i1 w1 bad good
126− in
127− ka i w bad good1
128−
129127 -- PERF add INLINE to these?
compiler/src/Reporting/Warning.hs−1
@@ -8,7 +8,6 @@ module Reporting.Warning
88 where
99
1010
11−import Data.Monoid ((<>))
1211import qualified Data.Name as Name
1312
1413import qualified AST.Canonical as Can
compiler/src/Type/Error.hs+1−2
@@ -1,4 +1,4 @@
1−{-# OPTIONS_GHC -Wall #-}
1+{-# OPTIONS_GHC -fno-warn-x-partial #-}
22{-# LANGUAGE OverloadedStrings #-}
33module Type.Error
44 ( Type(..)
@@ -20,7 +20,6 @@ module Type.Error
2020
2121import qualified Data.Map as Map
2222import qualified Data.Maybe as Maybe
23−import Data.Monoid ((<>))
2423import qualified Data.Name as Name
2524
2625import qualified Data.Bag as Bag
compiler/src/Type/Unify.hs+7−11
@@ -88,12 +88,15 @@ instance Applicative Unify where
8888 in
8989 kf vars ok1 err
9090
91+ (*>) (Unify ka) (Unify kb) =
92+ Unify $ \vars ok err ->
93+ let
94+ ok1 vars1 _ = kb vars1 ok err
95+ in
96+ ka vars ok1 err
9197
92−instance Monad Unify where
93− return a =
94− Unify $ \vars ok _ ->
95− ok vars a
9698
99+instance Monad Unify where
97100 (>>=) (Unify ka) callback =
98101 Unify $ \vars ok err ->
99102 let
@@ -103,13 +106,6 @@ instance Monad Unify where
103106 in
104107 ka vars ok1 err
105108
106− (>>) (Unify ka) (Unify kb) =
107− Unify $ \vars ok err ->
108− let
109− ok1 vars1 _ = kb vars1 ok err
110− in
111− ka vars ok1 err
112−
113109
114110register :: IO Variable -> Unify Variable
115111register mkVar =
elm.cabal+1−1
@@ -35,7 +35,7 @@ Flag dev {
3535
3636
3737Executable elm
38− ghc-options: -O2 -rtsopts -threaded "-with-rtsopts=-N -qg -A128m"
38+ ghc-options: -O2 -rtsopts -threaded "-with-rtsopts=-N -qg -A128m" -Wall -Werror
3939 -- add -eventlog for (elm make src/Main.elm +RTS -l; threadscope elm.eventlog)
4040 -- https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/
4141
terminal/impl/Terminal.hs+1
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -fno-warn-x-partial #-}
12module Terminal
23 ( app
34 , Command(..)
terminal/impl/Terminal/Error.hs+1−1
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -fno-warn-x-partial #-}
12{-# LANGUAGE GADTs, OverloadedStrings #-}
23module Terminal.Error
34 ( Error(..)
@@ -12,7 +13,6 @@ module Terminal.Error
1213 where
1314
1415
15−import Data.Monoid ((<>))
1616import qualified Data.List as List
1717import qualified Data.Maybe as Maybe
1818import GHC.IO.Handle (hIsTerminalDevice)
terminal/src/Bump.hs+2−1
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -fno-warn-x-partial #-}
12{-# LANGUAGE OverloadedStrings #-}
23module Bump
34 ( run
@@ -19,7 +20,7 @@ import qualified Elm.Magnitude as M
1920import qualified Elm.Outline as Outline
2021import qualified Elm.Version as V
2122import qualified Http
22−import Reporting.Doc ((<>), (<+>))
23+import Reporting.Doc ((<+>))
2324import qualified Reporting
2425import qualified Reporting.Doc as D
2526import qualified Reporting.Exit as Exit
terminal/src/Develop.hs−1
@@ -12,7 +12,6 @@ import Control.Monad.Trans (MonadIO(liftIO))
1212import qualified Data.ByteString.Builder as B
1313import qualified Data.ByteString as BS
1414import qualified Data.HashMap.Strict as HashMap
15−import Data.Monoid ((<>))
1615import qualified Data.NonEmptyList as NE
1716import qualified System.Directory as Dir
1817import System.FilePath as FP
terminal/src/Develop/Generate/Help.hs−1
@@ -9,7 +9,6 @@ module Develop.Generate.Help
99
1010
1111import qualified Data.ByteString.Builder as B
12−import Data.Monoid ((<>))
1312import qualified Data.Name as Name
1413import Text.RawString.QQ (r)
1514
terminal/src/Diff.hs+1−1
@@ -27,7 +27,7 @@ import qualified Elm.Package as Pkg
2727import qualified Elm.Version as V
2828import qualified Http
2929import qualified Reporting
30−import Reporting.Doc ((<>), (<+>))
30+import Reporting.Doc ((<+>))
3131import qualified Reporting.Doc as D
3232import qualified Reporting.Exit as Exit
3333import qualified Reporting.Exit.Help as Help
terminal/src/Install.hs+1−1
@@ -19,7 +19,7 @@ import qualified Elm.Package as Pkg
1919import qualified Elm.Outline as Outline
2020import qualified Elm.Version as V
2121import qualified Reporting
22−import Reporting.Doc ((<>), (<+>))
22+import Reporting.Doc ((<+>))
2323import qualified Reporting.Doc as D
2424import qualified Reporting.Exit as Exit
2525import qualified Reporting.Task as Task
terminal/src/Main.hs−1
@@ -8,7 +8,6 @@ module Main
88import Prelude hiding (init)
99import qualified Data.List as List
1010import qualified Text.PrettyPrint.ANSI.Leijen as P
11−import Text.PrettyPrint.ANSI.Leijen ((<>))
1211import Text.Read (readMaybe)
1312
1413import qualified Elm.Version as V
terminal/src/Repl.hs+1−2
@@ -1,4 +1,4 @@
1−{-# OPTIONS_GHC -Wall -fno-warn-name-shadowing #-}
1+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-incomplete-uni-patterns #-}
22{-# LANGUAGE OverloadedStrings #-}
33module Repl
44 ( Flags(..)
@@ -29,7 +29,6 @@ import qualified Data.ByteString.UTF8 as BS_UTF8
2929import qualified Data.Char as Char
3030import qualified Data.List as List
3131import qualified Data.Map as Map
32−import Data.Monoid ((<>))
3332import qualified Data.Name as N
3433import qualified System.Console.Haskeline as Repl
3534import qualified System.Directory as Dir