scala.tools.nsc.backend.jvm

# CoreBTypes

###
Related Doc: package jvm

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

Core BTypes and some other definitions. The initialization of these definitions requires 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 actually 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 defined 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
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

Visibility

1. Public
2. All

### Instance Constructors

1. #### new CoreBTypes(bTypes: BTFS)

### Value Members

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

   Test two objects for inequality.

   Test two objects for inequality.

   returns

     `true` if !(this == that), false otherwise.

   Definition Classes
     AnyRef → Any

2. #### final def ##(): Int

   Equivalent to `x.hashCode` except for boxed numeric types and `null`.

   Equivalent to `x.hashCode` except for boxed numeric types and `null`. For numerics, it returns a hash value which is consistent with value equality: if two value type instances compare as true, then ## will produce the same hash value for each of them. For `null` returns a hashcode where `null.hashCode` throws a `NullPointerException`.

   returns

     a hash value consistent with ==

   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

   The expression `x == that` is equivalent to `if (x eq null) that eq null else x.equals(that)`.

   The expression `x == that` is equivalent to `if (x eq null) that eq null else x.equals(that)`.

   returns

     `true` if the receiver object is equivalent to the argument; `false` otherwise.

   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

    Cast the receiver object to be of type `T0`.

    Cast the receiver object to be of type `T0`.

    Note that the success of a cast at runtime is modulo Scala's erasure semantics. Therefore the expression `1.asInstanceOf[String]` will throw a `ClassCastException` at runtime, while the expression `List(1).asInstanceOf[List[String]]` will not. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested type.

    returns

      the receiver object.

    Definition Classes
      Any
    Exceptions thrown

      `ClassCastException` if the receiver object is not an instance of the erasure of type `T0`.

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

    Create a copy of the receiver object.

    Create a copy of the receiver object.

    The default implementation of the `clone` method is platform dependent.

    returns

      a copy of the receiver object.

    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( ... )
    Note

      not specified by SLS as a member of AnyRef

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

    Tests whether the argument (`that`) is a reference to the receiver object (`this`).

    Tests whether the argument (`that`) is a reference to the receiver object (`this`).

    The `eq` method implements an equivalence relation on non-null instances of `AnyRef`, and has three additional properties:

    - It is consistent: for any non-null instances `x` and `y` of type `AnyRef`, multiple invocations of `x.eq(y)` consistently returns `true` or consistently returns `false`.
    - For any non-null instance `x` of type `AnyRef`, `x.eq(null)` and `null.eq(x)` returns `false`.
    - `null.eq(null)` returns `true`.

    When overriding the `equals` or `hashCode` methods, it is important to ensure that their behavior is consistent with reference equality. Therefore, if two objects are references to each other (`o1 eq o2`), they should be equal to each other (`o1 == o2`) and they should hash to the same value (`o1.hashCode == o2.hashCode`).

    returns

      `true` if the argument is a reference to the receiver object; `false` otherwise.

    Definition Classes
      AnyRef

45. #### def equals(arg0: Any): Boolean

    The equality method for reference types.

    The equality method for reference types. Default implementation delegates to `eq`.

    See also `equals` in scala.Any.

    returns

      `true` if the receiver object is equivalent to the argument; `false` otherwise.

    Definition Classes
      AnyRef → Any

46. #### def finalize(): Unit

    Called by the garbage collector on the receiver object when there are no more references to the object.

    Called by the garbage collector on the receiver object when there are no more references to the object.

    The details of when and if the `finalize` method is invoked, as well as the interaction between `finalize` and non-local returns and exceptions, are all platform dependent.

    Attributes
      protected[java.lang]
    Definition Classes
      AnyRef
    Annotations
      @throws( classOf[java.lang.Throwable] )
    Note

      not specified by SLS as a member of AnyRef

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[_]

    A representation that corresponds to the dynamic class of the receiver object.

    A representation that corresponds to the dynamic class of the receiver object.

    The nature of the representation is platform dependent.

    returns

      a representation that corresponds to the dynamic class of the receiver object.

    Definition Classes
      AnyRef → Any
    Note

      not specified by SLS as a member of AnyRef

49. #### def hashCode(): Int

    The hashCode method for reference types.

    The hashCode method for reference types. See hashCode in scala.Any.

    returns

      the hash code value for this object.

    Definition Classes
      AnyRef → Any

50. #### lazy val hashMethodSym: BTFS._$1.Symbol

51. #### final def isInstanceOf[T0]: Boolean

    Test whether the dynamic type of the receiver object is `T0`.

    Test whether the dynamic type of the receiver object is `T0`.

    Note that the result of the test is modulo Scala's erasure semantics. Therefore the expression `1.isInstanceOf[String]` will return `false`, while the expression `List(1).isInstanceOf[List[String]]` will return `true`. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the specified type.

    returns

      `true` if the receiver object is an instance of erasure of type `T0`; `false` otherwise.

    Definition Classes
      Any

52. #### lazy val javaUtilHashMapReference: BTFS.ClassBType

53. #### lazy val javaUtilMapReference: BTFS.ClassBType

54. #### lazy val jioSerializableReference: BTFS.ClassBType

55. #### lazy val jlCloneableReference: BTFS.ClassBType

56. #### lazy val jlNPEReference: BTFS.ClassBType

57. #### final def ne(arg0: AnyRef): Boolean

    Equivalent to `!(this eq that)`.

    Equivalent to `!(this eq that)`.

    returns

      `true` if the argument is not a reference to the receiver object; `false` otherwise.

    Definition Classes
      AnyRef

58. #### final def notify(): Unit

    Wakes up a single thread that is waiting on the receiver object's monitor.

    Wakes up a single thread that is waiting on the receiver object's monitor.

    Definition Classes
      AnyRef
    Note

      not specified by SLS as a member of AnyRef

59. #### final def notifyAll(): Unit

    Wakes up all threads that are waiting on the receiver object's monitor.

    Wakes up all threads that are waiting on the receiver object's monitor.

    Definition Classes
      AnyRef
    Note

      not specified by SLS as a member of AnyRef

60. #### lazy val objArrayReference: BTFS.ArrayBType

61. #### 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.

62. #### lazy val scalaSerializableReference: BTFS.ClassBType

63. #### lazy val srBooleanRef: BTFS.ClassBType

64. #### lazy val srByteRef: BTFS.ClassBType

65. #### lazy val srCharRef: BTFS.ClassBType

66. #### lazy val srDoubleRef: BTFS.ClassBType

67. #### lazy val srFloatRef: BTFS.ClassBType

68. #### lazy val srIntRef: BTFS.ClassBType

69. #### lazy val srLongRef: BTFS.ClassBType

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

    Definition Classes
      AnyRef

71. #### def toString(): String

    Creates a String representation of this object.

    Creates a String representation of this object. The default representation is platform dependent. On the java platform it is the concatenation of the class name, "@", and the object's hashcode in hexadecimal.

    returns

      a String representation of the object.

    Definition Classes
      AnyRef → Any

72. #### lazy val typeOfArrayOp: Map[Int, BTFS.BType]

73. #### 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.

74. #### final def wait(): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

75. #### final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

76. #### final def wait(arg0: Long): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

77. #### 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