SyncAndTryBuilder

abstract class SyncAndTryBuilder(cunit: CompilationUnit) extends PlainBodyBuilder
trait BCPickles
class Object
trait Matchable
class Any

Type members

Classlikes

case class BoundEH(patSymbol: Symbol, caseBody: Tree) extends EHClause
trait EHClause
case class NamelessEH(typeToDrop: ClassBType, caseBody: Tree) extends EHClause

Inherited classlikes

case class Local(tk: BType, name: String, idx: Int, isSynth: Boolean)
Inherited from:
PlainSkelBuilder
object bc extends JCodeMethodN
Inherited from:
PlainSkelBuilder
object locals
Inherited from:
PlainSkelBuilder

Value members

Concrete methods

def emitFinalizer(finalizer: Tree, tmp: Symbol, isDuplicate: Boolean): Unit
def genLoadTry(tree: Try): BType
def genSynchronized(tree: Apply, expectedType: BType): BType
def protect(start: Label, end: Label, handler: Label, excType: ClassBType): Unit

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
Inherited from:
BCAnnotGen
Inherited from:
BCAnnotGen
Inherited from:
BCAnnotGen
def emitLocalVarScope(sym: Symbol, start: Label, end: Label, force: Boolean): Unit
Inherited from:
PlainSkelBuilder

Add entries to the LocalVariableTable JVM attribute for all the vars in varsInScope, ending at the current program point.

Add entries to the LocalVariableTable JVM attribute for all the vars in varsInScope, ending at the current program point.

Inherited from:
PlainBodyBuilder
Inherited from:
BCAnnotGen
def emitParamNames(jmethod: MethodVisitor, params: List[Symbol]): Unit
Inherited from:
BCAnnotGen
Inherited from:
PlainBodyBuilder
def fieldLoad(field: Symbol, hostClass: Symbol): Unit
Inherited from:
PlainBodyBuilder
def fieldStore(field: Symbol, hostClass: Symbol): Unit
Inherited from:
PlainBodyBuilder
Inherited from:
PlainSkelBuilder
def gen(tree: Tree): Unit
Inherited from:
PlainSkelBuilder
def genAdaptAndSendToDest(generatedType: BType, expectedType: BType, dest: LoadDestination): Unit
Inherited from:
PlainBodyBuilder
def genArithmeticOp(tree: Tree, code: Int): BType
Inherited from:
PlainBodyBuilder
def genArrayOp(tree: Tree, code: Int, expectedType: BType): BType
Inherited from:
PlainBodyBuilder
def genBlockTo(tree: Block, expectedType: BType, dest: LoadDestination): 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
Inherited from:
PlainBodyBuilder
def genConversion(from: BType, to: BType, cast: Boolean): Unit
Inherited from:
PlainBodyBuilder
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 genLoadIfTo(tree: If, expectedType: BType, dest: LoadDestination): BType
Inherited from:
PlainBodyBuilder
def genLoadModule(module: Symbol): Unit
Inherited from:
PlainBodyBuilder
Inherited from:
PlainBodyBuilder
Inherited from:
PlainBodyBuilder
def genLoadTo(tree: Tree, expectedType: BType, dest: LoadDestination): Unit
Inherited from:
PlainBodyBuilder
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

The ClassBType for a class symbol.

The ClassBType for a class symbol.

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 parameters:
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.

The class internal name for a given class symbol.

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
def paramTKs(app: Apply, take: Int): List[BType]
Inherited from:
PlainSkelBuilder
def registerCleanup(finCleanup: Label): Unit
Inherited from:
PlainSkelBuilder
def registerJumpDest(labelSym: Symbol, expectedType: BType, dest: LoadDestination): Unit
Inherited from:
PlainSkelBuilder
final def symDescriptor(sym: Symbol): String

The jvm descriptor for a symbol.

The jvm descriptor for a symbol.

Inherited from:
BCInnerClassGen
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.

The jvm descriptor of a type.

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

Inherited fields

inline val MaximumJvmParameters: 254
Inherited from:
PlainSkelBuilder
Inherited from:
PlainSkelBuilder
var cnode: ClassNode1
Inherited from:
PlainSkelBuilder
final val emitLines: Boolean
Inherited from:
BCInnerClassGen
final val emitSource: Boolean
Inherited from:
BCInnerClassGen
final val emitVars: Boolean
Inherited from:
BCInnerClassGen
var mnode: MethodNode1
Inherited from:
PlainSkelBuilder
Inherited from:
PlainSkelBuilder
Inherited from:
PlainSkelBuilder