Haskell / GHC - 是否有“警告不完整模式”的中缀标签/编译指示

时间:2011-04-25 02:08:25

标签: haskell pattern-matching ghc

我正在寻找一个警告,它将警告一个特定的不完整模式。它会使编译器失败,并带有以下(假设的)代码:

{-# FAILIF incomplete-patterns #-}
f :: Int -> Int
f 0 = 0

我正在尝试使用Arrows编写“编译器”,并且知道模式匹配已完成将有助于隔离错误。谢谢!

1 个答案:

答案 0 :(得分:11)

您可以使用-Wall

要求警告,包括不完整的模式
{-# OPTIONS_GHC -Wall #-}

module A where

f :: Int -> Int
f 0 = 0

产量:

A.hs:6:1:
Warning: Pattern match(es) are non-exhaustive
     In an equation for `f':
         Patterns not matched: GHC.Types.I# #x with #x `notElem` [0#]

或者更具体地说,-fwarn-incomplete-patterns取代-Wall

没有任何内容可以在每个表达式的基础上运行:您目前仅限于每个模块。