From dd649bf238189ac38d4a9a2d10f5d91535ca866a Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sat, 14 Dec 2019 16:09:18 -0800 Subject: [PATCH] support template-haskell 2.16, build with GHC 8.10 --- yesod-core/src/Yesod/Routes/TH/RenderRoute.hs | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/yesod-core/src/Yesod/Routes/TH/RenderRoute.hs b/yesod-core/src/Yesod/Routes/TH/RenderRoute.hs index 64246945d..09654c831 100644 --- a/yesod-core/src/Yesod/Routes/TH/RenderRoute.hs +++ b/yesod-core/src/Yesod/Routes/TH/RenderRoute.hs @@ -84,7 +84,12 @@ mkRenderRouteClauses = let cons y ys = InfixE (Just y) colon (Just ys) let pieces' = foldr cons (VarE a) piecesSingle - let body = LamE [TupP [VarP a, VarP b]] (TupE [pieces', VarE b]) `AppE` (rr `AppE` VarE child) + let body = LamE [TupP [VarP a, VarP b]] (TupE +#if MIN_VERSION_template_haskell(2,16,0) + $ map Just +#endif + [pieces', VarE b] + ) `AppE` (rr `AppE` VarE child) return $ Clause [pat] (NormalB body) [FunD childRender childClauses] @@ -119,11 +124,20 @@ mkRenderRouteClauses = let cons y ys = InfixE (Just y) colon (Just ys) let pieces = foldr cons (VarE a) piecesSingle - return $ LamE [TupP [VarP a, VarP b]] (TupE [pieces, VarE b]) `AppE` (rr `AppE` VarE x) + return $ LamE [TupP [VarP a, VarP b]] (TupE +#if MIN_VERSION_template_haskell(2,16,0) + $ map Just +#endif + [pieces, VarE b] + ) `AppE` (rr `AppE` VarE x) _ -> do colon <- [|(:)|] let cons a b = InfixE (Just a) colon (Just b) - return $ TupE [foldr cons piecesMulti piecesSingle, ListE []] + return $ TupE +#if MIN_VERSION_template_haskell(2,16,0) + $ map Just +#endif + [foldr cons piecesMulti piecesSingle, ListE []] return $ Clause [pat] (NormalB body) []