diff options
author | paltherr <paltherr@epfl.ch> | 2003-07-04 22:40:47 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-07-04 22:40:47 +0000 |
commit | 3c256cfb7474090f3cd4780ac80ad0b4702ff90f (patch) | |
tree | 9bf5b4e3360ec3e9e394e6c20dd58377ef9c7ad0 /sources/scalac/transformer | |
parent | 0d359a148ea4e839ebce28b1593798e6902ef4aa (diff) | |
download | scala-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.java | 6 |
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 |