diff options
author | paltherr <paltherr@epfl.ch> | 2003-11-11 15:39:51 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-11-11 15:39:51 +0000 |
commit | 18fa82639a51fab27da3ec5b34befb46cff659cb (patch) | |
tree | ff33529f4c341c7fae972f1ad8374dd25f1b9412 /sources/scalac | |
parent | fa70dcb1a524f58c7f96ee76047b8d906bab8a51 (diff) | |
download | scala-18fa82639a51fab27da3ec5b34befb46cff659cb.tar.gz scala-18fa82639a51fab27da3ec5b34befb46cff659cb.tar.bz2 scala-18fa82639a51fab27da3ec5b34befb46cff659cb.zip |
- Removed JAVA modifier from ANY_CLASS and ANYR...
- Removed JAVA modifier from ANY_CLASS and ANYREF_CLASS
Diffstat (limited to 'sources/scalac')
-rw-r--r-- | sources/scalac/symtab/Definitions.java | 4 | ||||
-rw-r--r-- | sources/scalac/transformer/Erasure.java | 7 | ||||
-rw-r--r-- | sources/scalac/transformer/ErasurePhase.java | 8 |
3 files changed, 11 insertions, 8 deletions
diff --git a/sources/scalac/symtab/Definitions.java b/sources/scalac/symtab/Definitions.java index 256a91a2e0..71fa4571c0 100644 --- a/sources/scalac/symtab/Definitions.java +++ b/sources/scalac/symtab/Definitions.java @@ -410,9 +410,9 @@ public class Definitions { Symbol SCALA_PACKAGE = getClass(Names.scala); // the top and bottom classes - ANY_CLASS = newClass(SCALA_PACKAGE, Names.Any, Modifiers.JAVA); + ANY_CLASS = newClass(SCALA_PACKAGE, Names.Any, 0); ANYVAL_CLASS = getClass(Names.scala_AnyVal); - ANYREF_CLASS = newAlias(SCALA_PACKAGE, Names.AnyRef, Modifiers.JAVA); + ANYREF_CLASS = newAlias(SCALA_PACKAGE, Names.AnyRef, 0); ALLREF_CLASS = newClass(SCALA_PACKAGE, Names.AllRef, 0); ALL_CLASS = newClass(SCALA_PACKAGE, Names.All, 0); diff --git a/sources/scalac/transformer/Erasure.java b/sources/scalac/transformer/Erasure.java index 29a8d5d706..be4cb30607 100644 --- a/sources/scalac/transformer/Erasure.java +++ b/sources/scalac/transformer/Erasure.java @@ -363,7 +363,12 @@ public class Erasure extends GenTransformer implements Modifiers { } if (global.target == global.TARGET_INT) { global.nextPhase(); - while (!element.symbol().isJava()) element = element.parents()[0]; + while (true) { + Symbol clasz = element.symbol(); + if (clasz.isJava()) break; + if (clasz == definitions.ANY_CLASS) break; + element = element.parents()[0]; + } global.prevPhase(); } String name = primitives.getNameForClassForName(element); diff --git a/sources/scalac/transformer/ErasurePhase.java b/sources/scalac/transformer/ErasurePhase.java index 9d423d282b..6bf1ca4532 100644 --- a/sources/scalac/transformer/ErasurePhase.java +++ b/sources/scalac/transformer/ErasurePhase.java @@ -65,11 +65,9 @@ public class ErasurePhase extends Phase { if (sym.isInterface()) { Symbol superclass = parents[0].symbol(); if (superclass.isJava() && !superclass.isInterface()) { - if (superclass != definitions.ANY_CLASS) { - parents = Type.cloneArray(parents); - parents[0] = definitions.ANYREF_TYPE(); - tp = Type.compoundType(parents, members, sym); - } + parents = Type.cloneArray(parents); + parents[0] = definitions.ANYREF_TYPE(); + tp = Type.compoundType(parents, members, sym); } } return Type.erasureMap.map(tp); |