Intellij Idea Scala工作表前向参考

时间:2013-11-08 23:58:13

标签: scala intellij-idea

有一个scala工作表的例子,它在Eclipse中编译和执行但不能在Intellij Idea中编译(版本12.0.6与scala插件0.22.302)。

object trees {

  trait Tree

  case class Node(left: Tree, right: Tree) extends Tree

  case class Leaf(value: Int) extends Tree

  def treeSum(t: Tree): Int = t match {
    case n: Node => nodeSum(n)
    case l: Leaf => leafSum(l)
  }

  def nodeSum(n: Node): Int = {
    treeSum(n.left) + treeSum(n.right)
  }

  def leafSum(l: Leaf): Int = {
    l.value
  }

  val tree = new Node(Leaf(5), Leaf(1))
  treeSum(tree) 
}

Idea的问题是nodeSum是在使用后定义的。

 > <console>:13: error: not found: value nodeSum
 case n: Node => nodeSum(n)

这是正确的行为吗?我知道我可以将nodeSum和leafSum主体直接内联到匹配体。但是,还有其他方法可以在Idea中绕过这个吗?为什么它在Eclipse中有效?

0 个答案:

没有答案