Hello community, here is the log from the commit of package ghc-test-fixture for openSUSE:Factory checked in at 2017-06-22 10:39:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-test-fixture (Old) and /work/SRC/openSUSE:Factory/.ghc-test-fixture.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-test-fixture" Thu Jun 22 10:39:16 2017 rev:2 rq:504111 version:0.5.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-test-fixture/ghc-test-fixture.changes 2017-05-10 20:47:45.390223403 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-test-fixture.new/ghc-test-fixture.changes 2017-06-22 10:39:17.846890237 +0200 @@ -1,0 +2,5 @@ +Thu Jun 8 11:08:23 UTC 2017 - [email protected] + +- Update to version 0.5.0.1. + +------------------------------------------------------------------- Old: ---- test-fixture-0.5.0.0.tar.gz New: ---- test-fixture-0.5.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-test-fixture.spec ++++++ --- /var/tmp/diff_new_pack.7kQFd3/_old 2017-06-22 10:39:18.446805659 +0200 +++ /var/tmp/diff_new_pack.7kQFd3/_new 2017-06-22 10:39:18.446805659 +0200 @@ -19,7 +19,7 @@ %global pkg_name test-fixture %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.5.0.0 +Version: 0.5.0.1 Release: 0 Summary: Test monadic side-effects License: BSD-3-Clause @@ -27,7 +27,7 @@ Url: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz BuildRequires: ghc-Cabal-devel -BuildRequires: ghc-data-default-devel +BuildRequires: ghc-data-default-class-devel BuildRequires: ghc-haskell-src-exts-devel BuildRequires: ghc-haskell-src-meta-devel BuildRequires: ghc-mtl-devel @@ -38,7 +38,6 @@ %if %{with tests} BuildRequires: ghc-hspec-devel BuildRequires: ghc-hspec-discover-devel -BuildRequires: ghc-th-to-exp-devel BuildRequires: ghc-transformers-devel %endif ++++++ test-fixture-0.5.0.0.tar.gz -> test-fixture-0.5.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test-fixture-0.5.0.0/CHANGELOG.md new/test-fixture-0.5.0.1/CHANGELOG.md --- old/test-fixture-0.5.0.0/CHANGELOG.md 2016-11-28 19:39:09.000000000 +0100 +++ new/test-fixture-0.5.0.1/CHANGELOG.md 2017-06-03 02:15:27.000000000 +0200 @@ -1,3 +1,7 @@ +# 0.5.0.1 (June 2, 2017) + + - Fixed an issue where using `mkFixture` with a typeclass that used the `DefaultSignatures` extension caused an internal error ([#30](https://github.com/cjdev/test-fixture/issues/30)). + # 0.5.0.0 (November 28, 2016) - **Breaking**: `mkFixture` now supports constraints in the same form as a Haskell `deriving` clause, which permits “partially-applied” constraints. A new `ts` quasiquoter is provided for the purpose of writing a comma-separated list of Haskell types; see the documentation for more details ([#25](https://github.com/cjdev/test-fixture/issues/25)). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test-fixture-0.5.0.0/src/Control/Monad/TestFixture/TH/Internal.hs new/test-fixture-0.5.0.1/src/Control/Monad/TestFixture/TH/Internal.hs --- old/test-fixture-0.5.0.0/src/Control/Monad/TestFixture/TH/Internal.hs 2016-11-28 19:31:43.000000000 +0100 +++ new/test-fixture-0.5.0.1/src/Control/Monad/TestFixture/TH/Internal.hs 2017-06-03 01:56:05.000000000 +0200 @@ -1,6 +1,7 @@ {-# OPTIONS_HADDOCK hide, not-home #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE CPP #-} +{-# LANGUAGE LambdaCase #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TupleSections #-} @@ -15,7 +16,7 @@ import Control.Monad (join, replicateM, when, zipWithM) import Control.Monad.TestFixture (TestFixture, TestFixtureT, unimplemented) import Data.Char (isPunctuation, isSymbol) -import Data.Default (Default(..)) +import Data.Default.Class (Default(..)) import Data.List (foldl', nub, partition) import GHC.Exts (Constraint) import Language.Haskell.TH @@ -130,9 +131,7 @@ let instanceHead = AppT classType fixtureT classInfo <- reify (unappliedTypeName classType) - methods <- case classInfo of - ClassI (ClassD _ _ _ _ methods) _ -> return methods - _ -> fail $ "mkInstance: expected a class type, given " ++ show classType + methods <- classMethods classInfo funDecls <- traverse mkDictInstanceFunc methods return $ mkInstanceD [AppT (ConT ''Monad) mVar] instanceHead funDecls @@ -175,8 +174,11 @@ Given some 'Info' about a class, get its methods as 'SigD' declarations. -} classMethods :: MonadFail m => Info -> m [Dec] -classMethods (ClassI (ClassD _ _ _ _ methods) _) = return methods -classMethods other = fail $ "classMethods: expected a class name, given " ++ show other +classMethods (ClassI (ClassD _ _ _ _ methods) _) = return $ removeDefaultSigs methods + where removeDefaultSigs = filter $ \case + DefaultSigD{} -> False + _ -> True +classMethods other = fail $ "classMethods: expected a class type, given " ++ show other {-| Helper for applying `methodToField` over multiple methods using the same name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test-fixture-0.5.0.0/src/Control/Monad/TestFixture/TH.hs new/test-fixture-0.5.0.1/src/Control/Monad/TestFixture/TH.hs --- old/test-fixture-0.5.0.0/src/Control/Monad/TestFixture/TH.hs 2016-11-28 19:31:43.000000000 +0100 +++ new/test-fixture-0.5.0.1/src/Control/Monad/TestFixture/TH.hs 2016-11-28 19:46:24.000000000 +0100 @@ -92,4 +92,4 @@ import Control.Monad.TestFixture.TH.Internal (mkFixture) import Control.Monad.TestFixture.TH.Internal.TypesQuasi (ts) -import Data.Default (def) +import Data.Default.Class (def) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test-fixture-0.5.0.0/test/Test/Control/Monad/TestFixture/DefaultSignaturesSpec.hs new/test-fixture-0.5.0.1/test/Test/Control/Monad/TestFixture/DefaultSignaturesSpec.hs --- old/test-fixture-0.5.0.0/test/Test/Control/Monad/TestFixture/DefaultSignaturesSpec.hs 1970-01-01 01:00:00.000000000 +0100 +++ new/test-fixture-0.5.0.1/test/Test/Control/Monad/TestFixture/DefaultSignaturesSpec.hs 2017-06-03 01:56:38.000000000 +0200 @@ -0,0 +1,37 @@ +{-# LANGUAGE CPP #-} + +#if MIN_VERSION_GLASGOW_HASKELL(8,0,0,0) +{-# OPTIONS_GHC -fno-warn-unused-top-binds -fno-warn-redundant-constraints #-} +#else +{-# OPTIONS_GHC -fno-warn-unused-binds #-} +#endif + +{-# LANGUAGE DefaultSignatures #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE FunctionalDependencies #-} +{-# LANGUAGE KindSignatures #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE QuasiQuotes #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE TypeFamilies #-} + +module Test.Control.Monad.TestFixture.DefaultSignaturesSpec (spec) where + +import Test.Hspec + +import Control.Monad.Trans.Class (MonadTrans(..)) +import Control.Monad.TestFixture.TH + +class Monad m => MonadFoo m where + foo :: m () + + default foo :: (MonadTrans t, MonadFoo m', m ~ t m') => m () + foo = lift foo + +mkFixture "Fixture" [ts| MonadFoo |] + +spec :: Spec +spec = describe "mkFixture" $ + it "can derive classes that use DefaultSignatures" $ example $ + return () diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test-fixture-0.5.0.0/test/Test/Control/Monad/TestFixture/THSpec.hs new/test-fixture-0.5.0.1/test/Test/Control/Monad/TestFixture/THSpec.hs --- old/test-fixture-0.5.0.0/test/Test/Control/Monad/TestFixture/THSpec.hs 2016-11-28 19:31:43.000000000 +0100 +++ new/test-fixture-0.5.0.1/test/Test/Control/Monad/TestFixture/THSpec.hs 2016-11-28 19:51:13.000000000 +0100 @@ -18,7 +18,6 @@ import Control.Monad.Except (runExcept, throwError) import Control.Monad.Fail (MonadFail(..)) import Language.Haskell.TH.Syntax -import Language.Haskell.TH.ToExp (toExp) import Control.Monad.TestFixture import Control.Monad.TestFixture.TH @@ -35,7 +34,7 @@ let fixture = def { _qReport = \b s -> when b $ throwError s , _qNewName = \s -> return $ Name (OccName s) (NameU 0) - , _qReify = \_ -> return $(toExp <$> reify ''MultiParam) + , _qReify = \_ -> return $(lift =<< reify ''MultiParam) } let result = runExcept $ unTestFixtureT (runQ $ mkFixture "Fixture" [ts| MultiParam |]) fixture result `shouldBe` (Left $ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/test-fixture-0.5.0.0/test-fixture.cabal new/test-fixture-0.5.0.1/test-fixture.cabal --- old/test-fixture-0.5.0.0/test-fixture.cabal 2016-11-28 19:40:21.000000000 +0100 +++ new/test-fixture-0.5.0.1/test-fixture.cabal 2017-06-03 02:14:11.000000000 +0200 @@ -1,7 +1,7 @@ name: test-fixture version: - 0.5.0.0 + 0.5.0.1 synopsis: Test monadic side-effects description: @@ -40,7 +40,7 @@ Control.Monad.TestFixture.TH.Internal.TypesQuasi build-depends: base >= 4.7 && < 5 - , data-default + , data-default-class , haskell-src-exts , haskell-src-meta , mtl @@ -61,6 +61,7 @@ ghc-options: -Wall other-modules: Test.Control.Monad.TestFixtureSpec + Test.Control.Monad.TestFixture.DefaultSignaturesSpec Test.Control.Monad.TestFixture.THSpec build-depends: base >= 4.7 && < 5 @@ -70,6 +71,3 @@ , mtl , template-haskell >= 2.10 && < 2.12 , transformers - if impl(ghc >= 8.0.0.0) - build-depends: - th-to-exp
