我正在寻找一个可以对特定的不完整模式发出警告的编译指示。它会使编译器失败并显示以下(假设的)代码:
{-# FAILIF incomplete-patterns #-}
f :: Int -> Int
f 0 = 0
我正在尝试使用 Arrows 编写一个“编译器”,并且知道模式匹配完成将有助于隔离错误。谢谢!
您可以要求警告,包括不完整的模式,-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
.
没有什么可以在每个表达式的基础上工作:您目前仅限于每个模块的基础。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)