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