Skip to content

Make NoExtCon fields strict

Ryan Scott requested to merge wip/strict-NoExtCon into master

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).

Merge request reports