2

合成値はいつ生成されますか? それらは何に使用されますか?どのコンパイラ フェーズで消去されますか? scala コンパイラ プラグインを作成するときに、合成値に関するエラーが発生し続けます。エラーは次のとおりです。

エラー: scala.reflect.internal.FatalError: シンボル値 x$3#33790 が scala.collection.immutable.Stream.scala$collection$immutable$Stream$$advance$1 に存在しません。ローカル値 newvalue#39255、値 newvalue が含まれています#39254,値残り#33601,値スタブ1#33600,値スタブ0#33599.

Method code: def advance(stub0: List[A], stub1: List[A], rest: Stream[A]): Stream[A] = if (rest.isEmpty())
  Stream.empty()
else
  {
    if (stub0.isEmpty())
      {
        val newvalue: scala#27.collection#2835.immutable#5932.Stream#8383 = Stream.this.scala$collection$immutable$Stream$$advance$1(stub1.reverse(), Nil, rest);
        newvalue
      }
    else
      {
        val newvalue: collection#2835.immutable#5932.Stream$Cons#11078 = scala.collection.immutable.Stream$cons.apply(stub0.head(), {
          ((new <$anon: Function0#2069>(Stream.this, stub0, stub1, rest, x$3)): Function0#2069)
        });
        newvalue
      }
  }
4

0 に答える 0