Может ли GHC обрабатывать определенные предупреждения как ошибки, а другие как предупреждения? - PullRequest
11 голосов
/ 09 мая 2011

Можно ли как-то убедить ghc трактовать определенные типы предупреждений как ошибки, а другие как предупреждения, при этом сообщая о них?

Я надеялся, что это будет возможно с чем-то вроде этого:

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

, но мне не повезло с этим.(Я думаю, что gcc это тоже не поддерживает.)

Ответы [ 3 ]

5 голосов
/ 25 сентября 2017

Обратите внимание, что начиная с GHC 8.2.1, эта функция существует! Это было описано Trac ticket # 11219 и теперь вы можете сделать ghc -Werror=missing-methods -Wmissing-signatures!

5 голосов
/ 09 мая 2011

Нет, это переключатель «все или ничего». Тем не менее, вы можете сделать

ghc -Werror -fwarn-missing-methods -fno-warn-missing-signatures

Хотя это заставляет GHC полностью проглотить предупреждение, что может быть не тем, что вы хотели.

2 голосов
/ 09 мая 2011

Если это вызывает серьезную обеспокоенность, вы можете рассмотреть возможность включения и отключения предупреждений для каждого модуля.Чтобы в некоторых модулях у вас было:

 {-# OPTIONS_GHC -Wall -Werror #-}

здесь обо всем, в то время как в других:

 {-# OPTIONS_GHC -w -Werror -fwarn-missing-methods #-}

, чтобы разрешить только некоторые вещи как ошибки.

...