summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghci/scripts/T4175.stdout
diff options
context:
space:
mode:
authorReid Barton <rwbarton@gmail.com>2017-02-14 13:13:37 -0500
committerBen Gamari <ben@smart-cactus.org>2017-02-14 16:57:31 -0500
commitbedcb71659253bb8ab5d449df8e3ee884cc85d46 (patch)
tree4814ad1e37ff1cb684277ee0614c7397871c2c8e /testsuite/tests/ghci/scripts/T4175.stdout
parent392cec4da9a7ce2b5c89ac688a5b9844a543c909 (diff)
downloadhaskell-bedcb71659253bb8ab5d449df8e3ee884cc85d46.tar.gz
Check local type family instances against all imported ones
We previously checked type family instance declarations in a module for consistency with all instances that we happened to have read into the EPS or HPT. It was possible to arrange that an imported type family instance (used by an imported function) was in a module whose interface file was never read during compilation; then we wouldn't check consistency of local instances with this imported instance and as a result type safety was lost. With this patch, we still check consistency of local type family instances with all type family instances that we have loaded; but we make sure to load the interface files of all our imports that define family instances first. More selective consistency checking is left to #13102. On the other hand, we can now safely assume when we import a module that it has been checked for consistency with its imports. So we can save checking in checkFamInstConsistency, and overall we should have less work to do now. This patch also adds a note describing the Plan for ensuring type family consistency. Test Plan: Two new tests added; harbormaster Reviewers: austin, simonpj, bgamari Reviewed By: simonpj, bgamari Subscribers: ggreif, thomie Differential Revision: https://phabricator.haskell.org/D2992
Diffstat (limited to 'testsuite/tests/ghci/scripts/T4175.stdout')
-rw-r--r--testsuite/tests/ghci/scripts/T4175.stdout2
1 files changed, 1 insertions, 1 deletions
diff --git a/testsuite/tests/ghci/scripts/T4175.stdout b/testsuite/tests/ghci/scripts/T4175.stdout
index d96a2ef9eb..994886cc4a 100644
--- a/testsuite/tests/ghci/scripts/T4175.stdout
+++ b/testsuite/tests/ghci/scripts/T4175.stdout
@@ -28,9 +28,9 @@ instance Show () -- Defined in ‘GHC.Show’
type instance D () a = Bool -- Defined at T4175.hs:22:10
data instance B () = MkB -- Defined at T4175.hs:13:15
data Maybe a = Nothing | Just a -- Defined in ‘GHC.Base’
-instance Foldable Maybe -- Defined in ‘Data.Foldable’
instance Traversable Maybe -- Defined in ‘Data.Traversable’
instance Monoid a => Monoid (Maybe a) -- Defined in ‘GHC.Base’
+instance Foldable Maybe -- Defined in ‘Data.Foldable’
instance Read a => Read (Maybe a) -- Defined in ‘GHC.Read’
instance Applicative Maybe -- Defined in ‘GHC.Base’
instance Functor Maybe -- Defined in ‘GHC.Base’