This transform - moves initializers from body to constructor. - makes all supercalls explicit - also moves private fields that are accessed only from constructor into the constructor if possible.
Constructors
Members
All initializers for non-lazy fields should be moved into constructor. All non-abstract methods should be implemented (this is assured for constructors
All initializers for non-lazy fields should be moved into constructor. All non-abstract methods should be implemented (this is assured for constructors in this phase and for other methods in memoize).
Class members that can be eliminated if referenced only from their own constructor.
Class members that can be eliminated if referenced only from their own constructor.
A name given to the Phase
that can be used to debug the compiler. For
instance, it is possible to print trees after a given phase using:
A name given to the Phase
that can be used to debug the compiler. For
instance, it is possible to print trees after a given phase using:
$ ./bin/dotc -Xprint:<phaseNameHere> sourceFile.scala
List of names of phases that should precede this phase
List of names of phases that should precede this phase