dotty.tools.backend.jvm

Members list

Type members

Classlikes

object AsmUtils

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
AsmUtils.type
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).

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

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
trait BCodeHelpers
class Object
trait Matchable
class Any
Show all
Known subtypes
object Impl

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object BCodeHelpers

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
trait BCodeHelpers
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
trait BCodeHelpers
class Object
trait Matchable
class Any
Show all
Known subtypes
object Impl
object BCodeUtils

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
BCodeUtils.type
object BTypes

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
BTypes.type
abstract class BTypes

The BTypes component defines The BType class hierarchy. BTypes encapsulates all type information that is required after building the ASM nodes. This includes optimizations, geneartion of InnerClass attributes and generation of stack map frames.

The BTypes component defines The BType class hierarchy. BTypes encapsulates all type information that is required after building the ASM nodes. This includes optimizations, geneartion of InnerClass attributes and generation of stack map frames.

This representation is immutable and independent of the compiler data structures, hence it can be queried by concurrent threads.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
Self type
class BTypesFromSymbols[I <: DottyBackendInterface](val int: I, val frontendAccess: PostProcessorFrontendAccess) extends BTypes

This class mainly contains the method classBTypeFromSymbol, which extracts the necessary information from a symbol and its type to create the corresponding ClassBType. It requires access to the compiler (global parameter).

This class mainly contains the method classBTypeFromSymbol, which extracts the necessary information from a symbol and its type to create the corresponding ClassBType. It requires access to the compiler (global parameter).

Attributes

Supertypes
class BTypes
class Object
trait Matchable
class Any
object BackendUtils

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
class BackendUtils(val postProcessor: PostProcessor)

This component hosts tools and utilities used in the backend that require access to a BTypes instance.

This component hosts tools and utilities used in the backend that require access to a BTypes instance.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Supertypes
class Object
trait Matchable
class Any
class CodeGen(val int: DottyBackendInterface, val primitives: DottyPrimitives)(val bTypes: BTypesFromSymbols[int.type])

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
abstract class CoreBTypes

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class CoreBTypes
class Object
trait Matchable
class Any

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
class DottyBackendInterface(using val ctx: Context)

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
class DottyPrimitives(ictx: Context)

Scala primitive operations are represented as methods in Any and AnyVal subclasses. Here we demultiplex them by providing a mapping from their symbols to integers. Different methods exist for different value types, but with the same meaning (like plus, minus, etc.). They will all be mapped to the same int.

Scala primitive operations are represented as methods in Any and AnyVal subclasses. Here we demultiplex them by providing a mapping from their symbols to integers. Different methods exist for different value types, but with the same meaning (like plus, minus, etc.). They will all be mapped to the same int.

Note: The three equal methods have the following semantics:

  • "==" checks for null, and if non-null, calls java.lang.Object.equals (class: Any; modifier: final). Primitive: EQ
  • "eq" usual reference comparison (class: AnyRef; modifier: final). Primitive: ID
  • "equals" user-defined equality (Java semantics) (class: Object; modifier: none). Primitive: EQUALS

Inspired from the scalac compiler.

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class JSPrimitives
object GenBCode

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
GenBCode.type
class GenBCode extends Phase

Attributes

Companion
object
Supertypes
class Phase
class Object
trait Matchable
class Any
Self type
class GenBCodeOps

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object GenBCodeOps
object GenBCodeOps extends GenBCodeOps

Attributes

Companion
class
Supertypes
class GenBCodeOps
class Object
trait Matchable
class Any
Self type
case class GeneratedClass(classNode: ClassNode, sourceClassName: String, position: SourcePosition, isArtifact: Boolean, onFileCreated: AbstractFile => Unit)

The result of code generation. isArtifact is true for mirror.

The result of code generation. isArtifact is true for mirror.

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class GeneratedCompilationUnit(sourceFile: AbstractFile, classes: List[GeneratedClass], tasty: List[GeneratedTasty])(using ctx: Context)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class GeneratedTasty(classNode: ClassNode, tastyGen: () => Array[Byte])

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
abstract class GenericSignatureVisitor(nestedOnly: Boolean)

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
abstract class NestedClassesCollector[T](nestedOnly: Boolean) extends GenericSignatureVisitor

Attributes

Supertypes
class Object
trait Matchable
class Any
class PostProcessor(val frontendAccess: PostProcessorFrontendAccess, val bTypes: BTypes)

Implements late stages of the backend that don't depend on a Global instance, i.e., optimizations, post-processing and classfile serialization and writing.

Implements late stages of the backend that don't depend on a Global instance, i.e., optimizations, post-processing and classfile serialization and writing.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
sealed abstract class PostProcessorFrontendAccess(backendInterface: DottyBackendInterface)

Functionality needed in the post-processor whose implementation depends on the compiler frontend. All methods are synchronized.

Functionality needed in the post-processor whose implementation depends on the compiler frontend. All methods are synchronized.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Impl[I]

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
object Primitives

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Primitives.type