Make NoExtCon fields strict
This changes every unused TTG extension constructor to be strict in
its field so that the pattern-match coverage checker is smart enough
any such constructors are unreachable in pattern matches. This lets
us remove nearly every use of noExtCon
in the GHC API. The only
ones we cannot remove are ones underneath uses of ghcPass
, but that
is only because GHC 8.8's and 8.10's coverage checkers weren't smart
enough to perform this kind of reasoning. GHC HEAD's coverage
checker, on the other hand, is smart enough, so we guard these uses
of noExtCon
with CPP for now.
Bumps the haddock
submodule.
Fixes #17992 (closed).