Compile with ghc 8.6 by pushing MonadFail usage into IO

This commit is contained in:
Dan Burton 2018-10-11 13:53:35 -04:00
parent 90423f5bc7
commit 132abccff2
No known key found for this signature in database
GPG Key ID: 41F154F410EC12E0
5 changed files with 18 additions and 5 deletions

View File

@ -1,3 +1,7 @@
## 1.6.0.1
* Compile with GHC 8.6
## 1.6.0 ## 1.6.0
* Upgrade to yesod-core 1.6.0 * Upgrade to yesod-core 1.6.0

View File

@ -1,5 +1,6 @@
{-# LANGUAGE DeriveDataTypeable, OverloadedStrings, QuasiQuotes #-} {-# LANGUAGE DeriveDataTypeable, OverloadedStrings, QuasiQuotes #-}
{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RankNTypes #-} {-# LANGUAGE RankNTypes #-}
{-# LANGUAGE GADTs #-} {-# LANGUAGE GADTs #-}
{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE ScopedTypeVariables #-}
@ -69,7 +70,9 @@ authOAuth oauth mkCreds = AuthPlugin name dispatch login
setSession oauthSessionName $ lookupTokenSecret tok setSession oauthSessionName $ lookupTokenSecret tok
redirect $ authorizeUrl oauth' tok redirect $ authorizeUrl oauth' tok
dispatch "GET" [] = do dispatch "GET" [] = do
Just tokSec <- lookupSession oauthSessionName tokSec <- lookupSession oauthSessionName >>= \case
Just t -> return t
Nothing -> liftIO $ fail "lookupSession could not find session"
deleteSession oauthSessionName deleteSession oauthSessionName
reqTok <- reqTok <-
if oauthVersion oauth == OAuth10 if oauthVersion oauth == OAuth10

View File

@ -1,5 +1,5 @@
name: yesod-auth-oauth name: yesod-auth-oauth
version: 1.6.0 version: 1.6.0.1
license: BSD3 license: BSD3
license-file: LICENSE license-file: LICENSE
author: Hiromi Ishii author: Hiromi Ishii

View File

@ -1,4 +1,5 @@
{-# LANGUAGE TemplateHaskell, QuasiQuotes, TypeFamilies, OverloadedStrings #-} {-# LANGUAGE TemplateHaskell, QuasiQuotes, TypeFamilies, OverloadedStrings #-}
{-# LANGUAGE LambdaCase #-}
module EmbedProductionTest where module EmbedProductionTest where
-- Tests the production mode of the embedded static subsite by -- Tests the production mode of the embedded static subsite by
@ -108,7 +109,9 @@ embedProductionSpecs = yesodSpec (MyApp eProduction) $ do
yit "Embedded Javascript" $ do yit "Embedded Javascript" $ do
get HomeR get HomeR
statusIs 200 statusIs 200
[script] <- htmlQuery "script" script <- htmlQuery "script" >>= \case
[s] -> return s
_ -> liftIO $ fail "Expected singleton list of script"
let src = BL.takeWhile (/= 34) $ BL.drop 1 $ BL.dropWhile (/= 34) script -- 34 is " let src = BL.takeWhile (/= 34) $ BL.drop 1 $ BL.dropWhile (/= 34) script -- 34 is "
get $ TL.toStrict $ TL.decodeUtf8 src get $ TL.toStrict $ TL.decodeUtf8 src

View File

@ -5,6 +5,7 @@
{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE CPP #-} {-# LANGUAGE CPP #-}
{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeFamilies #-}
@ -482,8 +483,10 @@ postHomeR = defaultLayout
postResourcesR :: Handler () postResourcesR :: Handler ()
postResourcesR = do postResourcesR = do
([("foo", t)], _) <- runRequestBody t <- runRequestBody >>= \case
sendResponseCreated $ ResourceR t ([("foo", t)], _) -> return t
_ -> liftIO $ fail "postResourcesR pattern match failure"
sendResponseCreated $ ResourceR t
getResourceR :: Text -> Handler Html getResourceR :: Text -> Handler Html
getResourceR i = defaultLayout getResourceR i = defaultLayout