diff options
author | Martin Odersky <odersky@gmail.com> | 2013-04-05 16:36:52 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-04-05 16:36:52 +0200 |
commit | bb7507f31b892662cb502550ca38bc93011697a9 (patch) | |
tree | c68d67426424ea30da9221b35997cc59ed012b42 /src/dotty/tools/dotc/core/Definitions.scala | |
parent | f8d5c8401ab7e4a31c9f4430ad64e27d8cb08bac (diff) | |
download | dotty-bb7507f31b892662cb502550ca38bc93011697a9.tar.gz dotty-bb7507f31b892662cb502550ca38bc93011697a9.tar.bz2 dotty-bb7507f31b892662cb502550ca38bc93011697a9.zip |
Ensures ScalaValueClasses are properly initialized.
Diffstat (limited to 'src/dotty/tools/dotc/core/Definitions.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/Definitions.scala | 14 |
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 } } |