SyncAndTryBuilder

dotty.tools.backend.jvm.BCodeSyncAndTry.SyncAndTryBuilder
abstract class SyncAndTryBuilder(cunit: CompilationUnit) extends PlainBodyBuilder

Attributes

Graph
Supertypes
trait BCPickles
trait BCJGenSigGen
trait BCAnnotGen
trait BCClassGen
class Object
trait Matchable
class Any
Show all
Known subtypes

Members list

Type members

Classlikes

case class BoundEH(patSymbol: Symbol, caseBody: Tree) extends EHClause

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait EHClause
class Object
trait Matchable
class Any
Show all
trait EHClause

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class BoundEH
class NamelessEH
case class NamelessEH(typeToDrop: bTypes.ClassBType, caseBody: Tree) extends EHClause

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait EHClause
class Object
trait Matchable
class Any
Show all

Inherited classlikes

case class Local(tk: bTypes.BType, name: String, idx: Int, isSynth: Boolean)

Attributes

Inherited from:
PlainSkelBuilder
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object bc extends JCodeMethodN

Attributes

Inherited from:
PlainSkelBuilder
Supertypes
class JCodeMethodN
class Object
trait Matchable
class Any
object locals

Attributes

Inherited from:
PlainSkelBuilder
Supertypes
class Object
trait Matchable
class Any

Value members

Concrete methods

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

Inherited methods

def adapt(from: bTypes.BType, to: bTypes.BType): Unit

Attributes

Inherited from:
PlainBodyBuilder

Attributes

Inherited from:
PlainSkelBuilder
def addForwarders(jclass: ClassVisitor, jclassName: String, moduleClass: Symbol): Unit

Attributes

Inherited from:
BCForwardersGen
def addSerialVUID(id: Long, jclass: ClassVisitor): Unit

Attributes

Inherited from:
BCClassGen
final def asmMethodType(msym: Symbol): BCodeHelpers.this.bTypes.MethodBType

Attributes

Inherited from:
BCInnerClassGen

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
BCInnerClassGen
def emit(opc: Int): Unit

Attributes

Inherited from:
PlainBodyBuilder
def emitAnnotations(fw: FieldVisitor, annotations: List[Annotation]): Unit

Attributes

Inherited from:
BCAnnotGen
def emitAnnotations(mw: MethodVisitor, annotations: List[Annotation]): Unit

Attributes

Inherited from:
BCAnnotGen
def emitAnnotations(cw: ClassVisitor, annotations: List[Annotation]): Unit

Attributes

Inherited from:
BCAnnotGen
def emitLocalVarScope(sym: Symbol, start: Label, end: Label, force: Boolean): Unit

Attributes

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.

Attributes

Inherited from:
PlainBodyBuilder

Attributes

Inherited from:
BCAnnotGen
def emitParamNames(jmethod: MethodVisitor, params: List[Symbol]): Unit

Attributes

Inherited from:
BCAnnotGen
def emitZeroOf(tk: bTypes.BType): Unit

Attributes

Inherited from:
PlainBodyBuilder
def fieldLoad(field: Symbol, hostClass: Symbol): Unit

Attributes

Inherited from:
PlainBodyBuilder
def fieldStore(field: Symbol, hostClass: Symbol): Unit

Attributes

Inherited from:
PlainBodyBuilder

Attributes

Inherited from:
PlainSkelBuilder
def gen(tree: Tree): Unit

Attributes

Inherited from:
PlainSkelBuilder
def genAdaptAndSendToDest(generatedType: bTypes.BType, expectedType: bTypes.BType, dest: LoadDestination): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genArithmeticOp(tree: Tree, code: Int): BCodeBodyBuilder.this.bTypes.BType

Attributes

Inherited from:
PlainBodyBuilder
def genArrayOp(tree: Tree, code: Int, expectedType: bTypes.BType): BCodeBodyBuilder.this.bTypes.BType

Attributes

Inherited from:
PlainBodyBuilder
def genBlockTo(tree: Block, expectedType: bTypes.BType, dest: LoadDestination): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genCallMethod(method: Symbol, style: InvokeStyle, pos: Span, specificReceiver: Symbol): BCodeBodyBuilder.this.bTypes.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).

Attributes

Inherited from:
PlainBodyBuilder
def genCast(to: bTypes.RefBType, cast: Boolean): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genCoercion(code: Int): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genConstant(const: Constant): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genConversion(from: bTypes.BType, to: bTypes.BType, cast: Boolean): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genDefDef(dd: DefDef): Unit

Attributes

Inherited from:
PlainSkelBuilder
def genEqEqPrimitive(l: Tree, r: Tree, success: Label, failure: Label, targetIfNoJump: Label): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genInvokeDynamicLambda(ctor: Symbol, lambdaTarget: Symbol, environmentSize: Int, functionalInterface: Symbol): BCodeBodyBuilder.this.bTypes.BType

Attributes

Inherited from:
PlainBodyBuilder
def genLoad(tree: Tree, expectedType: bTypes.BType): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genLoad(tree: Tree): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genLoadArguments(args: List[Tree], btpes: List[bTypes.BType]): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genLoadIfTo(tree: If, expectedType: bTypes.BType, dest: LoadDestination): BCodeBodyBuilder.this.bTypes.BType

Attributes

Inherited from:
PlainBodyBuilder
def genLoadModule(module: Symbol): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genLoadModule(tree: Tree): BCodeBodyBuilder.this.bTypes.BType

Attributes

Inherited from:
PlainBodyBuilder
def genLoadQualifier(tree: Tree): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genLoadTo(tree: Tree, expectedType: bTypes.BType, dest: LoadDestination): Unit

Attributes

Inherited from:
PlainBodyBuilder

Attributes

Inherited from:
PlainSkelBuilder
def genPrimitiveOp(tree: Apply, expectedType: bTypes.BType): BCodeBodyBuilder.this.bTypes.BType

Attributes

Inherited from:
PlainBodyBuilder
def genScalaHash(tree: Tree): BCodeBodyBuilder.this.bTypes.BType

Attributes

Inherited from:
PlainBodyBuilder
def genStat(tree: Tree): Unit

Attributes

Inherited from:
PlainBodyBuilder
def genStringConcat(tree: Tree): BCodeBodyBuilder.this.bTypes.BType

Attributes

Inherited from:
PlainBodyBuilder

Attributes

Inherited from:
PlainBodyBuilder

Attributes

Inherited from:
PlainBodyBuilder
final def getClassBType(sym: Symbol): BCodeHelpers.this.bTypes.ClassBType

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.

Attributes

Inherited from:
BCInnerClassGen

Attributes

Definition Classes
Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
BCForwardersGen

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.

Attributes

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

Attributes

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.

Attributes

Inherited from:
BCInnerClassGen

Attributes

Inherited from:
JAndroidBuilder

Attributes

Inherited from:
PlainSkelBuilder
def isPrimitive(fun: Tree): Boolean

Attributes

Inherited from:
PlainBodyBuilder

Attributes

Inherited from:
PlainSkelBuilder
def legacyAddCreatorCode(clinit: MethodVisitor, cnode: ClassNode, thisName: String): Unit

Attributes

Inherited from:
JAndroidBuilder

Attributes

Inherited from:
PlainBodyBuilder
def lineNumber(tree: Tree): Unit

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder
def paramTKs(app: Apply, take: Int): List[BCodeSkelBuilder.this.bTypes.BType]

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
BCPickles

Attributes

Inherited from:
BCPickles
def registerCleanup(finCleanup: Label): Unit

Attributes

Inherited from:
PlainSkelBuilder
def registerJumpDest(labelSym: Symbol, expectedType: bTypes.BType, dest: LoadDestination): Unit

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder
final def symDescriptor(sym: Symbol): String

The jvm descriptor for a symbol.

The jvm descriptor for a symbol.

Attributes

Inherited from:
BCInnerClassGen
def symInfoTK(sym: Symbol): BCodeSkelBuilder.this.bTypes.BType

Attributes

Inherited from:
PlainSkelBuilder
def testOpForPrimitive(primitiveCode: Int): TestOp

Attributes

Inherited from:
PlainBodyBuilder
final def toTypeKind(tp: Type): BCodeHelpers.this.bTypes.BType

Attributes

Inherited from:
BCInnerClassGen
def tpeTK(tree: Tree): BCodeSkelBuilder.this.bTypes.BType

Attributes

Inherited from:
PlainSkelBuilder
final def typeDescriptor(t: Type): String

The jvm descriptor of a type.

The jvm descriptor of a type.

Attributes

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

Attributes

Inherited from:
PlainSkelBuilder

Inherited fields

Attributes

Inherited from:
JAndroidBuilder

Attributes

Inherited from:
JAndroidBuilder

Attributes

Inherited from:
BCClassGen
inline val MaximumJvmParameters: 254

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
JAndroidBuilder

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder
var cnode: ClassNode1

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder
final val emitLines: Boolean

Attributes

Inherited from:
BCInnerClassGen
final val emitSource: Boolean

Attributes

Inherited from:
BCInnerClassGen
final val emitVars: Boolean

Attributes

Inherited from:
BCInnerClassGen

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder
var mnode: MethodNode1

Attributes

Inherited from:
PlainSkelBuilder
var returnType: bTypes.BType

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
PlainSkelBuilder

Attributes

Inherited from:
BCPickles