summaryrefslogtreecommitdiff
path: root/testsuite/tests/overloadedrecflds
diff options
context:
space:
mode:
authorRyanGlScott <ryan.gl.scott@gmail.com>2015-12-07 12:37:50 +0100
committerBen Gamari <ben@smart-cactus.org>2015-12-07 12:37:58 +0100
commit700c42b5e0ffd27884e6bdfa9a940e55449cff6f (patch)
tree089d9fb84be2d57abfb0971a029b0c2b92404e37 /testsuite/tests/overloadedrecflds
parentd4bcd05d7df3138429abdf43d3e3eb8f6da2dcdf (diff)
downloadhaskell-700c42b5e0ffd27884e6bdfa9a940e55449cff6f.tar.gz
Use TypeLits in the meta-data encoding of GHC.Generics
Test Plan: Validate. Reviewers: simonpj, goldfire, hvr, dreixel, kosmikus, austin, bgamari Reviewed By: kosmikus, austin, bgamari Subscribers: RyanGlScott, Fuuzetsu, bgamari, thomie, carter, dreixel Differential Revision: https://phabricator.haskell.org/D493 GHC Trac Issues: #9766
Diffstat (limited to 'testsuite/tests/overloadedrecflds')
-rw-r--r--testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs7
1 files changed, 4 insertions, 3 deletions
diff --git a/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs b/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs
index 987a24f9bc..c2b4bd6120 100644
--- a/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs
+++ b/testsuite/tests/overloadedrecflds/should_run/overloadedrecflds_generics.hs
@@ -7,6 +7,7 @@
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE ScopedTypeVariables #-}
@@ -17,14 +18,14 @@ import GHC.Generics
import Data.Data
import Data.Proxy
-type family FirstSelector (f :: * -> *) :: *
+type family FirstSelector (f :: * -> *) :: Meta
type instance FirstSelector (M1 D x f) = FirstSelector f
type instance FirstSelector (M1 C x f) = FirstSelector f
type instance FirstSelector (a :*: b) = FirstSelector a
type instance FirstSelector (M1 S s f) = s
-data SelectorProxy s (f :: * -> *) a = SelectorProxy
-type SelectorProxy' s = SelectorProxy s Proxy ()
+data SelectorProxy (s :: Meta) (f :: * -> *) a = SelectorProxy
+type SelectorProxy' (s :: Meta) = SelectorProxy s Proxy ()
-- Extract the first selector name using GHC.Generics
firstSelectorName :: forall a. Selector (FirstSelector (Rep a))