summaryrefslogtreecommitdiff
path: root/testsuite/tests/overloadedrecflds/should_run/overloadedrecfldsrun04.hs
blob: ed26e0f98462a7217d2b225fdb4a957e1f438625 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-- Test that DuplicateRecordFields works with TemplateHaskell

{-# LANGUAGE DuplicateRecordFields, TemplateHaskell #-}

import Language.Haskell.TH
import Language.Haskell.TH.Syntax

-- Splice in a datatype with field...
$(return [DataD [] (mkName "R") [] [RecC (mkName "MkR") [(mkName "foo", NotStrict, ConT ''Int)]] []])

-- New TH story means reify only sees R if we do this:
$(return [])

-- ... and check that we can inspect it
main = do  putStrLn $(do { info <- reify ''R
                         ; lift (pprint info) })
           print (foo (MkR { foo = 42 }))