Don't generate wrappers for `type data` constructors with StrictData
Previously, the logic for checking if a data constructor needs a wrapper or not
would take into account whether the constructor's fields have explicit
strictness (e.g., data T = MkT !Int
), but the logic would not take into
account whether StrictData
was enabled. This meant that something like type data T = MkT Int
would incorrectly generate a wrapper for MkT
if
StrictData
was enabled, leading to the horrible errors seen in #24620 (closed). To fix
this, we disable generating wrappers for type data
constructors altogether.
Fixes #24620 (closed).