git.iko.soy/typeable/servant
on master help sign in
Merge pull request #234 from haskell-servant/jkarni/werror
c4561b4Julian Arni
.travis.yml+1−1
@@ -19,7 +19,7 @@ install:
19
19
20script:
20script:
21 - stack setup
21 - stack setup
22− - stack build
22+ - stack build --ghc-options "-Werror"
23 - stack test
23 - stack test
24
24
25cache:
25cache:
servant-docs/servant-docs.cabal+1
@@ -65,6 +65,7 @@ executable greet-docs
65test-suite spec
65test-suite spec
66 type: exitcode-stdio-1.0
66 type: exitcode-stdio-1.0
67 main-is: Spec.hs
67 main-is: Spec.hs
68+ other-modules: Servant.DocsSpec
68 hs-source-dirs: test
69 hs-source-dirs: test
69 ghc-options: -Wall
70 ghc-options: -Wall
70 build-depends:
71 build-depends:
servant-docs/src/Servant/Docs/Internal.hs+10−8
@@ -23,19 +23,21 @@ module Servant.Docs.Internal where
23
23
24import Control.Applicative
24import Control.Applicative
25import Control.Arrow (second)
25import Control.Arrow (second)
26−import Control.Lens hiding (List, to, from)
26+import Control.Lens (makeLenses, over, traversed, (%~),
27+ (&), (.~), (<>~), (^.), _1, _2,
28+ _last, (|>))
27import qualified Control.Monad.Omega as Omega
29import qualified Control.Monad.Omega as Omega
28import Data.ByteString.Conversion (ToByteString, toByteString)
30import Data.ByteString.Conversion (ToByteString, toByteString)
29import Data.ByteString.Lazy.Char8 (ByteString)
31import Data.ByteString.Lazy.Char8 (ByteString)
30import qualified Data.CaseInsensitive as CI
32import qualified Data.CaseInsensitive as CI
31−import Data.Hashable
33+import Data.Hashable (Hashable)
32import Data.HashMap.Strict (HashMap)
34import Data.HashMap.Strict (HashMap)
33import Data.List
35import Data.List
34import Data.Maybe
36import Data.Maybe
35import Data.Monoid
37import Data.Monoid
36import Data.Ord (comparing)
38import Data.Ord (comparing)
37−import Data.Proxy
39+import Data.Proxy (Proxy(Proxy))
38−import Data.String.Conversions
40+import Data.String.Conversions (cs)
39import Data.Text (Text, pack, unpack)
41import Data.Text (Text, pack, unpack)
40import GHC.Exts (Constraint)
42import GHC.Exts (Constraint)
41import GHC.Generics
43import GHC.Generics
@@ -494,9 +496,9 @@ sampleByteStrings
494 -> Proxy a
496 -> Proxy a
495 -> [(Text, M.MediaType, ByteString)]
497 -> [(Text, M.MediaType, ByteString)]
496sampleByteStrings ctypes@Proxy Proxy =
498sampleByteStrings ctypes@Proxy Proxy =
497− let samples = toSamples (Proxy :: Proxy a)
499+ let samples' = toSamples (Proxy :: Proxy a)
498 enc (t, s) = uncurry (t,,) <$> allMimeRender ctypes s
500 enc (t, s) = uncurry (t,,) <$> allMimeRender ctypes s
499− in concatMap enc samples
501+ in concatMap enc samples'
500
502
501-- | Generate a list of 'MediaType' values describing the content types
503-- | Generate a list of 'MediaType' values describing the content types
502-- accepted by an API component.
504-- accepted by an API component.
@@ -640,10 +642,10 @@ markdown api = unlines $
640
642
641 rqbodyStr :: [M.MediaType] -> [(M.MediaType, ByteString)]-> [String]
643 rqbodyStr :: [M.MediaType] -> [(M.MediaType, ByteString)]-> [String]
642 rqbodyStr [] [] = []
644 rqbodyStr [] [] = []
643− rqbodyStr types samples =
645+ rqbodyStr types s =
644 ["#### Request:", ""]
646 ["#### Request:", ""]
645 <> formatTypes types
647 <> formatTypes types
646− <> concatMap formatBody samples
648+ <> concatMap formatBody s
647
649
648 formatTypes [] = []
650 formatTypes [] = []
649 formatTypes ts = ["- Supported content types are:", ""]
651 formatTypes ts = ["- Supported content types are:", ""]
servant-examples/hackage/hackage.hs+1
@@ -2,6 +2,7 @@
2{-# LANGUAGE DeriveGeneric #-}
2{-# LANGUAGE DeriveGeneric #-}
3{-# LANGUAGE OverloadedStrings #-}
3{-# LANGUAGE OverloadedStrings #-}
4{-# LANGUAGE TypeOperators #-}
4{-# LANGUAGE TypeOperators #-}
5+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
5import Control.Applicative
6import Control.Applicative
6import Control.Monad
7import Control.Monad
7import Control.Monad.IO.Class
8import Control.Monad.IO.Class
servant-examples/servant-examples.cabal+6
@@ -20,6 +20,7 @@ source-repository head
20executable tutorial
20executable tutorial
21 main-is: tutorial.hs
21 main-is: tutorial.hs
22 other-modules: T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
22 other-modules: T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
23+ ghc-options: -Wall -fno-warn-unused-binds -fno-warn-name-shadowing -fno-warn-orphans -fno-warn-unused-imports
23 build-depends:
24 build-depends:
24 aeson >= 0.8
25 aeson >= 0.8
25 , base >= 4.7 && < 5
26 , base >= 4.7 && < 5
@@ -45,8 +46,10 @@ executable tutorial
45
46
46executable t8-main
47executable t8-main
47 main-is: t8-main.hs
48 main-is: t8-main.hs
49+ other-modules: T3, T8
48 hs-source-dirs: tutorial
50 hs-source-dirs: tutorial
49 default-language: Haskell2010
51 default-language: Haskell2010
52+ ghc-options: -Wall -fno-warn-unused-binds -fno-warn-name-shadowing
50 build-depends:
53 build-depends:
51 aeson
54 aeson
52 , base >= 4.7 && < 5
55 , base >= 4.7 && < 5
@@ -86,6 +89,7 @@ executable wai-middleware
86
89
87executable auth-combinator
90executable auth-combinator
88 main-is: auth-combinator.hs
91 main-is: auth-combinator.hs
92+ ghc-options: -Wall -fno-warn-unused-binds -fno-warn-name-shadowing
89 build-depends:
93 build-depends:
90 aeson >= 0.8
94 aeson >= 0.8
91 , base >= 4.7 && < 5
95 , base >= 4.7 && < 5
@@ -101,6 +105,8 @@ executable auth-combinator
101
105
102executable socket-io-chat
106executable socket-io-chat
103 main-is: socket-io-chat.hs
107 main-is: socket-io-chat.hs
108+ ghc-options: -Wall -fno-warn-unused-binds -fno-warn-name-shadowing
109+ other-modules: Chat
104 build-depends:
110 build-depends:
105 aeson >= 0.8
111 aeson >= 0.8
106 , base >= 4.7 && < 5
112 , base >= 4.7 && < 5
servant-examples/tutorial/T8.hs−1
@@ -4,7 +4,6 @@
4module T8 where
4module T8 where
5
5
6import Control.Monad.Trans.Except
6import Control.Monad.Trans.Except
7−import Data.Aeson
8import Servant
7import Servant
9import Servant.Client
8import Servant.Client
10
9
servant-examples/tutorial/T9.hs−1
@@ -13,7 +13,6 @@ import GHC.Generics
13import Network.Wai
13import Network.Wai
14import Servant
14import Servant
15import Servant.JS
15import Servant.JS
16−import Servant.JS.JQuery
17import System.Random
16import System.Random
18
17
19import qualified Data.Text as T
18import qualified Data.Text as T
servant-foreign/src/Servant/Foreign.hs+5−2
@@ -3,8 +3,10 @@
3{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE DataKinds #-}
4{-# LANGUAGE FlexibleContexts #-}
4{-# LANGUAGE FlexibleContexts #-}
5{-# LANGUAGE FlexibleInstances #-}
5{-# LANGUAGE FlexibleInstances #-}
6−{-# LANGUAGE MultiParamTypeClasses #-}
6+#if !MIN_VERSION_base(4,8,0)
7{-# LANGUAGE NullaryTypeClasses #-}
7{-# LANGUAGE NullaryTypeClasses #-}
8+#endif
9+{-# LANGUAGE MultiParamTypeClasses #-}
8{-# LANGUAGE ScopedTypeVariables #-}
10{-# LANGUAGE ScopedTypeVariables #-}
9{-# LANGUAGE TemplateHaskell #-}
11{-# LANGUAGE TemplateHaskell #-}
10{-# LANGUAGE TypeFamilies #-}
12{-# LANGUAGE TypeFamilies #-}
@@ -47,7 +49,8 @@ module Servant.Foreign
47#if !MIN_VERSION_base(4,8,0)
49#if !MIN_VERSION_base(4,8,0)
48import Control.Applicative
50import Control.Applicative
49#endif
51#endif
50−import Control.Lens hiding (List)
52+import Control.Lens (makeLenses, (%~), (&), (.~),
53+ (<>~), _last)
51import Data.Char (toLower, toUpper)
54import Data.Char (toLower, toUpper)
52import Data.List
55import Data.List
53import Data.Proxy
56import Data.Proxy
servant-js/servant-js.cabal+3
@@ -77,6 +77,9 @@ test-suite spec
77 hs-source-dirs: test
77 hs-source-dirs: test
78 ghc-options: -Wall
78 ghc-options: -Wall
79 main-is: Spec.hs
79 main-is: Spec.hs
80+ other-modules:
81+ Servant.JSSpec
82+ Servant.JSSpec.CustomHeaders
80 build-depends: base
83 build-depends: base
81 , hspec >= 2.1.8
84 , hspec >= 2.1.8
82 , hspec-expectations
85 , hspec-expectations
servant-js/src/Servant/JS/Internal.hs+2−2
@@ -29,9 +29,9 @@ module Servant.JS.Internal
29 , Get
29 , Get
30 , Raw
30 , Raw
31 , Header
31 , Header
32− ) where
32+ ) where
33
33
34−import Control.Lens hiding (List)
34+import Control.Lens ((^.))
35import qualified Data.CharSet as Set
35import qualified Data.CharSet as Set
36import qualified Data.CharSet.Unicode.Category as Set
36import qualified Data.CharSet.Unicode.Category as Set
37import Data.List
37import Data.List
servant-mock/src/Servant/Mock.hs+2−1
@@ -5,6 +5,7 @@
5{-# LANGUAGE ScopedTypeVariables #-}
5{-# LANGUAGE ScopedTypeVariables #-}
6{-# LANGUAGE TypeFamilies #-}
6{-# LANGUAGE TypeFamilies #-}
7{-# LANGUAGE TypeOperators #-}
7{-# LANGUAGE TypeOperators #-}
8+{-# OPTIONS_GHC -fno-warn-orphans #-}
8-- |
9-- |
9-- Module : Servant.Mock
10-- Module : Servant.Mock
10-- Copyright : 2015 Alp Mestanogullari
11-- Copyright : 2015 Alp Mestanogullari
@@ -165,7 +166,7 @@ instance (Arbitrary a, AllCTRender ctypes a) => HasMock (Put ctypes a) where
165 mock _ = mockArbitrary
166 mock _ = mockArbitrary
166
167
167instance HasMock Raw where
168instance HasMock Raw where
168− mock _ = \req respond -> do
169+ mock _ = \_req respond -> do
169 bdy <- genBody
170 bdy <- genBody
170 respond $ responseLBS status200 [] bdy
171 respond $ responseLBS status200 [] bdy
171
172
servant-server/servant-server.cabal+4
@@ -91,6 +91,10 @@ test-suite spec
91 default-language: Haskell2010
91 default-language: Haskell2010
92 hs-source-dirs: test
92 hs-source-dirs: test
93 main-is: Spec.hs
93 main-is: Spec.hs
94+ other-modules:
95+ Servant.Server.Internal.EnterSpec
96+ Servant.ServerSpec
97+ Servant.Utils.StaticFilesSpec
94 build-depends:
98 build-depends:
95 base == 4.*
99 base == 4.*
96 , aeson
100 , aeson
servant/servant.cabal+5
@@ -90,6 +90,11 @@ test-suite spec
90 default-language: Haskell2010
90 default-language: Haskell2010
91 hs-source-dirs: test
91 hs-source-dirs: test
92 main-is: Spec.hs
92 main-is: Spec.hs
93+ other-modules:
94+ Servant.API.ContentTypesSpec
95+ Servant.API.ResponseHeadersSpec
96+ Servant.Common.TextSpec
97+ Servant.Utils.LinksSpec
93 build-depends:
98 build-depends:
94 base == 4.*
99 base == 4.*
95 , aeson
100 , aeson