summaryrefslogtreecommitdiff
path: root/sources/scalac
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-11-11 15:39:51 +0000
committerpaltherr <paltherr@epfl.ch>2003-11-11 15:39:51 +0000
commit18fa82639a51fab27da3ec5b34befb46cff659cb (patch)
treeff33529f4c341c7fae972f1ad8374dd25f1b9412 /sources/scalac
parentfa70dcb1a524f58c7f96ee76047b8d906bab8a51 (diff)
downloadscala-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.java4
-rw-r--r--sources/scalac/transformer/Erasure.java7
-rw-r--r--sources/scalac/transformer/ErasurePhase.java8
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);