【发布时间】:2021-04-09 02:00:21
【问题描述】:
我有一段代码收到来自 Scala 2.13.4 的“匹配可能并不详尽”警告,我想使用@unchecked 抑制该警告注解。不幸的是,我插入@unchecked 的所有尝试都只是导致语法错误。
这是原始代码的无情简化版:
def foo(xs: Seq[Int], n: Int)(f: (Seq[Int], Int) => Int): Int = f(xs, n)
foo(Seq(1,2), 0) { case (Seq(a,b), c) => a + b + c }
问题:为了抑制警告,我应该将@unchecked 在调用站点的语法放在哪里?
附注我想压制警告,而不是开始讨论这是否是邪恶的;-)
【问题讨论】:
-
我不确定我是否正确,但我无法重现它:scastie.scala-lang.org/toshetah/jujYc1IDTx20lIRZSGjPBA/3
-
@TomerShetah 有趣 - 我会检查项目的编译器选项是什么,也许那里有什么特别之处。不管怎样,我还是想知道把
@unchecked放在哪里。 -
@TomerShetah 不需要重现警告:如果您设法挤入
@unchecked而不会导致编译器错误,那么您已经帮助了我:-) -
我希望我的代码中有足够的未经检查的内容来帮助你:)
标签: scala pattern-matching compiler-warnings suppress-warnings non-exhaustive-patterns