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
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
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
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 genLoadIf(tree: If, expectedType: BType): BType
Inherited from:
PlainBodyBuilder
def genLoadModule(module: Symbol): Unit
Inherited from:
PlainBodyBuilder
Inherited from:
PlainBodyBuilder
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
def genThrow(expr: Tree): BType
Inherited from:
PlainBodyBuilder
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 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. 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
def paramTKs(app: Apply, take: Int): List[BType]
Inherited from:
PlainSkelBuilder
def programPoint(labelSym: Symbol): Label
Inherited from:
PlainSkelBuilder
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
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

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