3

Eclipse でコンパイルおよび実行されるが、Intellij Idea (バージョン 12.0.6、scala プラグイン 0.22.302) ではコンパイルされない scala ワークシートの例があります。

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 の本体を一致する本体にインライン化できることはわかっています。しかし、アイデアでこれをバイパスする他のアプローチはありますか? そして、なぜEclipseで動作するのですか?

4

0 に答える 0