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)
committerÖmer Sinan Ağacan <omeragacan@gmail.com>
Wed, 4 Jul 2018 12:41:40 +0000 (15:41 +0300)
commit39de4e3d33dd9879398062620ad00b1e3b8481ce
tree71ec9304b3125ba59a16b5ff902619ea310849ab
parent15bb4e0b6c08b1f8f5511f04af14242f13833ed1
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
compiler/typecheck/TcHoleErrors.hs