summaryrefslogtreecommitdiff
path: root/testsuite/tests/overloadedrecflds/should_compile/T11103.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/overloadedrecflds/should_compile/T11103.hs')
-rw-r--r--testsuite/tests/overloadedrecflds/should_compile/T11103.hs18
1 files changed, 18 insertions, 0 deletions
diff --git a/testsuite/tests/overloadedrecflds/should_compile/T11103.hs b/testsuite/tests/overloadedrecflds/should_compile/T11103.hs
new file mode 100644
index 0000000000..6662b29cfa
--- /dev/null
+++ b/testsuite/tests/overloadedrecflds/should_compile/T11103.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE DuplicateRecordFields, TemplateHaskell #-}
+
+module T11103 where
+
+import Language.Haskell.TH
+import Language.Haskell.TH.Syntax
+
+data R = MkR { foo :: Int, bar :: Int }
+data S = MkS { foo :: Int }
+
+$(do info <- reify ''R
+ case info of
+ TyConI (DataD _ _ _ _ [RecC _ [(foo_n, _, _), (bar_n, _, _)]] _)
+ -> do { reify bar_n -- This is unambiguous
+ ; reify foo_n -- This is ambiguous
+ ; return []
+ }
+ _ -> error "unexpected result of reify")