on master help sign in
Add -W flag to many files, mostly getting rid of dead imports
commitc9667767885871dc0d691fe96bb2b844e25dabbb authorEvan Czaplicki <info@elm-lang.org> dateSat 4 Jan 2014, 10:54 (13 years ago) parent270dbf8
15 files changed+40−72
compiler/Build/Dependencies.hs+1−10 compiler/Build/File.hs+1−1 compiler/Build/Source.hs+1−6 compiler/Compiler.hs+2−2 compiler/Generate/Cases.hs+6−6 compiler/InterfaceSerialization.hs+1−2 compiler/Metadata/Prelude.hs+2−5 compiler/Parse/Parse.hs+4−9 compiler/Parse/Pattern.hs+6−8 compiler/Type/Environment.hs+4−4 compiler/Type/ExtraChecks.hs+3−3 compiler/Type/Inference.hs+2−5 compiler/Type/Solve.hs+1−3 compiler/Type/State.hs+3−5 compiler/Type/Unify.hs+3−3
compiler/Build/Dependencies.hs+1−10
@@ -1,12 +1,11 @@
1+{-# OPTIONS_GHC -W #-}
12module Build.Dependencies (getSortedDependencies) where
23
3−import Data.Data
44import Control.Applicative
55import Control.Monad.Error
66import qualified Control.Monad.State as State
77import qualified Data.Aeson as Json
88import qualified Data.ByteString.Lazy.Char8 as BSC
9−import qualified Data.Char as Char
109import qualified Data.Graph as Graph
1110import qualified Data.List as List
1211import qualified Data.Map as Map
@@ -16,19 +15,11 @@ import System.Directory
1615import System.Exit
1716import System.FilePath as FP
1817import System.IO
19−import Text.PrettyPrint (Doc)
2018
2119import qualified SourceSyntax.Module as Module
22−import qualified SourceSyntax.Type as Type
2320import qualified Parse.Parse as Parse
24−import qualified Transform.Check as Check
25−import qualified Transform.SortDefinitions as SD
26−import qualified Type.Inference as TI
27−import qualified Type.Constrain.Declaration as TcDecl
28−import qualified Transform.Canonicalize as Canonical
2921import qualified Elm.Internal.Paths as Path
3022import qualified Elm.Internal.Name as N
31−import qualified Elm.Internal.Version as V
3223import qualified Elm.Internal.Dependencies as Deps
3324
3425getSortedDependencies :: [FilePath] -> Module.Interfaces -> FilePath -> IO [String]
compiler/Build/File.hs+1−1
@@ -1,8 +1,8 @@
1+{-# OPTIONS_GHC -W #-}
12module Build.File (build) where
23
34import Control.Monad (when)
45import qualified Data.Binary as Binary
5−import qualified Data.List as List
66import qualified Data.Map as Map
77import System.Directory
88import System.Exit
compiler/Build/Source.hs+1−6
@@ -1,13 +1,8 @@
1+{-# OPTIONS_GHC -W #-}
12module Build.Source (build) where
23
3−import Data.Data
4−import Control.Monad.State
5−import qualified Data.Graph as Graph
6−import qualified Data.List as List
74import qualified Data.Map as Map
85import qualified Data.Set as Set
9−import System.Directory
10−import System.Exit
116import System.FilePath as FP
127import Text.PrettyPrint (Doc)
138
compiler/Compiler.hs+2−2
@@ -1,7 +1,7 @@
1+{-# OPTIONS_GHC -W #-}
12module Main where
23
34import Control.Monad (foldM)
4−import qualified Data.Map as Map
55import qualified Data.Maybe as Maybe
66import Text.Blaze.Html.Renderer.String (renderHtml)
77import qualified Data.ByteString.Lazy.Char8 as BS
@@ -37,7 +37,7 @@ build flags rootFile =
3737 then getSortedDependencies (Flag.src_dir flags) builtIns rootFile
3838 else return [rootFile]
3939
40− (moduleName, interfaces) <-
40+ (moduleName, _) <-
4141 File.build flags (length files) builtIns "" files
4242
4343 js <- foldM appendToOutput BS.empty files
compiler/Generate/Cases.hs+6−6
@@ -1,9 +1,9 @@
11module Generate.Cases (toMatch, Match (..), Clause (..), matchSubst, newVar) where
22
3−import Control.Applicative ((<$>),(<*>))
4−import Control.Arrow (first,second)
3+import Control.Applicative ((<$>))
4+import Control.Arrow (first)
55import Control.Monad.State
6−import Data.List (groupBy,sortBy,lookup)
6+import Data.List (groupBy,sortBy)
77import Data.Maybe (fromMaybe)
88
99import SourceSyntax.Location
@@ -47,7 +47,7 @@ matchSubst pairs (Match n cs m) =
4747 clauseSubst (Clause c vs m) =
4848 Clause c (map varSubst vs) (matchSubst pairs m)
4949
50−isCon (p:ps, e) =
50+isCon (p:_, _) =
5151 case p of
5252 PData _ _ -> True
5353 PLiteral _ -> True
@@ -75,7 +75,7 @@ dealias v c@(p:ps, L s e) =
7575matchVar :: [String] -> [([Pattern],LExpr)] -> Match -> State Int Match
7676matchVar (v:vs) cs def = match vs (map subVar cs) def
7777 where
78− subVar (p:ps, ce@(L s e)) = (ps, L s $ subOnePattern p e)
78+ subVar (p:ps, (L s e)) = (ps, L s $ subOnePattern p e)
7979 where
8080 subOnePattern pattern e =
8181 case pattern of
@@ -109,7 +109,7 @@ matchClause :: Either String Literal
109109 -> [([Pattern],LExpr)]
110110 -> Match
111111 -> State Int Clause
112−matchClause c (v:vs) cs def =
112+matchClause c (_:vs) cs def =
113113 do vs' <- getVars
114114 Clause c vs' <$> match (vs' ++ vs) (map flatten cs) def
115115 where
compiler/InterfaceSerialization.hs+1−2
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -W #-}
12module InterfaceSerialization ( loadInterface
23 , interfaceDecode
34 , validVersion
@@ -8,8 +9,6 @@ import qualified Data.Binary as Binary
89
910import qualified Elm.Internal.Version as Version
1011import System.Directory (doesFileExist)
11−import System.IO (hPutStrLn, stderr)
12−import System.Exit (exitFailure)
1312
1413import SourceSyntax.Module
1514
compiler/Metadata/Prelude.hs+2−5
@@ -1,15 +1,12 @@
1+{-# OPTIONS_GHC -W #-}
12module Metadata.Prelude (interfaces, add) where
23
34import qualified Data.Map as Map
45import qualified Control.Exception as E
56import qualified Paths_Elm as Path
6−import System.Directory
77import System.Exit
8−import System.FilePath
98import System.IO
109import SourceSyntax.Module
11−import qualified Data.Binary as Binary
12−import qualified Data.ByteString.Lazy as BS
1310
1411import qualified InterfaceSerialization as IS
1512
@@ -20,7 +17,7 @@ add noPrelude (Module name exs ims decls) = Module name exs (customIms ++ ims) d
2017
2118 addModule (n, method) = case lookup n ims of
2219 Nothing -> [(n, method)]
23− Just (As m) -> [(n, method)]
20+ Just (As _) -> [(n, method)]
2421 Just _ -> []
2522
2623prelude :: [(String, ImportMethod)]
compiler/Parse/Parse.hs+4−9
@@ -1,21 +1,16 @@
1+{-# OPTIONS_GHC -W #-}
12module Parse.Parse (program, dependencies) where
23
34import Control.Applicative ((<$>), (<*>))
4−import Control.Monad
5−import Data.Char (isSymbol, isDigit)
6−import Data.List (foldl',intercalate)
5+import qualified Data.List as List
76import qualified Data.Map as Map
87import Text.Parsec hiding (newline,spaces)
98import qualified Text.PrettyPrint as P
109
11−import qualified SourceSyntax.Expression as E
1210import qualified SourceSyntax.Declaration as D
1311import qualified SourceSyntax.Module as M
1412import Parse.Helpers
15−import Parse.Binop (OpTable)
16−import Parse.Expression
1713import Parse.Declaration (infixDecl)
18−import Parse.Type
1914import Parse.Module
2015import qualified Parse.Declaration as Decl
2116import Transform.Declaration (combineAnnotations)
@@ -45,7 +40,7 @@ programParser =
4540
4641dependencies :: String -> Either [P.Doc] (String, [String])
4742dependencies =
48− let getName = intercalate "." . fst in
43+ let getName = List.intercalate "." . fst in
4944 setupParser $ do
5045 optional freshLine
5146 (,) <$> option "Main" (getName <$> moduleDef `followedBy` freshLine)
@@ -64,7 +59,7 @@ setupParserWithTable table p source =
6459 msg overlap =
6560 P.vcat [ P.text "Parse error:"
6661 , P.text $ "Overlapping definitions for infix operators: " ++
67− intercalate " " (Map.keys overlap)
62+ List.intercalate " " (Map.keys overlap)
6863 ]
6964
7065parseFixities = do
compiler/Parse/Pattern.hs+6−8
@@ -1,13 +1,10 @@
1−
1+{-# OPTIONS_GHC -W #-}
22module Parse.Pattern (term, expr) where
33
4−import Control.Applicative ((<$>),(<*>),pure)
5−import Control.Monad
6−import Control.Monad.State
4+import Control.Applicative ((<$>))
75import Data.Char (isUpper)
86import Data.List (intercalate)
97import Text.Parsec hiding (newline,spaces,State)
10−import Text.Parsec.Indent
118
129import Parse.Helpers
1310import Parse.Literal
@@ -20,9 +17,10 @@ basic = choice
2017 [ char '_' >> return PAnything
2118 , do v <- var
2219 return $ case v of
23− "True" -> PLiteral (Boolean True)
24− "False" -> PLiteral (Boolean False)
25− c : _ -> if isUpper c then PData v [] else PVar v
20+ "True" -> PLiteral (Boolean True)
21+ "False" -> PLiteral (Boolean False)
22+ c:_ | isUpper c -> PData v []
23+ _ -> PVar v
2624 , PLiteral <$> literal
2725 ]
2826
compiler/Type/Environment.hs+4−4
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -W #-}
12module Type.Environment where
23
34import Control.Applicative ((<$>), (<*>))
@@ -9,7 +10,6 @@ import qualified Control.Monad.State as State
910import qualified Data.Traversable as Traverse
1011import qualified Data.Map as Map
1112import Data.List (isPrefixOf)
12−import qualified Data.UnionFind.IO as UF
1313import qualified Text.PrettyPrint as PP
1414
1515import qualified SourceSyntax.Type as Src
@@ -44,7 +44,7 @@ makeTypes datatypes =
4444 where
4545 nameAndKind (name, tvars, _, _) = (name, length tvars)
4646
47− makeCtor (name, kind) = do
47+ makeCtor (name, _) = do
4848 ctor <- VarN <$> namedVar Constant name
4949 return (name, ctor)
5050
@@ -84,7 +84,7 @@ makeConstructors env datatypes = Map.fromList builtins
8484
8585
8686ctorToType :: Environment -> ADT -> [ (String, IO (Int, [Variable], [Type], Type)) ]
87−ctorToType env (name, tvars, ctors, derivations) =
87+ctorToType env (name, tvars, ctors, _) =
8888 zip (map fst ctors) (map inst ctors)
8989 where
9090 inst :: (String, [Src.Type]) -> IO (Int, [Variable], [Type], Type)
@@ -94,7 +94,7 @@ ctorToType env (name, tvars, ctors, derivations) =
9494
9595
9696 go :: (String, [Src.Type]) -> State.StateT (VarDict, TypeDict) IO ([Type], Type)
97− go (ctor, args) = do
97+ go (_, args) = do
9898 types <- mapM (instantiator env) args
9999 returnType <- instantiator env (Src.Data name (map Src.Var tvars))
100100 return (types, returnType)
compiler/Type/ExtraChecks.hs+3−3
@@ -1,7 +1,8 @@
1+{-# OPTIONS_GHC -W #-}
2+module Type.ExtraChecks (extraChecks, occursCheck) where
13-- This module contains checks to be run *after* type inference has
24-- completed successfully. At that point we still need to do occurs
35-- checks and ensure that `main` has an acceptable type.
4−module Type.ExtraChecks (extraChecks, occursCheck) where
56
67import Control.Applicative ((<$>),(<*>))
78import Control.Monad.State
@@ -14,7 +15,6 @@ import Text.PrettyPrint as P
1415import SourceSyntax.PrettyPrint (pretty)
1516import SourceSyntax.Type (Type)
1617import qualified SourceSyntax.Location as Location
17−import qualified SourceSyntax.Expression as Expr
1818import qualified Data.Traversable as Traverse
1919
2020extraChecks :: Alias.Rules -> TS.Env -> IO (Either [P.Doc] (Map.Map String Type))
@@ -47,7 +47,7 @@ occursCheck (name, variable) =
4747 case structure desc of
4848 Nothing ->
4949 modify $ \state -> state { TS.sErrors = fallback : TS.sErrors state }
50− Just struct ->
50+ Just _ ->
5151 do liftIO $ UF.setDescriptor var (desc { structure = Nothing })
5252 var' <- liftIO $ UF.fresh desc
5353 TS.addError (Location.NoSpan name) (Just msg) var var'
compiler/Type/Inference.hs+2−5
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -W #-}
12module Type.Inference where
23
34import qualified Data.Map as Map
@@ -5,20 +6,16 @@ import qualified Data.Map as Map
56import qualified Type.Type as T
67import qualified Type.Environment as Env
78import qualified Type.Constrain.Expression as TcExpr
8−import qualified Type.Constrain.Declaration as TcDecl
99import qualified Type.Solve as Solve
1010
1111import SourceSyntax.Module as Module
12−import qualified SourceSyntax.Expression as Expr
13−import SourceSyntax.Location (Located, noneNoDocs)
14−import SourceSyntax.PrettyPrint
12+import SourceSyntax.Location (noneNoDocs)
1513import SourceSyntax.Type (Type)
1614import Text.PrettyPrint
1715import qualified Type.State as TS
1816import Type.ExtraChecks (extraChecks)
1917import Control.Monad.State (execStateT, forM)
2018import Control.Monad.Error (runErrorT, liftIO)
21−import Control.Arrow (second)
2219import qualified Type.Alias as Alias
2320
2421import System.IO.Unsafe -- Possible to switch over to the ST monad instead of
compiler/Type/Solve.hs+1−3
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -W #-}
12module Type.Solve (solve) where
23
34import Control.Monad
@@ -5,14 +6,11 @@ import Control.Monad.State
56import qualified Data.UnionFind.IO as UF
67import qualified Data.Map as Map
78import qualified Data.Traversable as Traversable
8−import qualified Data.Maybe as Maybe
99import qualified Data.List as List
1010import Type.Type
1111import Type.Unify
1212import qualified Type.ExtraChecks as EC
13−import qualified Type.Environment as Env
1413import qualified Type.State as TS
15−import qualified Text.PrettyPrint as P
1614import SourceSyntax.Location (Located(L), SrcSpan)
1715
1816
compiler/Type/State.hs+3−5
@@ -1,9 +1,8 @@
1+{-# OPTIONS_GHC -W #-}
12module Type.State where
23
34import Type.Type
45import qualified Data.Map as Map
5−import qualified Data.List as List
6−import qualified Type.Environment as Env
76import qualified Data.UnionFind.IO as UF
87import Control.Monad.State
98import Control.Applicative ((<$>),(<*>), Applicative)
@@ -11,7 +10,6 @@ import qualified Data.Traversable as Traversable
1110import Text.PrettyPrint as P
1211import SourceSyntax.PrettyPrint
1312import SourceSyntax.Location
14−import qualified SourceSyntax.Type as Src
1513import qualified Type.Alias as Alias
1614
1715-- Pool
@@ -64,8 +62,8 @@ addError span hint t1 t2 =
6462 ]
6563
6664 location = case span of
67− NoSpan msg -> ""
68− Span p1 p2 msg ->
65+ NoSpan _ -> ""
66+ Span p1 p2 _ ->
6967 if line p1 == line p2 then " on line " ++ show (line p1)
7068 else " between lines " ++ show (line p1) ++ " and " ++ show (line p2)
7169
compiler/Type/Unify.hs+3−3
@@ -1,3 +1,4 @@
1+{-# OPTIONS_GHC -W #-}
12module Type.Unify (unify) where
23
34import Type.Type
@@ -5,7 +6,6 @@ import qualified Data.UnionFind.IO as UF
56import qualified Data.Map as Map
67import qualified Data.Maybe as Maybe
78import qualified Type.State as TS
8−import Control.Arrow (first,second)
99import Control.Monad.State
1010import SourceSyntax.Location
1111import Type.PrettyPrint
@@ -193,8 +193,8 @@ actuallyUnify span variable1 variable2 = do
193193
194194 unmerged a b = Map.filter (not . null) $ Map.union (Map.intersectionWith eat a b) a
195195
196− eat (x:xs) (y:ys) = eat xs ys
197− eat xs ys = xs
196+ eat (_:xs) (_:ys) = eat xs ys
197+ eat xs _ = xs
198198
199199 _ -> TS.addError span Nothing variable1 variable2
200200