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


Reply via email to