summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2017-02-01 22:54:31 -0500
committerBen Gamari <ben@smart-cactus.org>2017-02-01 23:37:48 -0500
commitb16239a95b730dd2d6fc0dbb18c8430669f2c187 (patch)
tree8dd69e07a13b4db470c0e6b554b545e5114a929a
parent1fcede43d2b30f33b7505e25eb6b1f321be0407f (diff)
downloadhaskell-b16239a95b730dd2d6fc0dbb18c8430669f2c187.tar.gz
Make interface loading for COMPLETE pragmas lazy
Without this additional laziness we will loop forever trying to find the definitions of the conlikes referenced in the pragma. Fixes #13188 Reviewers: austin, RyanGlScott, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D3058 GHC Trac Issues: #13188
-rw-r--r--compiler/iface/TcIface.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/iface/TcIface.hs b/compiler/iface/TcIface.hs
index f6a4f41965..d2ddeb2b82 100644
--- a/compiler/iface/TcIface.hs
+++ b/compiler/iface/TcIface.hs
@@ -1033,8 +1033,9 @@ tcIfaceCompleteSigs :: [IfaceCompleteMatch] -> IfL [CompleteMatch]
tcIfaceCompleteSigs = mapM tcIfaceCompleteSig
tcIfaceCompleteSig :: IfaceCompleteMatch -> IfL CompleteMatch
-tcIfaceCompleteSig (IfaceCompleteMatch ms t) =
- CompleteMatch <$> (mapM tcIfaceConLike ms) <*> tcIfaceTyConByName t
+tcIfaceCompleteSig cm@(IfaceCompleteMatch ms t) =
+ forkM (text "COMPLETE" <+> ppr cm) $
+ CompleteMatch <$> mapM tcIfaceConLike ms <*> tcIfaceTyConByName t
{-
************************************************************************