diff --git a/scripts/test-all.sh b/scripts/test-all.sh index 5c78312c..c617ad7e 100755 --- a/scripts/test-all.sh +++ b/scripts/test-all.sh @@ -17,7 +17,8 @@ set -o errexit DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) . "$DIR"/lib/common.sh -GHC_FLAGS="-Werror" +# TODO: Remove missing-methods after https://github.com/bos/aeson/issues/290 +GHC_FLAGS="-Werror -fno-warn-missing-methods" prepare_sandbox () { $CABAL sandbox init diff --git a/servant-docs/src/Servant/Docs/Internal.hs b/servant-docs/src/Servant/Docs/Internal.hs index 09bf8b40..d15ccec6 100644 --- a/servant-docs/src/Servant/Docs/Internal.hs +++ b/servant-docs/src/Servant/Docs/Internal.hs @@ -22,18 +22,20 @@ module Servant.Docs.Internal where #if !MIN_VERSION_base(4,8,0) import Control.Applicative #endif -import Control.Lens +import Control.Lens (makeLenses, over, traversed, (%~), + (&), (.~), (<>~), (^.), _1, _2, + _last, (|>)) +import Data.ByteString.Conversion (ToByteString, toByteString) import Data.ByteString.Lazy.Char8 (ByteString) import qualified Data.CaseInsensitive as CI -import Data.Hashable +import Data.Hashable (Hashable) import Data.HashMap.Strict (HashMap) import Data.List import Data.Maybe import Data.Monoid import Data.Ord (comparing) -import Data.Proxy -import Data.ByteString.Conversion (ToByteString, toByteString) -import Data.String.Conversions +import Data.Proxy (Proxy(Proxy)) +import Data.String.Conversions (cs) import Data.Text (Text, pack, unpack) import GHC.Exts (Constraint) import GHC.Generics diff --git a/servant-examples/auth-combinator/auth-combinator.hs b/servant-examples/auth-combinator/auth-combinator.hs index c6373fe1..8bfe12dc 100644 --- a/servant-examples/auth-combinator/auth-combinator.hs +++ b/servant-examples/auth-combinator/auth-combinator.hs @@ -5,6 +5,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -fno-warn-unused-binds #-} import Data.Aeson import Data.ByteString (ByteString) import Data.Text (Text) diff --git a/servant-examples/hackage/hackage.hs b/servant-examples/hackage/hackage.hs index e205fc12..cd17fb4d 100644 --- a/servant-examples/hackage/hackage.hs +++ b/servant-examples/hackage/hackage.hs @@ -2,6 +2,8 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -fno-warn-unused-binds #-} +{-# OPTIONS_GHC -fno-warn-unused-imports #-} import Control.Applicative import Control.Monad import Control.Monad.IO.Class diff --git a/servant-examples/servant-examples.cabal b/servant-examples/servant-examples.cabal index 83dbde70..d26f6de4 100644 --- a/servant-examples/servant-examples.cabal +++ b/servant-examples/servant-examples.cabal @@ -45,6 +45,7 @@ executable tutorial executable t8-main main-is: t8-main.hs + other-modules: T3, T8 hs-source-dirs: tutorial default-language: Haskell2010 build-depends: diff --git a/servant-examples/tutorial/T1.hs b/servant-examples/tutorial/T1.hs index 9fb93c8c..d7cd396f 100644 --- a/servant-examples/tutorial/T1.hs +++ b/servant-examples/tutorial/T1.hs @@ -17,17 +17,12 @@ data User = User , registration_date :: Day } deriving (Eq, Show, Generic) --- orphan ToJSON instance for Day. necessary to derive one for User -instance ToJSON Day where - -- display a day in YYYY-mm-dd format - toJSON d = toJSON (showGregorian d) - instance ToJSON User type UserAPI = "users" :> Get '[JSON] [User] users :: [User] -users = +users = [ User "Isaac Newton" 372 "isaac@newton.co.uk" (fromGregorian 1683 3 1) , User "Albert Einstein" 136 "ae@mc2.org" (fromGregorian 1905 12 1) ] diff --git a/servant-examples/tutorial/T10.hs b/servant-examples/tutorial/T10.hs index 39e48e04..3b010d34 100644 --- a/servant-examples/tutorial/T10.hs +++ b/servant-examples/tutorial/T10.hs @@ -4,6 +4,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE MultiParamTypeClasses #-} +{-# OPTIONS_GHC -fno-warn-orphans #-} module T10 where import Data.ByteString.Lazy (ByteString) diff --git a/servant-examples/tutorial/T3.hs b/servant-examples/tutorial/T3.hs index dcff930b..c93a214a 100644 --- a/servant-examples/tutorial/T3.hs +++ b/servant-examples/tutorial/T3.hs @@ -70,7 +70,7 @@ server = position :<|> marketing where position :: Int -> Int -> EitherT ServantErr IO Position - position x y = return (Position x y) + position a b = return (Position a b) hello :: Maybe String -> EitherT ServantErr IO HelloMessage hello mname = return . HelloMessage $ case mname of diff --git a/servant-examples/tutorial/T4.hs b/servant-examples/tutorial/T4.hs index 94f8df73..7b2ba319 100644 --- a/servant-examples/tutorial/T4.hs +++ b/servant-examples/tutorial/T4.hs @@ -4,6 +4,7 @@ {-# LANGUAGE TypeOperators #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -fno-warn-unused-imports #-} module T4 where import Data.Aeson @@ -35,13 +36,13 @@ instance ToHtml Person where -- HTML serialization of a list of persons instance ToHtml [Person] where - toHtml persons = table_ $ do + toHtml ps = table_ $ do tr_ $ do th_ "first name" th_ "last name" th_ "age" - foldMap toHtml persons + foldMap toHtml ps toHtmlRaw = toHtml diff --git a/servant-examples/tutorial/T8.hs b/servant-examples/tutorial/T8.hs index 089702bc..0dcb29b0 100644 --- a/servant-examples/tutorial/T8.hs +++ b/servant-examples/tutorial/T8.hs @@ -1,10 +1,10 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} +{-# OPTIONS_GHC -fno-warn-name-shadowing #-} module T8 where import Control.Monad.Trans.Either -import Data.Aeson import Servant import Servant.Client diff --git a/servant-examples/tutorial/T9.hs b/servant-examples/tutorial/T9.hs index 1b0633f0..2103c502 100644 --- a/servant-examples/tutorial/T9.hs +++ b/servant-examples/tutorial/T9.hs @@ -3,6 +3,7 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -fno-warn-unused-imports #-} module T9 where import Control.Applicative diff --git a/servant-examples/wai-middleware/wai-middleware.hs b/servant-examples/wai-middleware/wai-middleware.hs index ef772665..207c0da1 100644 --- a/servant-examples/wai-middleware/wai-middleware.hs +++ b/servant-examples/wai-middleware/wai-middleware.hs @@ -1,6 +1,7 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -fno-warn-unused-binds #-} import Data.Aeson import Data.Text import GHC.Generics diff --git a/servant-jquery/src/Servant/JQuery/Internal.hs b/servant-jquery/src/Servant/JQuery/Internal.hs index 15810a2f..1bee07e6 100644 --- a/servant-jquery/src/Servant/JQuery/Internal.hs +++ b/servant-jquery/src/Servant/JQuery/Internal.hs @@ -11,19 +11,20 @@ module Servant.JQuery.Internal where #if !MIN_VERSION_base(4,8,0) -import Control.Applicative +import Control.Applicative #endif -import Control.Lens -import Data.Char (toLower) -import qualified Data.CharSet as Set +import Control.Lens (makeLenses, (%~), (&), (.~) + , (<>~), (^.), _last) +import Data.Char (toLower) +import qualified Data.CharSet as Set import qualified Data.CharSet.Unicode.Category as Set -import Data.List -import Data.Monoid -import Data.Proxy -import qualified Data.Text as T -import GHC.Exts (Constraint) -import GHC.TypeLits -import Servant.API +import Data.List +import Data.Monoid +import Data.Proxy +import qualified Data.Text as T +import GHC.Exts (Constraint) +import GHC.TypeLits +import Servant.API type Arg = String diff --git a/servant-mock/src/Servant/Mock.hs b/servant-mock/src/Servant/Mock.hs index eabc1642..a53e6ec4 100644 --- a/servant-mock/src/Servant/Mock.hs +++ b/servant-mock/src/Servant/Mock.hs @@ -5,6 +5,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} +{-# OPTIONS_GHC -fno-warn-orphans #-} -- | -- Module : Servant.Mock -- Copyright : 2015 Alp Mestanogullari @@ -153,7 +154,7 @@ instance (Arbitrary a, AllCTRender ctypes a) => HasMock (Put ctypes a) where mock _ = mockArbitrary instance HasMock Raw where - mock _ = \req respond -> do + mock _ = \_ respond -> do bdy <- genBody respond $ responseLBS status200 [] bdy diff --git a/servant/test/Servant/API/ContentTypesSpec.hs b/servant/test/Servant/API/ContentTypesSpec.hs index 0f4a075a..f324c2b1 100644 --- a/servant/test/Servant/API/ContentTypesSpec.hs +++ b/servant/test/Servant/API/ContentTypesSpec.hs @@ -4,6 +4,7 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# OPTIONS_GHC -fno-warn-orphans #-} + module Servant.API.ContentTypesSpec where #if !MIN_VERSION_base(4,8,0) diff --git a/stack.yaml b/stack.yaml index 55023b87..ecfc3dad 100644 --- a/stack.yaml +++ b/stack.yaml @@ -11,4 +11,5 @@ packages: extra-deps: - engine-io-wai-1.0.2 - attoparsec-0.13.0.1 +- aeson-0.10.0.0 resolver: nightly-2015-07-24