// > scalac -Xprint:jvm Fib.scala > Fib_xprint_jvm.txt [[syntax trees at end of jvm]]// Scala source: Fib.scala package { final object Fib extends java.lang.Object with ScalaObject { private[this] val fib: scala.collection.immutable.Stream = _; def fib(): scala.collection.immutable.Stream = Fib.this.fib; def main(args: Array[java.lang.String]): Unit = scala.this.Predef.println(Fib.this.fib().take(10).toList()); def this(): object Fib = { Fib.super.this(); Fib.this.fib = { val x$2: Int = 1; immutable.this.Stream.consWrapper({ (new anonymous class Fib$$anonfun$1(): Function0) }).#::(scala.Int.box(x$2)) }; () } }; @SerialVersionUID(0) final class Fib$$anonfun$1$$anonfun$apply$1 extends scala.runtime.AbstractFunction0 with Serializable { final def apply(): scala.collection.immutable.Stream = Fib.this.fib(); final def apply(): java.lang.Object = Fib$$anonfun$1$$anonfun$apply$1.this.apply(); def this($outer: anonymous class Fib$$anonfun$1): anonymous class Fib$$anonfun$1$$anonfun$apply$1 = { Fib$$anonfun$1$$anonfun$apply$1.super.this(); () } }; @SerialVersionUID(0) final class Fib$$anonfun$1$$anonfun$apply$2 extends scala.runtime.AbstractFunction1 with Serializable { final def apply(x0$1: Tuple2): Int = { val temp1: Tuple2 = x0$1; if (temp1.ne(null)) { scala.Int.unbox(temp1._1()).+(scala.Int.unbox(temp1._2())) } else throw new MatchError(temp1) }; final def apply(v1: java.lang.Object): java.lang.Object = scala.Int.box(Fib$$anonfun$1$$anonfun$apply$2.this.apply(v1.$asInstanceOf[Tuple2]())); def this($outer: anonymous class Fib$$anonfun$1): anonymous class Fib$$anonfun$1$$anonfun$apply$2 = { Fib$$anonfun$1$$anonfun$apply$2.super.this(); () } }; @SerialVersionUID(0) final class Fib$$anonfun$1 extends scala.runtime.AbstractFunction0 with Serializable { final def apply(): scala.collection.immutable.Stream = { val x$1: Int = 0; immutable.this.Stream.consWrapper({ (new anonymous class Fib$$anonfun$1$$anonfun$apply$1(Fib$$anonfun$1.this): Function0) }).#::(scala.Int.box(x$1)) }.zip(Fib.this.fib(), immutable.this.Stream.canBuildFrom()).$asInstanceOf[scala.collection.immutable.Stream]().map({ (new anonymous class Fib$$anonfun$1$$anonfun$apply$2(Fib$$anonfun$1.this): Function1) }, immutable.this.Stream.canBuildFrom()).$asInstanceOf[scala.collection.immutable.Stream](); final def apply(): java.lang.Object = Fib$$anonfun$1.this.apply(); def this(): anonymous class Fib$$anonfun$1 = { Fib$$anonfun$1.super.this(); () } } }