如何将缺失字段警告更改为 GHC 中的错误

How to change missing-fields warning to an error in GHC

我在 haskell-stack 项目上使用 GHC。我想将缺少字段的警告提升为编译错误。

我尝试执行以下操作,但它不起作用。

{-# OPTIONS_GHC -Werror=missing-fields #-} -- DOESN'T WORK

你能告诉我如何将缺少的字段警告提升为编译错误吗?

这仅适用于 GHC 8.2.1 及更高版本。如果您使用的是 stack,当前的 LTS 解析器仅适用于 8.0.2。更新您的 GHC(在 stack 中,这将设置 compiler: ghc-8.2.1),或者只是将 所有 警告变成 -Werror -Wmissing-fields 的错误,然后坐稳直到该功能被更广泛地使用。 (如果你触发另一个警告,比如 missing-methods,它 在前者中保持 警告,但在后者中变成错误。)

只是让字段变得严格。这通常是一个很好的做法,因为它有助于避免 space 泄漏并可以导致其他优化。如果你真的不依赖懒惰,你可以将字段转换为严格。