aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Definitions.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-03-25 12:18:34 +0100
committerMartin Odersky <odersky@gmail.com>2013-03-25 12:18:34 +0100
commit27a508c50482f4053591ed740f09ecced5bf749b (patch)
tree936cf263cc1236bb308cc786c0f7ee0cdc0f2fa8 /src/dotty/tools/dotc/core/Definitions.scala
parent4a17f0d1e17adecbdc4755bf719feff18d115318 (diff)
downloaddotty-27a508c50482f4053591ed740f09ecced5bf749b.tar.gz
dotty-27a508c50482f4053591ed740f09ecced5bf749b.tar.bz2
dotty-27a508c50482f4053591ed740f09ecced5bf749b.zip
More fixes for classfile reading.
In particular: Survive malformed type errors. Make trees cloneable. and others more.
Diffstat (limited to 'src/dotty/tools/dotc/core/Definitions.scala')
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index 8ac67dd02..81cdf4826 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -83,7 +83,12 @@ class Definitions(implicit ctx: Context) {
lazy val PredefModule = requiredModule("scala.Predef")
// lazy val FunctionClass: ClassSymbol = requiredClass("scala.Function")
- lazy val SingletonClass: ClassSymbol = requiredClass("dotty.Singleton")
+ lazy val SingletonClass: ClassSymbol =
+ // needed as a synthetic class because Scala 2.x refers to it in classfiles
+ // but does not define it as an explicit class.
+ ctx.newCompleteClassSymbol(
+ ScalaPackageClass, tpnme.Singleton, Trait | Interface | Final,
+ List(AnyClass.typeConstructor), EmptyScope).entered
lazy val SeqClass: ClassSymbol = requiredClass("scala.collection.Seq")
lazy val ArrayClass: ClassSymbol = requiredClass("scala.Array")
lazy val uncheckedStableClass: ClassSymbol = requiredClass("scala.annotation.unchecked.uncheckedStable")
@@ -291,6 +296,7 @@ class Definitions(implicit ctx: Context) {
AnyValClass,
NullClass,
NothingClass,
+ SingletonClass,
EqualsPatternClass)
private[this] var _isInitialized = false