summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/all.T
diff options
context:
space:
mode:
authorRyan Scott <ryan.gl.scott@gmail.com>2018-11-08 10:26:48 -0500
committerRyan Scott <ryan.gl.scott@gmail.com>2018-11-08 10:26:48 -0500
commit63a817074a8d49798bfd46a6545906fff143e924 (patch)
treea57848924bb854f5adf33957951cbed076c2bceb /testsuite/tests/th/all.T
parent932cd41d8c7984c767c1b3b58e05146f69cc5c15 (diff)
downloadhaskell-63a817074a8d49798bfd46a6545906fff143e924.tar.gz
Fix #15845 by defining etaExpandFamInstLHS and using it
Summary: Both #9692 and #14179 were caused by GHC being careless about using eta-reduced data family instance axioms. Each of those tickets were fixed by manually whipping up some code to eta-expand the axioms. The same sort of issue has now caused #15845, so I figured it was high time to factor out the code that each of these fixes have in common. This patch introduces the `etaExpandFamInstLHS` function, which takes a family instance's type variables, LHS types, and RHS type, and returns type variables and LHS types that have been eta-expanded if necessary, in the case of a data family instance. (If it's a type family instance, `etaExpandFamInstLHS` just returns the supplied type variables and LHS types unchanged). Along the way, I noticed that many references to `Note [Eta reduction for data families]` (in `FamInstEnv`) had slightly bitrotted (they either referred to a somewhat different name, or claimed that the Note lived in a different module), so I took the liberty of cleaning those up. Test Plan: make test TEST="T9692 T15845" Reviewers: goldfire, bgamari Reviewed By: goldfire Subscribers: rwbarton, carter GHC Trac Issues: #15845 Differential Revision: https://phabricator.haskell.org/D5294
Diffstat (limited to 'testsuite/tests/th/all.T')
-rw-r--r--testsuite/tests/th/all.T1
1 files changed, 1 insertions, 0 deletions
diff --git a/testsuite/tests/th/all.T b/testsuite/tests/th/all.T
index 2481a2ab12..adf897081b 100644
--- a/testsuite/tests/th/all.T
+++ b/testsuite/tests/th/all.T
@@ -448,3 +448,4 @@ test('T15783', normal, multimod_compile,
test('T15792', normal, compile, ['-v0 -dsuppress-uniques'])
test('T15815', normal, multimod_compile,
['T15815B', '-v0 ' + config.ghc_th_way_flags])
+test('T15845', normal, compile, ['-v0 -dsuppress-uniques'])