summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Barton <rwbarton@gmail.com>2017-01-18 16:24:28 -0500
committerBen Gamari <ben@smart-cactus.org>2017-01-18 17:39:48 -0500
commit38374caa9d6e1373d1b9d335d0f99f3664931fd9 (patch)
tree0860eabe8ca58c01bc0c07e85d516ad2acd01b20
parent0d769d5b96232ee0fe5a44f2ce5717bdb0e7eaa3 (diff)
downloadhaskell-38374caa9d6e1373d1b9d335d0f99f3664931fd9.tar.gz
Fix get_op in the case of an unambiguous record selector (#13132)
Test Plan: validate Reviewers: simonpj, austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2985 GHC Trac Issues: #13132
-rw-r--r--compiler/rename/RnTypes.hs1
-rw-r--r--testsuite/tests/rename/should_compile/T13132.hs5
-rw-r--r--testsuite/tests/rename/should_compile/all.T1
3 files changed, 7 insertions, 0 deletions
diff --git a/compiler/rename/RnTypes.hs b/compiler/rename/RnTypes.hs
index 6cd6ea805e..421fba5ef0 100644
--- a/compiler/rename/RnTypes.hs
+++ b/compiler/rename/RnTypes.hs
@@ -1227,6 +1227,7 @@ get_op :: LHsExpr Name -> Name
-- See RnExpr.rnUnboundVar
get_op (L _ (HsVar (L _ n))) = n
get_op (L _ (HsUnboundVar uv)) = mkUnboundName (unboundVarOcc uv)
+get_op (L _ (HsRecFld (Unambiguous _ n))) = n
get_op other = pprPanic "get_op" (ppr other)
-- Parser left-associates everything, but
diff --git a/testsuite/tests/rename/should_compile/T13132.hs b/testsuite/tests/rename/should_compile/T13132.hs
new file mode 100644
index 0000000000..70706074b3
--- /dev/null
+++ b/testsuite/tests/rename/should_compile/T13132.hs
@@ -0,0 +1,5 @@
+module Bug where
+
+newtype ContT r m a = ContT { runContT :: (a -> m r) -> m r }
+
+foo bar baz = (`runContT` bar.baz)
diff --git a/testsuite/tests/rename/should_compile/all.T b/testsuite/tests/rename/should_compile/all.T
index 90d955b7c8..296390524a 100644
--- a/testsuite/tests/rename/should_compile/all.T
+++ b/testsuite/tests/rename/should_compile/all.T
@@ -245,3 +245,4 @@ test('T12127',
test('T12533', normal, compile, [''])
test('T12597', normal, compile, [''])
test('T12548', normal, compile, [''])
+test('T13132', normal, compile, [''])