class TargetModulePipeline[+G <: Global] extends ScalanizerPipeline[G]
- Alphabetic
- By Inheritance
- TargetModulePipeline
- ScalanizerPipeline
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new TargetModulePipeline(s: Scalanizer[G])
Type Members
-
case class
ForEachUnitStep(name: String)(action: (UnitStepContext) ⇒ Unit) extends PipelineStep with Product with Serializable
- Definition Classes
- ScalanizerPipeline
-
sealed
trait
PipelineStep extends AnyRef
- Definition Classes
- ScalanizerPipeline
-
case class
RunStep(name: String)(action: (PipelineStep) ⇒ Unit) extends PipelineStep with Product with Serializable
- Definition Classes
- ScalanizerPipeline
-
trait
UnitStepContext extends AnyRef
- Definition Classes
- ScalanizerPipeline
-
case class
WrapperCake(traitDef: STraitDef, wrappers: List[SUnitDef]) extends Product with Serializable
- Definition Classes
- ScalanizerPipeline
Value Members
-
object
UnitStepContext
- Definition Classes
- ScalanizerPipeline
-
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
-
def
catchSpecialWrapper(owner: SEntitySymbol, tree: G.Tree): Boolean
- Definition Classes
- ScalanizerPipeline
-
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
- def collectWrappers(step: PipelineStep, target: TargetModuleConf): Map[SSymName, SUnitDef]
-
lazy val
components: List[ScalanizerComponent]
- Definition Classes
- ScalanizerPipeline
- def copyFile(sourceFile: File, targetFile: File): Boolean
- def copyScalanizedUnit(preparedUnit: SUnitDef, unitConf: UnitConfig, target: TargetModuleConf): Unit
-
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
-
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
-
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
-
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
-
def
forEachUnitComponent(runsAfter: List[String], step: ForEachUnitStep): ScalanizerComponent { def newPhase(prev: scala.reflect.internal.Phase): this.StdPhase }
- Definition Classes
- ScalanizerPipeline
-
def
forRunComponent(runsAfter: List[String], step: RunStep): ScalanizerComponent { def newPhase(prev: scala.reflect.internal.Phase): this.StdPhase }
- Definition Classes
- ScalanizerPipeline
-
def
formExternalMethodDef(owner: SEntitySymbol, name: String, tpeArgs: List[STpeArg], argSections: List[SMethodArgs], tpeRes: STpeExpr): SMethodDef
- Definition Classes
- ScalanizerPipeline
-
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
-
def
formMethodRes(res: G.Type): STpeExpr
- Definition Classes
- ScalanizerPipeline
-
def
formMethodTypeArgs(targs: List[G.Symbol]): List[STpeArg]
- Definition Classes
- ScalanizerPipeline
-
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
-
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
-
def
initWrapperCake(): WrapperCake
- Definition Classes
- ScalanizerPipeline
-
def
isEnabled: Boolean
- Definition Classes
- TargetModulePipeline → ScalanizerPipeline
-
def
isHotSpotTree(tree: G.Tree): Boolean
Checks that the method has @HotSpot
Checks that the method has @HotSpot
- Definition Classes
- ScalanizerPipeline
-
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
-
def
isWrapperType(tpe: G.Type): Boolean
- Definition Classes
- ScalanizerPipeline
-
def
loadLibraryDeps(step: PipelineStep, lib: LibraryConfig)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit
- Definition Classes
- ScalanizerPipeline
-
def
loadModuleUnits(step: PipelineStep, sourceMod: ModuleConf)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit
- Definition Classes
- ScalanizerPipeline
-
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
-
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
-
def
loadWrapperFromResource(step: PipelineStep, module: ModuleConf, wConf: WrapperConf)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit
- Definition Classes
- ScalanizerPipeline
-
def
mkCompanionAncestors(wClassName: String, kind: Int): List[STypeApply]
- Definition Classes
- ScalanizerPipeline
- val moduleBuilder: SModuleBuilder
-
val
name: String
- Definition Classes
- TargetModulePipeline → ScalanizerPipeline
- def prepareSourceUnit(unitConf: UnitConfig, target: TargetModuleConf): SUnitDef
- val preparedUnits: Map[SSymName, (SUnitDef, UnitConfig)]
-
def
registerArrayOp(owner: SEntitySymbol, mkOp: (SSymbol, STpeArg) ⇒ SMethodDef): Unit
- Definition Classes
- ScalanizerPipeline
-
val
runAfter: List[String]
- Definition Classes
- TargetModulePipeline → ScalanizerPipeline
- def saveWrappersCake(sourceRoot: String, cake: WrapperCake): File
-
val
scalanizer: Scalanizer[G]
- Definition Classes
- ScalanizerPipeline
-
val
steps: List[PipelineStep]
- Definition Classes
- TargetModulePipeline → ScalanizerPipeline
-
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
-
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
-
def
updateWrapperSpecial(packageName: String, externalTypeName: String, tpeArgs: STpeArgs, originalEntityAncestors: List[STypeApply], isCompanion: Boolean, member: SMethodDef): Unit
- Definition Classes
- ScalanizerPipeline
-
def
updateWrappersCake(cake: WrapperCake, wUnit: SUnitDef): WrapperCake
- Definition Classes
- ScalanizerPipeline
-
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