The phase performs the following transformations on terms:
The umbrella matrix class.
A base class for transformers that maintain outerParam values for outer parameters of constructors.
The phase defined by this transform
Some intermediate pattern classes with shared structure *
A standard phase template
List of phase names, this phase should run after
List of phase names, this phase should run after
Phase name this phase will attach itself to, not allowing any phase to come between it and the phase name declared
Phase name this phase will attach itself to, not allowing any phase to come between it and the phase name declared
* Extractors **
This class does not change linearization
This class does not change linearization
Drops the 'i'th element of a list.
Drops the 'i'th element of a list.
Extract the nth element of a list and return it and the remainder.
Extract the nth element of a list and return it and the remainder.
Handles all translation of pattern matching.
Handles all translation of pattern matching.
Does given clazz define an outer field?
SubComponent are added to a HashSet and two phases are the same if they have the same name
SubComponent are added to a HashSet and two phases are the same if they have the same name
Internal flag to tell external from internal phases
Internal flag to tell external from internal phases
Issue a migration warning for instance checks which might be on an Array and for which the type parameter conforms to Seq, because these answers changed in 2.
Issue a migration warning for instance checks which might be on an Array and for which the type parameter conforms to Seq, because these answers changed in 2.8.
EqualsPattern *
EqualsPattern *
Create a new phase which applies transformer
Create a new phase which applies transformer
The transformer factory
The transformer factory
The phase corresponding to this subcomponent in the current compiler run
The phase corresponding to this subcomponent in the current compiler run
the name of the phase:
the name of the phase:
The following flags may be set by this phase:
The following flags may be set by this phase:
New flags defined by the phase which are not valid until immediately after it
New flags defined by the phase which are not valid until immediately after it
List of phase names, this phase should run before
List of phase names, this phase should run before
Transition *
Transition *
The type transformation method:
The type transformation method:
- Add an outer parameter to the formal parameters of a constructor in a inner non-trait class;
- Add a protected $outer field to an inner class which is not a trait.
-
Add an outer accessor $outer$$C to every inner class with fully qualified name C that is not an interface. The outer accessor is abstract for traits, concrete for other classes.
3a. Also add overriding accessor defs to every class that inherits mixin classes with outer accessor defs (unless the superclass already inherits the same mixin).
- Make all super accessors and modules in traits non-private, mangling their names.
- Remove protected flag from all members of traits.
Note: this transformInfo need not be reflected as the JVM reflection already elides outer pointers.
This class ...
1.0