PlainClassBuilder

Type members

Inherited classlikes

case class BoundEH(patSymbol: Symbol, caseBody: Tree)
Inherited from
SyncAndTryBuilder
trait EHClause
Inherited from
SyncAndTryBuilder
case class Local(tk: BType, name: String, idx: Int, isSynth: Boolean)
Inherited from
PlainSkelBuilder
case class NamelessEH(typeToDrop: ClassBType, caseBody: Tree)
Inherited from
SyncAndTryBuilder
object bc
Inherited from
PlainSkelBuilder
object locals
Inherited from
PlainSkelBuilder

Value members

Inherited methods

def adapt(from: BType, to: BType): Unit
Inherited from
PlainBodyBuilder
Inherited from
PlainSkelBuilder
def addForwarders(jclass: ClassVisitor, jclassName: String, moduleClass: Symbol): Unit
Inherited from
BCForwardersGen
def addSerialVUID(id: Long, jclass: ClassVisitor): Unit
Inherited from
BCClassGen
final def asmMethodType(msym: Symbol): MethodBType
Inherited from
BCInnerClassGen
Inherited from
BCInnerClassGen
def emit(opc: Int): Unit
Inherited from
PlainBodyBuilder
def emitAnnotations(fw: FieldVisitor, annotations: List[Annotation]): Unit
Inherited from
BCAnnotGen
Inherited from
BCAnnotGen
def emitAnnotations(cw: ClassVisitor, annotations: List[Annotation]): Unit
Inherited from
BCAnnotGen
def emitFinalizer(finalizer: Tree, tmp: Symbol, isDuplicate: Boolean): Unit
Inherited from
SyncAndTryBuilder
def emitLocalVarScope(sym: Symbol, start: Label, end: Label, force: Boolean): Unit
Inherited from
PlainSkelBuilder
Inherited from
BCAnnotGen
def emitParamNames(jmethod: MethodVisitor, params: List[Symbol]): Unit
Inherited from
BCAnnotGen
def emitZeroOf(tk: BType): Unit
Inherited from
PlainBodyBuilder
def fieldLoad(field: Symbol, hostClass: Symbol): Unit
Inherited from
PlainBodyBuilder
def fieldStore(field: Symbol, hostClass: Symbol): Unit
Inherited from
PlainBodyBuilder
def gen(tree: Tree): Unit
Inherited from
PlainSkelBuilder
def genArithmeticOp(tree: Tree, code: Int): BType
Inherited from
PlainBodyBuilder
def genArrayOp(tree: Tree, code: Int, expectedType: BType): BType
Inherited from
PlainBodyBuilder
def genBlock(tree: Block, expectedType: BType): Unit
Inherited from
PlainBodyBuilder
def genCallMethod(method: Symbol, style: InvokeStyle, pos: Span, specificReceiver: Symbol): BType

Generate a method invocation. If specificReceiver != null, it is used as receiver in the invocation instruction, otherwise method.owner. A specific receiver class is needed to prevent an IllegalAccessError, (aladdin bug 455).

Generate a method invocation. If specificReceiver != null, it is used as receiver in the invocation instruction, otherwise method.owner. A specific receiver class is needed to prevent an IllegalAccessError, (aladdin bug 455).

Inherited from
PlainBodyBuilder
def genCast(to: RefBType, cast: Boolean): Unit
Inherited from
PlainBodyBuilder
def genCoercion(code: Int): Unit
Inherited from
PlainBodyBuilder
def genConstant(const: Constant): Unit
Inherited from
PlainBodyBuilder
def genConversion(from: BType, to: BType, cast: Boolean): Unit
Inherited from
PlainBodyBuilder
def genDefDef(dd: DefDef): Unit
Inherited from
PlainSkelBuilder
def genEqEqPrimitive(l: Tree, r: Tree, success: Label, failure: Label, targetIfNoJump: Label): Unit
Inherited from
PlainBodyBuilder
def genInvokeDynamicLambda(ctor: Symbol, lambdaTarget: Symbol, environmentSize: Int, functionalInterface: Symbol): BType
Inherited from
PlainBodyBuilder
def genLoad(tree: Tree, expectedType: BType): Unit
Inherited from
PlainBodyBuilder
def genLoad(tree: Tree): Unit
Inherited from
PlainBodyBuilder
def genLoadArguments(args: List[Tree], btpes: List[BType]): Unit
Inherited from
PlainBodyBuilder
def genLoadIf(tree: If, expectedType: BType): BType
Inherited from
PlainBodyBuilder
def genLoadModule(module: Symbol): Unit
Inherited from
PlainBodyBuilder
def genLoadModule(tree: Tree): BType
Inherited from
PlainBodyBuilder
Inherited from
PlainBodyBuilder
def genLoadTry(tree: Try): BType
Inherited from
SyncAndTryBuilder
Inherited from
PlainSkelBuilder
def genPrimitiveOp(tree: Apply, expectedType: BType): BType
Inherited from
PlainBodyBuilder
def genScalaHash(tree: Tree): BType
Inherited from
PlainBodyBuilder
def genStat(tree: Tree): Unit
Inherited from
PlainBodyBuilder
Inherited from
PlainBodyBuilder
def genSynchronized(tree: Apply, expectedType: BType): BType
Inherited from
SyncAndTryBuilder
def genThrow(expr: Tree): BType
Inherited from
PlainBodyBuilder
def genWhileDo(tree: WhileDo): BType
Inherited from
PlainBodyBuilder

The ClassBType for a class symbol. If the class is nested, the ClassBType is added to the innerClassBufferASM.

The ClassBType for a class symbol. If the class is nested, the ClassBType is added to the innerClassBufferASM.

The class symbol scala.Nothing is mapped to the class scala.runtime.Nothing$. Similarly, scala.Null is mapped to scala.runtime.Null$. This is because there exist no class files for the Nothing / Null. If used for example as a parameter type, we use the runtime classes in the classfile method signature.

Note that the referenced class symbol may be an implementation class. For example when compiling a mixed-in method that forwards to the static method in the implementation class, the class descriptor of the receiver (the implementation class) is obtained by creating the ClassBType.

Inherited from
BCInnerClassGen
Definition Classes
Inherited from
PlainSkelBuilder

Generates the generic signature for sym before erasure.

Generates the generic signature for sym before erasure.

Value Params
owner

The owner of sym.

sym

The symbol for which to generate a signature.

Returns

The generic signature of sym before erasure, as specified in the Java Virtual Machine Specification, ยง4.3.4, or null if sym doesn't need a generic signature.

See also
Inherited from
BCJGenSigGen
def initJMethod(flags: Int, params: List[Symbol]): Unit
Inherited from
PlainSkelBuilder
final def internalName(sym: Symbol): String

The class internal name for a given class symbol. If the symbol describes a nested class, the ClassBType is added to the innerClassBufferASM.

The class internal name for a given class symbol. If the symbol describes a nested class, the ClassBType is added to the innerClassBufferASM.

Inherited from
BCInnerClassGen
Inherited from
PlainBodyBuilder
def legacyAddCreatorCode(clinit: MethodVisitor, cnode: ClassNode, thisName: String): Unit
Inherited from
JAndroidBuilder
Inherited from
PlainBodyBuilder
def lineNumber(tree: Tree): Unit
Inherited from
PlainSkelBuilder
Inherited from
PlainSkelBuilder
Inherited from
SyncAndTryBuilder
def nopIfNeeded(lbl: Label): Unit
Inherited from
SyncAndTryBuilder
def paramTKs(app: Apply, take: Int): List[BType]
Inherited from
PlainSkelBuilder
def programPoint(labelSym: Symbol): Label
Inherited from
PlainSkelBuilder
def protect(start: Label, end: Label, handler: Label, excType: ClassBType): Unit
Inherited from
SyncAndTryBuilder
def registerCleanup(finCleanup: Label): Unit
Inherited from
PlainSkelBuilder
final def symDescriptor(sym: Symbol): String

The jvm descriptor for a symbol. If sym represents a nested class, its ClassBType is added to the innerClassBufferASM.

The jvm descriptor for a symbol. If sym represents a nested class, its ClassBType is added to the innerClassBufferASM.

Inherited from
BCInnerClassGen
def symInfoTK(sym: Symbol): BType
Inherited from
PlainSkelBuilder
def testOpForPrimitive(primitiveCode: Int): TestOp
Inherited from
PlainBodyBuilder
final def toTypeKind(tp: Type): BType
Inherited from
BCInnerClassGen
def tpeTK(tree: Tree): BType
Inherited from
PlainSkelBuilder
final def typeDescriptor(t: Type): String

The jvm descriptor of a type. If t references a nested class, its ClassBType is added to the innerClassBufferASM.

The jvm descriptor of a type. If t references a nested class, its ClassBType is added to the innerClassBufferASM.

Inherited from
BCInnerClassGen
def unregisterCleanup(finCleanup: Label): Unit
Inherited from
PlainSkelBuilder

Inherited fields

final val MaximumJvmParameters: 254
Inherited from
PlainSkelBuilder
Inherited from
PlainSkelBuilder
Inherited from
PlainSkelBuilder
final val emitLines: Boolean
Inherited from
BCInnerClassGen
final val emitSource: Boolean
Inherited from
BCInnerClassGen
final val emitVars: Boolean
Inherited from
BCInnerClassGen
Inherited from
PlainSkelBuilder
Inherited from
PlainSkelBuilder