Change isClosedAlgType to be TYPE-aware, and rename it to pmIsClosedType
authorRyan Scott <ryan.gl.scott@gmail.com>
Sat, 12 Aug 2017 19:51:37 +0000 (15:51 -0400)
committerRyan Scott <ryan.gl.scott@gmail.com>
Sat, 12 Aug 2017 19:51:37 +0000 (15:51 -0400)
commit4f1f9868ae79b5730c6aa14b05394d3f1d10a857
tree7022353215793e9d2ac6678b74f318090a4a8c0b
parent7d699782bf6148c115a49b5f31ada9bd7c32a7d6
Change isClosedAlgType to be TYPE-aware, and rename it to pmIsClosedType

Summary:
In a267580e4ab37115dcc33f3b8a9af67b9364da12, I somewhat awkwardly
inserted a special case for `TYPE` in the `EmptyCase` coverage checker.
Instead of placing it there, @mpickering noted that `isClosedAlgType` would
be a better fit for it. I do just that in this patch.

I also renamed `isClosedAlgType` to `pmIsClosedType`, reflecting the fact that
`TYPE` technically isn't an algebraic type (it's a primitive one), and that its
behavior is pattern-match coverage checking-oriented. I also moved it to
`Check`, which is a better home for this function than `Type`. Luckily,
the only call sites for `isClosedAlgType` were in the pattern-match coverage
checker anyways, so this change is simple enough.

Test Plan: ./validate

Reviewers: mpickering, austin, goldfire, bgamari

Reviewed By: goldfire

Subscribers: rwbarton, thomie, mpickering

GHC Trac Issues: #14086

Differential Revision: https://phabricator.haskell.org/D3830
compiler/deSugar/Check.hs
compiler/types/FamInstEnv.hs
compiler/types/Type.hs