首页 > 解决方案 > IntelliJ 在惰性 vals 中使用 `throw` 使代码变灰 - 这是一个错误吗?

问题描述

IntelliJ 将此代码显示为灰色。我认为是因为它看到throw并认为代码无法访问。但是,它可访问的,因为它throw位于惰性 val 中:

lazy val handleMissing = {
  throw new IllegalStateException(s"Unbound type var $name")
}
map.getOrElse(name, handleMissing)

与上面的代码示例相同

斯卡斯蒂

标签: scalaintellij-idea

解决方案


这是一个错误:youtrack.jetbrains.com/issue/SCL-16859谢谢@IlyaKlyuchnikov

一种解决方法是将代码提取到单独的函数中。


推荐阅读