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/symtab/Symbol.java | |
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/symtab/Symbol.java')
-rw-r--r-- | sources/scalac/symtab/Symbol.java | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java index 43c2867796..adc38fe975 100644 --- a/sources/scalac/symtab/Symbol.java +++ b/sources/scalac/symtab/Symbol.java @@ -222,9 +222,7 @@ public abstract class Symbol implements Modifiers, Kinds { /* Does this symbol denote an anonymous class? */ public final boolean isAnonymousClass() { - return kind == CLASS && - (name == Names.EMPTY.toTypeName() || - name == Names.ANON_CLASS_NAME.toTypeName()); + return isClass() && name.startsWith(Names.ANON_CLASS_NAME); } /** Does this symbol denote the root class or root module? @@ -262,7 +260,7 @@ public abstract class Symbol implements Modifiers, Kinds { /** Does this symbol denote a class? */ public final boolean isClass() { - return kind == CLASS; + return kind == CLASS && (flags & PACKAGE) == 0; } /** Does this symbol denote a case class? @@ -342,9 +340,8 @@ public abstract class Symbol implements Modifiers, Kinds { * - it is defined within a local class */ public final boolean isLocalClass() { - return kind == CLASS && - !isPackage() && - (name == Names.EMPTY.toTypeName() || + return isClass() && + (isAnonymousClass() || owner.isValue() || owner.isLocalClass()); } |