[Git][ghc/ghc][master] [26705] Include TyCl instances in data fam iface entry
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC Commits: 8a3900a3 by Aaron Allen at 2026-01-07T10:27:57-05:00 [26705] Include TyCl instances in data fam iface entry Ensures dependent modules are recompiled when the class instances for a data family instance change. resolves #26705 - - - - - 7 changed files: - compiler/GHC/Iface/Recomp.hs - + testsuite/tests/driver/recomp26705/M.hs - + testsuite/tests/driver/recomp26705/M2A.hs - + testsuite/tests/driver/recomp26705/M2B.hs - + testsuite/tests/driver/recomp26705/Makefile - + testsuite/tests/driver/recomp26705/all.T - + testsuite/tests/driver/recomp26705/recomp26705.stderr Changes: ===================================== compiler/GHC/Iface/Recomp.hs ===================================== @@ -1797,7 +1797,9 @@ declExtras fix_fn ann_fn rule_env inst_env fi_env dm_env complete_env decl IfaceSynonym{} -> IfaceSynonymExtras (fix_fn n) (ann_fn (AnnOccName n)) IfaceFamily{} -> IfaceFamilyExtras (fix_fn n) - (map ifFamInstAxiom (lookupOccEnvL fi_env n)) + (map ifFamInstAxiom (lookupOccEnvL fi_env n) + ++ map ifDFun (lookupOccEnvL inst_env n) + ) (ann_fn (AnnOccName n)) IfacePatSyn{} -> IfacePatSynExtras (fix_fn n) (lookup_complete_match n) _other -> IfaceOtherDeclExtras ===================================== testsuite/tests/driver/recomp26705/M.hs ===================================== @@ -0,0 +1,5 @@ +module M where +import M2 + +x :: TD () -> String +x = show ===================================== testsuite/tests/driver/recomp26705/M2A.hs ===================================== @@ -0,0 +1,7 @@ +{-# LANGUAGE TypeFamilies #-} +module M2 where + +data family TD a + +data instance TD () = TDI + deriving Show ===================================== testsuite/tests/driver/recomp26705/M2B.hs ===================================== @@ -0,0 +1,6 @@ +{-# LANGUAGE TypeFamilies #-} +module M2 where + +data family TD a + +data instance TD () = TDI ===================================== testsuite/tests/driver/recomp26705/Makefile ===================================== @@ -0,0 +1,13 @@ +TOP=../../.. +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/test.mk + +# Recompilation tests + +recomp26705: + cp M2A.hs M2.hs + '$(TEST_HC)' $(TEST_HC_OPTS) --make M.hs + sleep 1 + cp M2B.hs M2.hs + # This should fail + if '$(TEST_HC)' $(TEST_HC_OPTS) --make M.hs; then false; fi ===================================== testsuite/tests/driver/recomp26705/all.T ===================================== @@ -0,0 +1,3 @@ +test('recomp26705', [extra_files(['M2A.hs', 'M.hs', 'M2B.hs']), + when(fast(), skip), ignore_stdout], + makefile_test, []) ===================================== testsuite/tests/driver/recomp26705/recomp26705.stderr ===================================== @@ -0,0 +1,5 @@ +M.hs:5:5: error: [GHC-39999] + • No instance for ‘Show (TD ())’ arising from a use of ‘show’ + • In the expression: show + In an equation for ‘x’: x = show + View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/8a3900a325a8f476d1e31a84deeab934... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/8a3900a325a8f476d1e31a84deeab934... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Marge Bot (@marge-bot)