Rot*_*sor 12 scala pattern-matching non-exhaustive-patterns
考虑以下破坏的功能:
def sum (list : Seq[Int]) : Int = list match {
case Nil => 0
case head :: tail => head + sum(tail)
}
Run Code Online (Sandbox Code Playgroud)
在这里,该函数应该与a一起使用List[Int]
,但是被重构为接受Seq[Int]
,因此在没有编译器注意的情况下被破坏.
Scala不完整模式匹配检测中的这个空洞使得它几乎无用.
我想有办法系统地发现这些问题.具体来说,我希望编译器在每个instanceof
引导模式匹配时发出错误/警告,即我只想在密封层次结构和自定义匹配器上允许模式匹配.
是否存在用于对模式匹配安全性进行保守(而不是任意)检查的现有编译器选项/插件?
归档时间: |
|
查看次数: |
1297 次 |
最近记录: |