diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2017-02-01 22:54:31 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2017-02-01 23:37:48 -0500 |
commit | b16239a95b730dd2d6fc0dbb18c8430669f2c187 (patch) | |
tree | 8dd69e07a13b4db470c0e6b554b545e5114a929a /compiler/iface/TcIface.hs | |
parent | 1fcede43d2b30f33b7505e25eb6b1f321be0407f (diff) | |
download | haskell-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
Diffstat (limited to 'compiler/iface/TcIface.hs')
-rw-r--r-- | compiler/iface/TcIface.hs | 5 |
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 {- ************************************************************************ |