GHC是否可以将特定的警告视为错误,而将其他警告视为警告?

11

如何让ghc将某些类型的警告视为错误,而将其他警告视为警告,并仍然报告它们?

我希望可以通过类似以下方式实现:

ghc -Werror -fwarn-missing-methods -Wwarn -fwarn-missing-signatures

但我在这方面没有运气(我认为gcc也不支持这个)。

3个回答

7

请注意,从 GHC 8.2.1 开始,这个功能已经存在了!它在 Trac 票据#11219中描述,现在您可以执行ghc -Werror=missing-methods -Wmissing-signatures命令!


5
不,这是一种全开或全关的开关。但是,您可以进行以下操作。
ghc -Werror -fwarn-missing-methods -fno-warn-missing-signatures

虽然这会使 GHC 完全忽略警告,但这可能不是您想要的结果。

不,那正是我希望防止的。 - shahn

2

如果这是一个很大的问题,你可以考虑按模块启用或禁用警告。因此,在某些模块中,你可能会有:

 {-# OPTIONS_GHC -Wall -Werror #-}

在这里了解一切,而在其他方面:

(此处可能需要上下文来更好地翻译)
 {-# OPTIONS_GHC -w -Werror -fwarn-missing-methods #-}

仅将某些事物视为错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接