Packages

abstract class Delambdafy extends SubComponent with Transform with TypingTransformers with TreeDSL with TypeAdaptingTransformer

This transformer is responsible for preparing Function nodes for runtime, by translating to a tree that will be converted to an invokedynamic by the backend.

The main assumption it makes is that a Function {args => body} has been turned into {args => liftedBody()} where lifted body is a top level method that implements the body of the function. Currently Uncurry is responsible for that transformation.

From this shape of Function, Delambdafy will create:

An application of the captured arguments to a fictional symbol representing the lambda factory. This will be translated by the backed into an invokedynamic using a bootstrap method in JDK8's LambdaMetaFactory. The captured arguments include this if liftedBody is unable to be made STATIC.

Source
Delambdafy.scala
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Delambdafy
  2. TypeAdaptingTransformer
  3. TreeDSL
  4. TypingTransformers
  5. Transform
  6. SubComponent
  7. AnyRef
  8. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Delambdafy()

Type Members

  1. abstract class StdPhase extends GlobalPhase

    A standard phase template

    A standard phase template

    Definition Classes
    SubComponent
  2. class DelambdafyTransformer extends TypingTransformer
  3. class FreeVarTraverser extends Global.Traverser
  4. final case class LambdaMetaFactoryCapable(lambdaTarget: Global.Symbol, arity: Int, functionalInterface: Global.Symbol, sam: Global.Symbol, bridges: List[Global.Symbol], isSerializable: Boolean, addScalaSerializableMarker: Boolean) extends Product with Serializable
  5. class SkipPhase extends StdPhase
  6. class ThisReferringMethodsTraverser extends Global.Traverser
  7. class Phase extends StdPhase

    The phase defined by this transform

    The phase defined by this transform

    Definition Classes
    Transform
  8. abstract class TypeAdapter extends AnyRef
    Definition Classes
    TypeAdaptingTransformer
  9. abstract class TypingTransformer extends Global.Transformer
    Definition Classes
    TypingTransformers

Abstract Value Members

  1. abstract val global: Global
    Definition Classes
    TreeDSL
  2. abstract val runsAfter: List[String]

    Names of phases that must run before this phase.

    Names of phases that must run before this phase.

    Definition Classes
    SubComponent
  3. abstract val runsRightAfter: Option[String]

    Name of the phase that this phase must follow immediately.

    Name of the phase that this phase must follow immediately.

    Definition Classes
    SubComponent

Concrete Value Members

  1. object CODE
    Definition Classes
    TreeDSL
  2. final def afterOwnPhase[T](op: ⇒ T): T
    Definition Classes
    SubComponent
    Annotations
    @inline()
  3. val analyzer: Global.analyzer
  4. final def beforeOwnPhase[T](op: ⇒ T): T
    Definition Classes
    SubComponent
    Annotations
    @inline()
  5. def enabled: Boolean

    Is this component enabled? Default is true.

    Is this component enabled? Default is true.

    Definition Classes
    SubComponent
  6. def hashCode(): Int

    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

    Definition Classes
    SubComponent → AnyRef → Any
  7. val initial: Boolean

    True if this phase runs before all other phases.

    True if this phase runs before all other phases. Usually, parser.

    Definition Classes
    SubComponent
  8. val internal: Boolean

    True if this phase is not provided by a plug-in.

    True if this phase is not provided by a plug-in.

    Definition Classes
    SubComponent
  9. def newPhase(prev: nsc.Phase): StdPhase

    Create a new phase which applies transformer

    Create a new phase which applies transformer

    Definition Classes
    DelambdafyTransformSubComponent
  10. def ownPhase: nsc.Phase

    The phase corresponding to this subcomponent in the current compiler run

    The phase corresponding to this subcomponent in the current compiler run

    Definition Classes
    SubComponent
  11. val phaseName: String

    the following two members override abstract members in Transform

    the following two members override abstract members in Transform

    Definition Classes
    DelambdafySubComponent
  12. def phaseNewFlags: Long

    New flags defined by the phase which are not valid before

    New flags defined by the phase which are not valid before

    Definition Classes
    SubComponent
  13. def phaseNextFlags: Long

    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

    Definition Classes
    SubComponent
  14. val requires: List[String]

    Names of phases required by this component.

    Names of phases required by this component. Default is Nil.

    Definition Classes
    SubComponent
  15. val runsBefore: List[String]

    Names of phases that must run after this phase.

    Names of phases that must run after this phase. Default is Nil.

    Definition Classes
    SubComponent
  16. val terminal: Boolean

    True if this phase runs after all other phases.

    True if this phase runs after all other phases. Usually, terminal.

    Definition Classes
    SubComponent
  17. object FreeVarTraverser