From bb7507f31b892662cb502550ca38bc93011697a9 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Fri, 5 Apr 2013 16:36:52 +0200 Subject: Ensures ScalaValueClasses are properly initialized. --- src/dotty/tools/dotc/core/Definitions.scala | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/dotty/tools/dotc/core/Definitions.scala') 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 } } -- cgit v1.2.3