BCodeAsmCommon

dotty.tools.backend.jvm.BCodeAsmCommon
See theBCodeAsmCommon companion object
final class BCodeAsmCommon[I <: DottyBackendInterface](val interface: I)

This trait contains code shared between GenBCode and GenASM that depends on types defined in the compiler cake (Global).

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Concise view

Type members

Classlikes

case class EnclosingMethodEntry(owner: String, name: String, methodDescriptor: String)

Attributes

Graph
Supertypes
trait Product
trait Equals
class Object
trait Matchable
class Any

Value members

Concrete methods

def enclosingMethodAttribute(classSym: Symbol, classDesc: Symbol => String, methodDesc: Symbol => String): Option[EnclosingMethodEntry]

Data for emitting an EnclosingMethod attribute. None if classSym is a member class (not an anonymous or local class). See doc in BTypes.

Data for emitting an EnclosingMethod attribute. None if classSym is a member class (not an anonymous or local class). See doc in BTypes.

The class is parametrized by two functions to obtain a bytecode class descriptor for a class symbol, and to obtain a method signature descriptor fro a method symbol. These function depend on the implementation of GenASM / GenBCode, so they need to be passed in.

Attributes

True if classSym is an anonymous class or a local class. I.e., false if classSym is a member class. This method is used to decide if we should emit an EnclosingMethod attribute. It is also used to decide whether the "owner" field in the InnerClass attribute should be null.

True if classSym is an anonymous class or a local class. I.e., false if classSym is a member class. This method is used to decide if we should emit an EnclosingMethod attribute. It is also used to decide whether the "owner" field in the InnerClass attribute should be null.

Attributes

Concrete fields

val interface: I