[[syntax trees at end of lambdalift]] // newSource1.scala package { class T extends Object { private[this] val classParam: String = _; def (classParam: String): T = { T.super.(); () }; private[this] val field: String = ""; def field(): String = T.this.field; def foo(methodParam: String): Function0 = { val methodLocal: String = ""; { (() => T.this.$anonfun$1(methodParam, methodLocal)).$asInstanceOf[Function0]() } }; def bar(barParam: String): Object = { @volatile var MethodLocalObject$module: runtime.VolatileObjectRef = scala.runtime.VolatileObjectRef.zero(); T.this.MethodLocalObject$1(barParam, MethodLocalObject$module) }; def tryy(tryyParam: String): Function0 = { var tryyLocal: runtime.ObjectRef = scala.runtime.ObjectRef.create(""); { (new <$anon: Function0>(T.this, tryyParam, tryyLocal): Function0) } }; final private[this] def $anonfun$1(methodParam$1: String, methodLocal$1: String): String = T.this.classParam.+(T.this.field()).+(methodParam$1).+(methodLocal$1); abstract trait MethodLocalTrait$1 extends Object { def $outer(): T }; object MethodLocalObject$2 extends Object with T#MethodLocalTrait$1 { def ($outer: T, barParam$1: String): T#MethodLocalObject$2.type = { MethodLocalObject$2.super.(); MethodLocalObject$2.this.$asInstanceOf[T#MethodLocalTrait$1$class]()./*MethodLocalTrait$1$class*/$init$(barParam$1); () }; private[this] val $outer: T = _; def $outer(): T = MethodLocalObject$2.this.$outer; def $outer(): T = MethodLocalObject$2.this.$outer }; final private[this] def MethodLocalObject$1(barParam$1: String, MethodLocalObject$module$1: runtime.VolatileObjectRef): T#MethodLocalObject$2.type = { MethodLocalObject$module$1.elem = new T#MethodLocalObject$2.type(T.this, barParam$1); MethodLocalObject$module$1.elem.$asInstanceOf[T#MethodLocalObject$2.type]() }; abstract trait MethodLocalTrait$1$class extends Object with T#MethodLocalTrait$1 { def /*MethodLocalTrait$1$class*/$init$(barParam$1: String): Unit = { () }; scala.this.Predef.print(barParam$1) }; @SerialVersionUID(value = 0) final class $anonfun$tryy$1 extends scala.runtime.AbstractFunction0$mcV$sp with Serializable { def ($outer: T, tryyParam$1: String, tryyLocal$1: runtime.ObjectRef): <$anon: Function0> = { $anonfun$tryy$1.super.(); () }; final def apply(): Unit = $anonfun$tryy$1.this.apply$mcV$sp(); def apply$mcV$sp(): Unit = try { $anonfun$tryy$1.this.tryyLocal$1.elem = $anonfun$tryy$1.this.tryyParam$1 } finally (); private[this] val $outer: T = _; def $outer(): T = $anonfun$tryy$1.this.$outer; final def apply(): Object = { $anonfun$tryy$1.this.apply(); scala.runtime.BoxedUnit.UNIT }; private[this] val tryyParam$1: String = _; private[this] val tryyLocal$1: runtime.ObjectRef = _ } } } warning: there was one feature warning; re-run with -feature for details