summaryrefslogtreecommitdiff
path: root/sources/scalac/transformer
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-07-04 22:40:47 +0000
committerpaltherr <paltherr@epfl.ch>2003-07-04 22:40:47 +0000
commit3c256cfb7474090f3cd4780ac80ad0b4702ff90f (patch)
tree9bf5b4e3360ec3e9e394e6c20dd58377ef9c7ad0 /sources/scalac/transformer
parent0d359a148ea4e839ebce28b1593798e6902ef4aa (diff)
downloadscala-3c256cfb7474090f3cd4780ac80ad0b4702ff90f.tar.gz
scala-3c256cfb7474090f3cd4780ac80ad0b4702ff90f.tar.bz2
scala-3c256cfb7474090f3cd4780ac80ad0b4702ff90f.zip
- Fixed Symbol.isClass to return false if symbo...
- Fixed Symbol.isClass to return false if symbol is a package Fixed - Symbol.isAnonymousClass to correctly test the class name Fixed - Symbol.isLocalClass to use methods isClass and isAnonymousClass Fixed - GenJVM.javaName (only worked because isAnonymousClass was broken) - Fixed AddInterfacesPhase.needInterface to return false for anonymous - classes Adapted AddInterfacesPhase.transformInfo to new definition of - isClass
Diffstat (limited to 'sources/scalac/transformer')
-rw-r--r--sources/scalac/transformer/AddInterfacesPhase.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/sources/scalac/transformer/AddInterfacesPhase.java b/sources/scalac/transformer/AddInterfacesPhase.java
index 5d85bf317e..3c51efae91 100644
--- a/sources/scalac/transformer/AddInterfacesPhase.java
+++ b/sources/scalac/transformer/AddInterfacesPhase.java
@@ -40,8 +40,9 @@ public class AddInterfacesPhase extends PhaseDescriptor {
}
public Type transformInfo(Symbol sym, Type tp) {
- if (sym.isConstructor()
- && needInterface(sym.primaryConstructorClass())) {
+ if (sym.isConstructor()) {
+ Symbol clazz =sym.primaryConstructorClass();
+ if (clazz.isPackage() || !needInterface(clazz)) return tp;
// The symbol is a constructor of a class which needs
// an interface. All its value arguments have to be
// removed.
@@ -183,6 +184,7 @@ public class AddInterfacesPhase extends PhaseDescriptor {
: Debug.toString(classSym) + " is not a class (kind " + classSym.kind + ")";
return !(classSym.isJava()
|| classSym.isModuleClass()
+ || classSym.isAnonymousClass()
|| hasInterfaceSymbol(classSym)
|| classSym == Global.instance.definitions.ANY_CLASS
|| classSym == Global.instance.definitions.ANYREF_CLASS