diff options
author | Martin Odersky <odersky@gmail.com> | 2003-02-20 13:15:06 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-02-20 13:15:06 +0000 |
commit | 17bd66e3cf7734ccf1ccd3a0adb987feb880d325 (patch) | |
tree | 52c57891aac018ce89643e41dd0dd05170ae42ab /sources/scalac/symtab/Symbol.java | |
parent | 2fc8c8dc203f00a936aab60dba50c2d7e4ae054b (diff) | |
download | scala-17bd66e3cf7734ccf1ccd3a0adb987feb880d325.tar.gz scala-17bd66e3cf7734ccf1ccd3a0adb987feb880d325.tar.bz2 scala-17bd66e3cf7734ccf1ccd3a0adb987feb880d325.zip |
*** empty log message ***
Diffstat (limited to 'sources/scalac/symtab/Symbol.java')
-rw-r--r-- | sources/scalac/symtab/Symbol.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java index 962c332266..5bfec83e7f 100644 --- a/sources/scalac/symtab/Symbol.java +++ b/sources/scalac/symtab/Symbol.java @@ -564,6 +564,13 @@ public abstract class Symbol implements Modifiers, Kinds { if (diff > 0) return true; if (diff < 0) return false; + diff = that.hashCode() - this.hashCode(); + if (diff > 0) return true; + if (diff < 0) return false; + + if (owner().isLess(that.owner())) return true; + if (that.owner().isLess(owner())) return false; + throw new ApplicationError( "Giving up: can't order two incarnations of class " + this.mangledFullName()); @@ -638,10 +645,10 @@ public abstract class Symbol implements Modifiers, Kinds { */ public String toString() { if (isRoot()) return "<root package>"; - if (isAnonymousClass()) return "<template>"; String kstr = kindString(); String str; - if (kstr.length() == 0) str = fullNameString(); + if (isAnonymousClass()) str = "<template>"; + else if (kstr.length() == 0) str = fullNameString(); else str = kstr + " " + fullNameString(); return str + idString(); } @@ -878,7 +885,8 @@ public class TermSymbol extends Symbol { } /** Get the fully qualified name of this Symbol */ public Name fullName() { - if ((flags & MODUL) != 0) return moduleClass().fullName(); + if (isModule()) return moduleClass().fullName(); + else if (isPrimaryConstructor()) return primaryConstructorClass().fullName(); else return super.fullName(); } |