summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-06-26 20:16:31 +0000
committerPaul Phillips <paulp@improving.org>2009-06-26 20:16:31 +0000
commit7abf1386eeb30c91bf22f4fc50ab51a767001402 (patch)
tree259f4f1e8081eb98944d6ac27ea54906edb60e46 /src
parent9a8c1984bebd51bce6ec2f37dcc4cc036f133d51 (diff)
downloadscala-7abf1386eeb30c91bf22f4fc50ab51a767001402.tar.gz
scala-7abf1386eeb30c91bf22f4fc50ab51a767001402.tar.bz2
scala-7abf1386eeb30c91bf22f4fc50ab51a767001402.zip
Made the value classes lazy vals rather than de...
Made the value classes lazy vals rather than delayed assignment vars, because as it stands they're not stable identifiers.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Definitions.scala47
1 files changed, 18 insertions, 29 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Definitions.scala b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
index aba7f34cef..56c19e8fc7 100644
--- a/src/compiler/scala/tools/nsc/symtab/Definitions.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Definitions.scala
@@ -76,23 +76,24 @@ trait Definitions {
lazy val Delegate_scalaCallerTargets: HashMap[Symbol, Symbol] = new HashMap()
// the scala value classes
- var UnitClass: Symbol = _
- var BooleanClass: Symbol = _
- def Boolean_not = getMember(BooleanClass, nme.UNARY_!)
- def Boolean_and = getMember(BooleanClass, nme.ZAND)
- def Boolean_or = getMember(BooleanClass, nme.ZOR)
- var ByteClass: Symbol = _
- var ShortClass: Symbol = _
- var CharClass: Symbol = _
- var IntClass: Symbol = _
- def Int_Or = definitions.getMember(definitions.IntClass, nme.OR)
- def Int_And = definitions.getMember(definitions.IntClass, nme.AND)
- def Int_== = definitions.getMember(definitions.IntClass, nme.EQ)
- def Int_!= = definitions.getMember(definitions.IntClass, nme.NE)
-
- var LongClass: Symbol = _
- var FloatClass: Symbol = _
- var DoubleClass: Symbol = _
+ lazy val UnitClass = newClass(ScalaPackageClass, nme.Unit, List(AnyValClass.typeConstructor)).setFlag(ABSTRACT | FINAL)
+ lazy val BooleanClass = newValueClass(nme.Boolean, 'Z')
+ lazy val ByteClass = newValueClass(nme.Byte, 'B')
+ lazy val ShortClass = newValueClass(nme.Short, 'S')
+ lazy val CharClass = newValueClass(nme.Char, 'C')
+ lazy val IntClass = newValueClass(nme.Int, 'I')
+ lazy val LongClass = newValueClass(nme.Long, 'L')
+ lazy val FloatClass = newValueClass(nme.Float, 'F')
+ lazy val DoubleClass = newValueClass(nme.Double, 'D')
+
+ // some value class conveniences
+ def Boolean_not = getMember(BooleanClass, nme.UNARY_!)
+ def Boolean_and = getMember(BooleanClass, nme.ZAND)
+ def Boolean_or = getMember(BooleanClass, nme.ZOR)
+ def Int_Or = getMember(IntClass, nme.OR)
+ def Int_And = getMember(IntClass, nme.AND)
+ def Int_== = getMember(IntClass, nme.EQ)
+ def Int_!= = getMember(IntClass, nme.NE)
// the scala reference classes
lazy val ScalaObjectClass: Symbol = getClass("scala.ScalaObject")
@@ -733,20 +734,8 @@ trait Definitions {
SingletonClass = newClass(ScalaPackageClass, nme.Singleton, any)
.setFlag(ABSTRACT | TRAIT | FINAL)
- UnitClass =
- newClass(ScalaPackageClass, nme.Unit, List(AnyValClass.typeConstructor))
- .setFlag(ABSTRACT | FINAL)
abbrvTag(UnitClass) = 'V'
- BooleanClass = newValueClass(nme.Boolean, 'Z')
- ByteClass = newValueClass(nme.Byte, 'B')
- ShortClass = newValueClass(nme.Short, 'S')
- CharClass = newValueClass(nme.Char, 'C')
- IntClass = newValueClass(nme.Int, 'I')
- LongClass = newValueClass(nme.Long, 'L')
- FloatClass = newValueClass(nme.Float, 'F')
- DoubleClass = newValueClass(nme.Double, 'D')
-
CodeClass = getClass(sn.Code)
CodeModule = getModule(sn.Code)
RepeatedParamClass = newCovariantPolyClass(