aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Definitions.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-04-05 16:36:52 +0200
committerMartin Odersky <odersky@gmail.com>2013-04-05 16:36:52 +0200
commitbb7507f31b892662cb502550ca38bc93011697a9 (patch)
treec68d67426424ea30da9221b35997cc59ed012b42 /src/dotty/tools/dotc/core/Definitions.scala
parentf8d5c8401ab7e4a31c9f4430ad64e27d8cb08bac (diff)
downloaddotty-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.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
}
}