Perform Step 1 in the inline classes SIP: Creates extension methods for all methods in a value class, except parameter or super accessors, or constructors.
Additionally, for a value class V, let U be the underlying type after erasure. We add to the companion module of V two cast methods: def u2evt$(x0: U): ErasedValueType(V, U) def evt2u$(x0: ErasedValueType(V, U)): U The casts are used in Erasure to make it typecheck, they are then removed in ElimErasedValueType. This is different from the implementation of value classes in Scala 2 (see SIP-15) which uses asInstanceOf which does not typecheck.
Finally, if the constructor of a value class is private pr protected it is widened to public.
Also, drop the Local flag from all private[this] and protected[this] members that will be moved to the companion object.
Attributes
- Companion
 - object
 - Graph
 - 
    
 - Supertypes
 - 
    trait FullParameterizationtrait DenotTransformerclass MiniPhaseclass Phaseclass Objecttrait Matchableclass AnyShow all
 - Self type
 
Members list
Value members
Concrete methods
Can this transform create or delete non-private members?
Attributes
- Definition Classes
 
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/scalac -Vprint:<phaseNameHere> sourceFile.scala
               
              Attributes
- Definition Classes
 
List of names of phases that should precede this phase
List of names of phases that should have finished their processing of all compilation units before this phase starts
List of names of phases that should have finished their processing of all compilation units before this phase starts
Attributes
- Definition Classes
 
The transformation method
Attributes
- Definition Classes
 
Attributes
- Definition Classes
 
Inherited methods
If set, implicit search is enabled
Do not run if compile progress has been cancelled
Can this transform change the base types of a type?
Can this transform change the parents of a class?
Check what the phase achieves, to be called at any point after it is finished.
Check what the phase achieves, to be called at any point after it is finished.
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - Phase
 
True for all phases except NoPhase
Attributes
- Inherited from:
 - Phase
 
A forwarder expression which calls derived, passing along
A forwarder expression which calls derived, passing along
- if 
abstractOverClassthe type parameters and enclosing class parameters of originalDef`, - the 
thisof the enclosing class, - the value parameters of the original method 
originalDef. 
Attributes
- Inherited from:
 - FullParameterization
 
Given an instance method definition originalDef, return a fully parameterized method definition derived from originalDef, which has derived as symbol and fullyParameterizedType(originalDef.symbol.info) as info. abstractOverClass defines weather the DefDef should abstract over type parameters of class that contained original defDef
Given an instance method definition originalDef, return a fully parameterized method definition derived from originalDef, which has derived as symbol and fullyParameterizedType(originalDef.symbol.info) as info. abstractOverClass defines weather the DefDef should abstract over type parameters of class that contained original defDef
Attributes
- Inherited from:
 - FullParameterization
 
Converts the type info of a member of class clazz to a method type that takes the this of the class and any type parameters of the class as additional parameters. Example:
Converts the type info of a member of class clazz to a method type that takes the this of the class and any type parameters of the class as additional parameters. Example:
class Foo[+A <: AnyRef](val xs: List[A]) extends AnyVal { def baz[B >: A](x: B): List[B] = ... }
leads to:
object Foo { def extension$baz[B >: A <: Any, A >: Nothing <: AnyRef]($this: Foo[A])(x: B): List[B] }
If a self type is present, $this has this self type as its type.
Value parameters
- abstractOverClass
 - 
               
if true, include the type parameters of the class in the method's list of type parameters.
 - liftThisType
 - 
               
if true, require created $this to be $this: (Foo[A] & Foo,this). This is needed if created member stays inside scope of Foo(as in tailrec)
 
Attributes
- Inherited from:
 - FullParameterization
 
The sequence position of this phase in the given context where 0 is reserved for NoPhase and the first real phase is at position 1. -1 if the phase is not installed in the context.
The sequence position of this phase in the given context where 0 is reserved for NoPhase and the first real phase is at position 1. -1 if the phase is not installed in the context.
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - Phase
 
Output should be checkable by TreeChecker
This property is queried when phases are first assembled. If it is false, the phase will be dropped from the set of phases to traverse.
This property is queried when phases are first assembled. If it is false, the phase will be dropped from the set of phases to traverse.
Attributes
- Inherited from:
 - Phase
 
This property is queried before a phase is run. If it is false, the phase is skipped.
This property is queried before a phase is run. If it is false, the phase is skipped.
Attributes
- Definition Classes
 - Inherited from:
 - DenotTransformer
 
Is this phase the standard typerphase? True for TyperPhase, but not for other first phases (such as FromTasty or Parser). The predicate is tested in some places that perform checks and corrections. It's different from ctx.isAfterTyper (and cheaper to test).
Is this phase the standard typerphase? True for TyperPhase, but not for other first phases (such as FromTasty or Parser). The predicate is tested in some places that perform checks and corrections. It's different from ctx.isAfterTyper (and cheaper to test).
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - Phase
 
The last phase during which the transformed denotations are valid
The last phase during which the transformed denotations are valid
Attributes
- Inherited from:
 - DenotTransformer
 
Cancellable region, if not cancelled, run the body in the context of the current compilation unit. Enrich crash messages.
Cancellable region, if not cancelled, run the body in the context of the current compilation unit. Enrich crash messages.
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
A hook that allows to transform the usual context passed to the function that prints a compilation unit after a phase
A hook that allows to transform the usual context passed to the function that prints a compilation unit after a phase
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - Phase
 
If set, use relaxed typing for all phases in group
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - Phase
 
Attributes
- Inherited from:
 - Phase
 
Convert a compilation unit's tree to a string; can be overridden
Attributes
- Inherited from:
 - MiniPhase
 
skip the phase for a Java compilation unit, may depend on -Xjava-tasty
skip the phase for a Java compilation unit, may depend on -Xjava-tasty
Attributes
- Inherited from:
 - Phase
 
for purposes of progress tracking, overridden in TyperPhase
Transform tree using all transforms of current group (including this one)
Transform tree using all transforms of current group (including this one)
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Transform single node using all transforms following the current one in this group
Transform single node using all transforms following the current one in this group
Attributes
- Inherited from:
 - MiniPhase
 
Transform tree using all transforms following the current one in this group
Transform tree using all transforms following the current one in this group
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - MiniPhase
 
Attributes
- Inherited from:
 - Phase
 
The validity period of the transformed denotations in the given context
The validity period of the transformed denotations in the given context
Attributes
- Inherited from:
 - DenotTransformer
 
Inherited fields
Attributes
- Inherited from:
 - MiniPhase