aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index a94359b97..f7e8029aa 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -255,6 +255,17 @@ class Definitions(implicit ctx: Context) {
// ----- Value class machinery ------------------------------------------
+ lazy val ScalaValueClasses: collection.Set[Symbol] = Set(
+ UnitClass,
+ BooleanClass,
+ ByteClass,
+ ShortClass,
+ CharClass,
+ IntClass,
+ LongClass,
+ FloatClass,
+ DoubleClass)
+
private[this] val _boxedClass = mutable.Map[Symbol, Symbol]()
private[this] val _unboxedClass = mutable.Map[Symbol, Symbol]()
@@ -266,8 +277,6 @@ class Definitions(implicit ctx: Context) {
val javaTypeToValueClass: collection.Map[Class[_], Symbol] = _javaTypeToValueClass
val valueClassToJavaType: collection.Map[Symbol, Class[_]] = _valueClassToJavaType
- lazy val ScalaValueClasses: collection.Set[Symbol] = boxedClass.keySet
-
private def valueClassSymbol(name: String, boxed: ClassSymbol, jtype: Class[_]): ClassSymbol = {
val vcls = requiredClass(name)
_unboxedClass(boxed) = vcls
@@ -306,6 +315,7 @@ class Definitions(implicit ctx: Context) {
if (!_isInitialized) {
// force initialization of every symbol that is synthesized or hijacked by the compiler
val forced = syntheticCoreClasses
+ val vclasses = ScalaValueClasses
_isInitialized = true
}
}