Fix errors caused by invalid candidates leaking from hole fits
authorMatthías Páll Gissurarson <mpg@mpg.is>
Wed, 4 Jul 2018 11:54:54 +0000 (14:54 +0300)
committerBen Gamari <ben@smart-cactus.org>
Thu, 12 Jul 2018 21:06:11 +0000 (17:06 -0400)
commit22c951e6aab52adf32499a9568be44dc60e72acb
tree1bf62fcd81631740c3905d8f6b0fd31677389e56
parenta39b58d511f177c9c476cc104999caa67a55de2a
Fix errors caused by invalid candidates leaking from hole fits

This is a one line fix (and a note) that fixes four tickets, #15007,
 #15321 and #15202, #15314

The issue was that errors caused by illegal candidates (according to GHC
stage or being internal names) were leaking to the user, causing
bewildering error messages. If a candidate causes the type checker to
error, it is not a valid hole fit, and should be discarded.

As mentioned in #15321, this can cause a pattern of omissions, which
might be hard to discover. A better approach would be to gather the
error messages, and ask users to report them as GHC bugs. This will be
implemented in a subsequent change.

Reviewers: bgamari, simonpj

Reviewed By: simonpj

Subscribers: simonpj, rwbarton, thomie, carter

GHC Trac Issues: #15007, #15321, #15202, #15314

Differential Revision: https://phabricator.haskell.org/D4909

(cherry picked from commit 39de4e3d33dd9879398062620ad00b1e3b8481ce)
compiler/typecheck/TcHoleErrors.hs