packages feed

derive-has-field 0.0.1.2 → 0.0.1.3

raw patch · 3 files changed

+25/−6 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

derive-has-field.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           derive-has-field-version:        0.0.1.2+version:        0.0.1.3 synopsis:       Derive HasField instances with Template Haskell description:    A Template Haskell function to derive HasField instances to utilize OverloadedRecordDot more effectively. category:       Template Haskell
src/DeriveHasField.hs view
@@ -3,7 +3,6 @@ {-# LANGUAGE TemplateHaskell #-}  module DeriveHasField (-  module GHC.Records,   deriveHasFieldWith, ) where@@ -59,7 +58,7 @@           else             [d|               instance HasField $litTFieldWanted $parentType $(pure ty) where-                getField = $(appTypeE (varE $ mkName "getField") litTCurrentField)+                getField = $(appTypeE (varE 'getField) litTCurrentField)               |]   pure $ Foldable.concat decs 
test/DeriveHasFieldSpec.hs view
@@ -1,10 +1,13 @@ {-# LANGUAGE DataKinds #-}+{-# LANGUAGE KindSignatures #-} {-# LANGUAGE OverloadedRecordDot #-} {-# LANGUAGE TemplateHaskell #-}  module DeriveHasFieldSpec where -import DeriveHasField+import Data.Data (Proxy (..))+import DeriveHasField qualified+import GHC.TypeLits (Symbol) import Import import Test.Hspec @@ -15,7 +18,7 @@   , someTypeSomeEitherField :: Either String Int   } -deriveHasFieldWith (dropPrefix "someType") ''SomeType+DeriveHasField.deriveHasFieldWith (dropPrefix "someType") ''SomeType  someType :: SomeType someType =@@ -31,7 +34,7 @@   , otherTypeOtherField :: Either a b   } -deriveHasFieldWith (dropPrefix "otherType") ''OtherType+DeriveHasField.deriveHasFieldWith (dropPrefix "otherType") ''OtherType  otherType :: OtherType Int String otherType =@@ -40,6 +43,20 @@     , otherTypeOtherField = Right "hello"     } +data KindedType (kind :: * -> *) (sym :: Symbol) = KindedType+  { kindedTypeWithKind :: kind ()+  , kindedTypeWithSymbol :: Proxy sym+  }++DeriveHasField.deriveHasFieldWith (dropPrefix "kindedType") ''KindedType++kindedType :: KindedType Maybe "hello"+kindedType =+  KindedType+    { kindedTypeWithKind = Just ()+    , kindedTypeWithSymbol = Proxy @"hello"+    }+ spec :: Spec spec = do   describe "deriveHasField" $ do@@ -51,3 +68,6 @@     it "compiles and gets the right field" $ do       otherType.field `shouldBe` Just 0       otherType.otherField `shouldBe` Right "hello"+    it "compiles and gets the right field" $ do+      kindedType.withKind `shouldBe` Just ()+      kindedType.withSymbol `shouldBe` Proxy @"hello"