この本を進めていて、途中、Eitherの実装の章でコンパイルが通らなくなった。
リンク
エラーの内容はこんな感じ。
Either.scala:16: error: constructor cannot be instantiated to expected type; found : scala.util.Left[A(in class Left),B] required: Either[E,A(in trait Either)] case Left(value) => Left(value)
traitで実装しているメソッド内に同ファイル内の後ろに定義されているオブジェクトを参照していると、リンクされないようだ。
写経ミスかなと思って確認しても合ってそうだし、書籍のGithub上のコードで試してもダメ。かなり楽しんで進めていただけにちょっとがっかり感が...(^_^;)
コマンドは
$ sbt console
した後、
> scala :load Either.scala
のようにloadしていた。
解決編
どうやら、loadではダメなようで、都度、sbtでcompile & リンクしないといけないらしい。
$ sbt sbt:errorhandling> console # 変更したら... scala > :quit sbt:errorhandling> compile sbt:errorhandling> console scala> TargetObject.methodName()
で試せるようになった。