scala.tools.nsc.backend.jvm

CoreBTypes

class CoreBTypes[BTFS <: BTypesFromSymbols[_ <: Global]] extends AnyRef

Core BTypes and some other definitions. The initialization of these definitions requies access to symbols / types (global).

The symbols used to initialize the ClassBTypes may change from one compiler run to the next. To make sure the definitions are consistent with the symbols in the current run, the intializeCoreBTypes method in BTypesFromSymbols creates a new instance of CoreBTypes in each compiler run.

The class BTypesFromSymbols does not directly reference CoreBTypes, but CoreBTypesProxy. The reason is that having a var bTypes: CoreBTypes would not allow import bTypes._. Instead, the proxy class holds a CoreBTypes in a variable field and forwards to this instance.

The definitions in CoreBTypes need to be lazy vals to break an initialization cycle. When creating a new instance to assign to the proxy, the classBTypeFromSymbol invoked in the constructor will actucally go through the proxy. The lazy vals make sure the instance is assigned in the proxy before the fields are initialized.

Note: if we did not re-create the core BTypes on each compiler run, BType.classBTypeFromInternalNameMap could not be a perRunCache anymore: the classes defeined here need to be in that map, they are added when the ClassBTypes are created. The per run cache removes them, so they would be missing in the second run.

Source
CoreBTypes.scala
Linear Supertypes
AnyRef, Any
Type Hierarchy Learn more about scaladoc diagrams
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. CoreBTypes
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new CoreBTypes(bTypes: BTFS)

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. def +(other: String): String

    Implicit information
    This member is added by an implicit conversion from CoreBTypes[BTFS] to any2stringadd[CoreBTypes[BTFS]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (CoreBTypes[BTFS], B)

    Implicit information
    This member is added by an implicit conversion from CoreBTypes[BTFS] to ArrowAssoc[CoreBTypes[BTFS]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  6. lazy val AbstractFunctionArityMap: Map[BTFS.ClassBType, Int]

  7. lazy val AbstractFunctionReference: Vector[BTFS.ClassBType]

  8. lazy val AbstractPartialFunctionReference: BTFS.ClassBType

  9. lazy val AndroidCreatorClass: BTFS._$1.Symbol

  10. lazy val AndroidParcelableInterface: BTFS._$1.Symbol

  11. lazy val BOXED_BOOLEAN: BTFS.ClassBType

  12. lazy val BOXED_BYTE: BTFS.ClassBType

  13. lazy val BOXED_CHAR: BTFS.ClassBType

  14. lazy val BOXED_DOUBLE: BTFS.ClassBType

  15. lazy val BOXED_FLOAT: BTFS.ClassBType

  16. lazy val BOXED_INT: BTFS.ClassBType

  17. lazy val BOXED_LONG: BTFS.ClassBType

  18. lazy val BOXED_SHORT: BTFS.ClassBType

  19. lazy val BOXED_UNIT: BTFS.ClassBType

  20. lazy val BeanInfoAttr: BTFS._$1.Symbol

  21. lazy val BoxesRunTime: BTFS.ClassBType

  22. lazy val FunctionReference: Vector[BTFS.ClassBType]

  23. lazy val ObjectReference: BTFS.ClassBType

  24. lazy val PartialFunctionReference: BTFS.ClassBType

  25. lazy val RT_NOTHING: BTFS.ClassBType

  26. lazy val RT_NULL: BTFS.ClassBType

  27. lazy val StringBuilderReference: BTFS.ClassBType

  28. lazy val StringReference: BTFS.ClassBType

  29. lazy val String_valueOf: BTFS._$1.Symbol

  30. lazy val ThrowableReference: BTFS.ClassBType

  31. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  32. lazy val asmBoxTo: Map[BTFS.BType, BTFS.MethodNameAndType]

    Methods in scala.runtime.BoxesRuntime

  33. lazy val asmUnboxTo: Map[BTFS.BType, BTFS.MethodNameAndType]

  34. val bTypes: BTFS

  35. lazy val boxResultType: Map[BTFS._$1.Symbol, BTFS.ClassBType]

    Maps the method symbol for a box method to the boxed type of the result.

    Maps the method symbol for a box method to the boxed type of the result. For example, the method symbol for Byte.box() is mapped to the ClassBType java/lang/Byte.

  36. lazy val boxedClassOfPrimitive: Map[BTFS.PrimitiveBType, BTFS.ClassBType]

    Map from primitive types to their boxed class type.

    Map from primitive types to their boxed class type. Useful when pushing class literals onto the operand stack (ldc instruction taking a class literal), see genConstant.

  37. lazy val boxedClasses: Set[BTFS.ClassBType]

  38. lazy val classCastExceptionReference: BTFS.ClassBType

  39. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  40. def ensuring(cond: (CoreBTypes[BTFS]) ⇒ Boolean, msg: ⇒ Any): CoreBTypes[BTFS]

    Implicit information
    This member is added by an implicit conversion from CoreBTypes[BTFS] to Ensuring[CoreBTypes[BTFS]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  41. def ensuring(cond: (CoreBTypes[BTFS]) ⇒ Boolean): CoreBTypes[BTFS]

    Implicit information
    This member is added by an implicit conversion from CoreBTypes[BTFS] to Ensuring[CoreBTypes[BTFS]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  42. def ensuring(cond: Boolean, msg: ⇒ Any): CoreBTypes[BTFS]

    Implicit information
    This member is added by an implicit conversion from CoreBTypes[BTFS] to Ensuring[CoreBTypes[BTFS]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  43. def ensuring(cond: Boolean): CoreBTypes[BTFS]

    Implicit information
    This member is added by an implicit conversion from CoreBTypes[BTFS] to Ensuring[CoreBTypes[BTFS]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  44. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  45. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  46. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  47. def formatted(fmtstr: String): String

    Implicit information
    This member is added by an implicit conversion from CoreBTypes[BTFS] to StringFormat[CoreBTypes[BTFS]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  48. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  49. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  50. lazy val hashMethodSym: BTFS._$1.Symbol

  51. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  52. lazy val jioSerializableReference: BTFS.ClassBType

  53. lazy val jlCloneableReference: BTFS.ClassBType

  54. lazy val jlNPEReference: BTFS.ClassBType

  55. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  56. final def notify(): Unit

    Definition Classes
    AnyRef
  57. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  58. lazy val objArrayReference: BTFS.ArrayBType

  59. lazy val primitiveTypeMap: Map[BTFS._$1.Symbol, BTFS.PrimitiveBType]

    Maps primitive types to their corresponding PrimitiveBType.

    Maps primitive types to their corresponding PrimitiveBType. The map is defined lexically above the first use of classBTypeFromSymbol because that method looks at the map.

  60. lazy val scalaSerializableReference: BTFS.ClassBType

  61. lazy val srBooleanRef: BTFS.ClassBType

  62. lazy val srByteRef: BTFS.ClassBType

  63. lazy val srCharRef: BTFS.ClassBType

  64. lazy val srDoubleRef: BTFS.ClassBType

  65. lazy val srFloatRef: BTFS.ClassBType

  66. lazy val srIntRef: BTFS.ClassBType

  67. lazy val srLongRef: BTFS.ClassBType

  68. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  69. def toString(): String

    Definition Classes
    AnyRef → Any
  70. lazy val typeOfArrayOp: Map[Int, BTFS.BType]

  71. lazy val unboxResultType: Map[BTFS._$1.Symbol, BTFS.PrimitiveBType]

    Maps the method symbol for an unbox method to the primitive type of the result.

    Maps the method symbol for an unbox method to the primitive type of the result. For example, the method symbol for Byte.unbox()) is mapped to the PrimitiveBType BYTE.

  72. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  73. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  74. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  75. def [B](y: B): (CoreBTypes[BTFS], B)

    Implicit information
    This member is added by an implicit conversion from CoreBTypes[BTFS] to ArrowAssoc[CoreBTypes[BTFS]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from CoreBTypes[BTFS] to any2stringadd[CoreBTypes[BTFS]]

Inherited by implicit conversion StringFormat from CoreBTypes[BTFS] to StringFormat[CoreBTypes[BTFS]]

Inherited by implicit conversion Ensuring from CoreBTypes[BTFS] to Ensuring[CoreBTypes[BTFS]]

Inherited by implicit conversion ArrowAssoc from CoreBTypes[BTFS] to ArrowAssoc[CoreBTypes[BTFS]]

Ungrouped