c

scalan.plugin

TargetModulePipeline

class TargetModulePipeline[+G <: Global] extends ScalanizerPipeline[G]

Linear Supertypes
ScalanizerPipeline[G], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TargetModulePipeline
  2. ScalanizerPipeline
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new TargetModulePipeline(s: Scalanizer[G])

Type Members

  1. case class ForEachUnitStep(name: String)(action: (UnitStepContext) ⇒ Unit) extends PipelineStep with Product with Serializable
    Definition Classes
    ScalanizerPipeline
  2. sealed trait PipelineStep extends AnyRef
    Definition Classes
    ScalanizerPipeline
  3. case class RunStep(name: String)(action: (PipelineStep) ⇒ Unit) extends PipelineStep with Product with Serializable
    Definition Classes
    ScalanizerPipeline
  4. trait UnitStepContext extends AnyRef
    Definition Classes
    ScalanizerPipeline
  5. case class WrapperCake(traitDef: STraitDef, wrappers: List[SUnitDef]) extends Product with Serializable
    Definition Classes
    ScalanizerPipeline

Value Members

  1. object UnitStepContext
    Definition Classes
    ScalanizerPipeline
  2. def addMember(isCompanion: Boolean, member: SMethodDef, wrapper: WrapperDescr): WrapperDescr

    Adds a method or a value to the wrapper.

    Adds a method or a value to the wrapper. The member is added into the first entity in the list if it is not already there. Other entities if any are ignored and left unchanged

    isCompanion

    specifies where to put the method (value) - into class or its companion.

    Definition Classes
    ScalanizerPipeline
  3. def catchSpecialWrapper(owner: SEntitySymbol, tree: G.Tree): Boolean
    Definition Classes
    ScalanizerPipeline
  4. def catchWrapperUsage(owner: SEntitySymbol, tree: G.Tree): Unit

    For each method call, create type wrapper if the external type should be wrapped.

    For each method call, create type wrapper if the external type should be wrapped.

    Definition Classes
    ScalanizerPipeline
  5. def collectWrappers(step: PipelineStep, target: TargetModuleConf): Map[SSymName, SUnitDef]
  6. lazy val components: List[ScalanizerComponent]
    Definition Classes
    ScalanizerPipeline
  7. def copyFile(sourceFile: File, targetFile: File): Boolean
  8. def copyScalanizedUnit(preparedUnit: SUnitDef, unitConf: UnitConfig, target: TargetModuleConf): Unit
  9. def createDependencies(objType: G.Type): Unit

    For the given type, find all dependencies and wrap them.

    For the given type, find all dependencies and wrap them.

    Definition Classes
    ScalanizerPipeline
  10. def createMemberDependencies(memberType: G.Type): Unit

    Traversing of the type and adding of wrappers for external types.

    Traversing of the type and adding of wrappers for external types.

    Definition Classes
    ScalanizerPipeline
  11. def createWrapper(externalType: G.Type): WrapperDescr

    Creates scalan-meta Module for an external type symbol.

    Creates scalan-meta Module for an external type symbol. For example: trait WCols extends Base with TypeWrappers { self: Wrappers => trait WCol[A] extends Def[WCol[A]] { self => def arr: Array[A] }; trait WColCompanion extends ExCompanion1[WCol] } where externalType is "class Col" one of the members is "def arr: Array[A]"

    Definition Classes
    ScalanizerPipeline
  12. def createWrapperSpecial(wrapperConf: WrapperConf, packageName: String, externalTypeName: String, tpeArgs: STpeArgs, originalEntityAncestors: List[STypeApply]): WrapperDescr

    Create wrapper module for a new type externalTypeName

    Create wrapper module for a new type externalTypeName

    Definition Classes
    ScalanizerPipeline
  13. def forEachUnitComponent(runsAfter: List[String], step: ForEachUnitStep): ScalanizerComponent { def newPhase(prev: scala.reflect.internal.Phase): this.StdPhase }
    Definition Classes
    ScalanizerPipeline
  14. def forRunComponent(runsAfter: List[String], step: RunStep): ScalanizerComponent { def newPhase(prev: scala.reflect.internal.Phase): this.StdPhase }
    Definition Classes
    ScalanizerPipeline
  15. def formExternalMethodDef(owner: SEntitySymbol, name: String, tpeArgs: List[STpeArg], argSections: List[SMethodArgs], tpeRes: STpeExpr): SMethodDef
    Definition Classes
    ScalanizerPipeline
  16. def formMethodArgs(args: List[G.Symbol]): List[SMethodArg]

    Form the list of method arguments in terms of Meta AST by using symbols from Scala AST.

    Form the list of method arguments in terms of Meta AST by using symbols from Scala AST.

    Definition Classes
    ScalanizerPipeline
  17. def formMethodRes(res: G.Type): STpeExpr
    Definition Classes
    ScalanizerPipeline
  18. def formMethodTypeArgs(targs: List[G.Symbol]): List[STpeArg]
    Definition Classes
    ScalanizerPipeline
  19. def genUnitBoilerplateText(mc: ModuleConf, unit: SUnitDef, isVirtualized: Boolean): String

    Calls Scalan Meta to generate boilerplate code for the unit.

    Calls Scalan Meta to generate boilerplate code for the unit.

    Definition Classes
    ScalanizerPipeline
  20. def getExtTypeAncestors(externalType: G.Type): List[STypeApply]

    Gets the list of ancestors of the external type in term of Meta AST.

    Gets the list of ancestors of the external type in term of Meta AST.

    Definition Classes
    ScalanizerPipeline
  21. def initWrapperCake(): WrapperCake
    Definition Classes
    ScalanizerPipeline
  22. def isEnabled: Boolean
  23. def isHotSpotTree(tree: G.Tree): Boolean

    Checks that the method has @HotSpot

    Checks that the method has @HotSpot

    Definition Classes
    ScalanizerPipeline
  24. def isWrapperSym(sym: G.Symbol): Boolean

    Applying of the policy: wrap all types outside of virtualization scope.

    Applying of the policy: wrap all types outside of virtualization scope.

    Definition Classes
    ScalanizerPipeline
  25. def isWrapperType(tpe: G.Type): Boolean
    Definition Classes
    ScalanizerPipeline
  26. def loadLibraryDeps(step: PipelineStep, lib: LibraryConfig)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit
    Definition Classes
    ScalanizerPipeline
  27. def loadModuleUnits(step: PipelineStep, sourceMod: ModuleConf)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit
    Definition Classes
    ScalanizerPipeline
  28. def loadProjectModuleDeps(step: PipelineStep, projectMod: ModuleConf)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit

    Loads all the dependencies of this project module (Source or Target)

    Loads all the dependencies of this project module (Source or Target)

    Definition Classes
    ScalanizerPipeline
  29. def loadWrapperFromFile(step: PipelineStep, module: ModuleConf, wConf: WrapperConf)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit

    Replaces external types by their wrappers.

    Replaces external types by their wrappers. For example: trait Col[A] { def arr: Array[A]; } The external type Array is replaced by its wrapper WArray trait Col[A] { def arr: WArray[A]; }

    Definition Classes
    ScalanizerPipeline
  30. def loadWrapperFromResource(step: PipelineStep, module: ModuleConf, wConf: WrapperConf)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit
    Definition Classes
    ScalanizerPipeline
  31. def mkCompanionAncestors(wClassName: String, kind: Int): List[STypeApply]
    Definition Classes
    ScalanizerPipeline
  32. val moduleBuilder: SModuleBuilder
  33. val name: String
  34. def prepareSourceUnit(unitConf: UnitConfig, target: TargetModuleConf): SUnitDef
  35. val preparedUnits: Map[SSymName, (SUnitDef, UnitConfig)]
  36. def registerArrayOp(owner: SEntitySymbol, mkOp: (SSymbol, STpeArg) ⇒ SMethodDef): Unit
    Definition Classes
    ScalanizerPipeline
  37. val runAfter: List[String]
  38. def saveWrappersCake(sourceRoot: String, cake: WrapperCake): File
  39. val scalanizer: Scalanizer[G]
    Definition Classes
    ScalanizerPipeline
  40. val steps: List[PipelineStep]
  41. def uncurryMethodType(method: G.Type): (List[SMethodArgs], STpeExpr)

    Converts curried method type its uncurried Meta AST representation.

    Converts curried method type its uncurried Meta AST representation.

    Definition Classes
    ScalanizerPipeline
  42. def updateWrapper(owner: SEntitySymbol, objType: G.Type, methodName: G.Name, methodReturnType: G.Type, methodSym: G.Symbol): Unit

    Create/update Meta AST of the module for the external type.

    Create/update Meta AST of the module for the external type. It assembles Meta AST of a method (value) by its Scala's Type.

    Definition Classes
    ScalanizerPipeline
  43. def updateWrapperSpecial(packageName: String, externalTypeName: String, tpeArgs: STpeArgs, originalEntityAncestors: List[STypeApply], isCompanion: Boolean, member: SMethodDef): Unit
    Definition Classes
    ScalanizerPipeline
  44. def updateWrappersCake(cake: WrapperCake, wUnit: SUnitDef): WrapperCake
    Definition Classes
    ScalanizerPipeline
  45. def wrapperNames(externalName: String): (String, String, String)

    Gets names of an external type, its class and its module.

    Gets names of an external type, its class and its module.

    Definition Classes
    ScalanizerPipeline