polysemy-mocks 0.3.0.0 → 0.3.1.0
raw patch · 3 files changed
+25/−4 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Test.Polysemy.Mock: data family MockState eff m;
+ Test.Polysemy.Mock: data MockImpl eff m :: Effect;
+ Test.Polysemy.Mock: data MockState eff m;
Files
- ChangeLog.md +8/−3
- polysemy-mocks.cabal +1/−1
- src/Test/Polysemy/Mock/TH.hs +16/−0
ChangeLog.md view
@@ -1,19 +1,24 @@ # Changelog for polysemy-mocks +## 0.3.1.0++* Support template-haskell-2.18.0 (and so GHC 9.2).+* Test compatibility with GHC 9.4.+ ## 0.3.0.0 -* Support template-haskell-2.17.0 (and so GHC 9.0)+* Support template-haskell-2.17.0 (and so GHC 9.0). * Add 'HasCallStack' constraint to 'evalMocks', {run,eval,exec}Mock and default implementations for the "returns" functions (which throws error, by default). 'RankNTypes' is now needed to use the TH mocks. ## 0.2.0.0 -* Support polysemy >= 1.7, drop support for older versions+* Support polysemy >= 1.7, drop support for older versions. ## 0.1.0.1 -* Better docs+* Better docs. ## 0.1.0.0
polysemy-mocks.cabal view
@@ -1,7 +1,7 @@ cabal-version: 1.12 name: polysemy-mocks-version: 0.3.0.0+version: 0.3.1.0 description: Please see the README on GitHub at <https://github.com/akshaymankar/polysemy-mocks#readme> homepage: https://github.com/akshaymankar/polysemy-mocks#readme bug-reports: https://github.com/akshaymankar/polysemy-mocks/issues
src/Test/Polysemy/Mock/TH.hs view
@@ -110,7 +110,11 @@ mkMockMatch :: Type -> ConLiftInfo -> Match mkMockMatch t c =+#if MIN_VERSION_template_haskell(2,18,0)+ let pat = ConP (cliConName c) [] (map (VarP . fst) (cliFunArgs c))+#else let pat = ConP (cliConName c) (map (VarP . fst) (cliFunArgs c))+#endif sendFn = VarE 'send args = map (VarE . fst) (cliFunArgs c) theMock = foldl' AppE (ConE $ mockConName c) args@@ -126,7 +130,11 @@ {- ORMOLU_DISABLE -} mkMockToStateMatch :: Type -> ConLiftInfo -> Match mkMockToStateMatch t c =+#if MIN_VERSION_template_haskell(2,18,0)+ let pat = ConP (mockConName c) [] (map VarP vars)+#else let pat = ConP (mockConName c) (map VarP vars)+#endif -- vars = map fst (cliFunArgs c) newArgs = if length (cliFunArgs c) == 1@@ -159,7 +167,11 @@ mkReturnsToStateMatch :: Type -> ConLiftInfo -> Match mkReturnsToStateMatch t c = let f = mkName "f"+#if MIN_VERSION_template_haskell(2,18,0)+ pat = ConP (returnsConName c) [] [VarP f]+#else pat = ConP (returnsConName c) [VarP f]+#endif newState = RecUpdE (VarE stateName) [(returnsFieldName c, VarE f)] returnNothing = NoBindS $ AppE (VarE 'pureT) (TupE []) body =@@ -175,7 +187,11 @@ mkCallsToStateMatch :: Type -> ConLiftInfo -> Match mkCallsToStateMatch t c =+#if MIN_VERSION_template_haskell(2,18,0)+ let pat = ConP (callsConName c) [] []+#else let pat = ConP (callsConName c) []+#endif returnCalls = NoBindS $ AppE (VarE 'pureT) (AppE (VarE (callsFieldName c)) (VarE stateName)) body = NormalB