Используя флаг -Xprint
в scalac
, мы получаем выходные данные фаз компилятора , например, с учетом следующих Foo.scala
object Foo {
val x = 42
}
затем scalac -Xprint:jvm Foo.scala
выходных данных
package <empty> {
object Foo extends Object {
<static> private[this] val x: Int = _;
<stable> <accessor> def x(): Int = Foo.this.x;
def <init>(): Foo.type = {
Foo.super.<init>();
Foo.this.x = 42;
()
}
}
}
Как скомпилировать саму фазу, то есть, скажем, у нас есть исходный файл jvmphase.scala
примерно так
package <empty> { ...
, содержащий исходный код фазы вместо исходного ванильного исходного кода Scala,тогда как добиться чего-то похожего на scalac jvmphase.scala
?