abstract class ScalanizerPipeline[+G <: Global] extends AnyRef
- Alphabetic
- By Inheritance
- ScalanizerPipeline
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new ScalanizerPipeline(scalanizer: Scalanizer[G])
Type Members
- case class ForEachUnitStep(name: String)(action: (UnitStepContext) ⇒ Unit) extends PipelineStep with Product with Serializable
- sealed trait PipelineStep extends AnyRef
- case class RunStep(name: String)(action: (PipelineStep) ⇒ Unit) extends PipelineStep with Product with Serializable
- trait UnitStepContext extends AnyRef
- case class WrapperCake(traitDef: STraitDef, wrappers: List[SUnitDef]) extends Product with Serializable
Abstract Value Members
- abstract def isEnabled: Boolean
- abstract def name: String
- abstract def runAfter: List[String]
- abstract def steps: List[PipelineStep]
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
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.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
- def catchSpecialWrapper(owner: SEntitySymbol, tree: G.Tree): Boolean
-
def
catchWrapperUsage(owner: SEntitySymbol, tree: G.Tree): Unit
For each method call, create type wrapper if the external type should be wrapped.
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- lazy val components: List[ScalanizerComponent]
-
def
createComponents(): List[ScalanizerComponent]
- Attributes
- protected
-
def
createDependencies(objType: G.Type): Unit
For the given type, find all dependencies and wrap them.
-
def
createMemberDependencies(memberType: G.Type): Unit
Traversing of the type and adding of wrappers for external types.
-
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]"
-
def
createWrapperSpecial(wrapperConf: WrapperConf, packageName: String, externalTypeName: String, tpeArgs: STpeArgs, originalEntityAncestors: List[STypeApply]): WrapperDescr
Create wrapper module for a new type externalTypeName
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- def forEachUnitComponent(runsAfter: List[String], step: ForEachUnitStep): ScalanizerComponent { def newPhase(prev: scala.reflect.internal.Phase): this.StdPhase }
- def forRunComponent(runsAfter: List[String], step: RunStep): ScalanizerComponent { def newPhase(prev: scala.reflect.internal.Phase): this.StdPhase }
- def formExternalMethodDef(owner: SEntitySymbol, name: String, tpeArgs: List[STpeArg], argSections: List[SMethodArgs], tpeRes: STpeExpr): SMethodDef
-
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.
- def formMethodRes(res: G.Type): STpeExpr
- def formMethodTypeArgs(targs: List[G.Symbol]): List[STpeArg]
-
def
genUnitBoilerplateText(mc: ModuleConf, unit: SUnitDef, isVirtualized: Boolean): String
Calls Scalan Meta to generate boilerplate code for the unit.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getExtTypeAncestors(externalType: G.Type): List[STypeApply]
Gets the list of ancestors of the external type in term of Meta AST.
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def initWrapperCake(): WrapperCake
-
def
isHotSpotTree(tree: G.Tree): Boolean
Checks that the method has @HotSpot
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isWrapperSym(sym: G.Symbol): Boolean
Applying of the policy: wrap all types outside of virtualization scope.
- def isWrapperType(tpe: G.Type): Boolean
- def loadLibraryDeps(step: PipelineStep, lib: LibraryConfig)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit
- def loadModuleUnits(step: PipelineStep, sourceMod: ModuleConf)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit
-
def
loadProjectModuleDeps(step: PipelineStep, projectMod: ModuleConf)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit
Loads all the dependencies of this project module (Source or Target)
-
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]; }
- def loadWrapperFromResource(step: PipelineStep, module: ModuleConf, wConf: WrapperConf)(implicit ctx: meta.scalanizer.Scalanizer.ParseCtx): Unit
- def mkCompanionAncestors(wClassName: String, kind: Int): List[STypeApply]
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def registerArrayOp(owner: SEntitySymbol, mkOp: (SSymbol, STpeArg) ⇒ SMethodDef): Unit
- val scalanizer: Scalanizer[G]
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
uncurryMethodType(method: G.Type): (List[SMethodArgs], STpeExpr)
Converts curried method type its uncurried Meta AST representation.
-
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.
- def updateWrapperSpecial(packageName: String, externalTypeName: String, tpeArgs: STpeArgs, originalEntityAncestors: List[STypeApply], isCompanion: Boolean, member: SMethodDef): Unit
- def updateWrappersCake(cake: WrapperCake, wUnit: SUnitDef): WrapperCake
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
wrapperNames(externalName: String): (String, String, String)
Gets names of an external type, its class and its module.
- object UnitStepContext