import scala.reflect.runtime.universe._ import scala.tools.reflect.Eval object Test extends App { { var _x = 42 def x = { val x0 = _x; _x += 1; x0 } var _y = 1 def y = { val y0 = _y + _x; _y += y0; y0 } val code = reify { def foo = y // ensures that y is the first freevar we find println(x) println(y) println(x) } code.eval } }