summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/Symbol.java
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-02-20 13:15:06 +0000
committerMartin Odersky <odersky@gmail.com>2003-02-20 13:15:06 +0000
commit17bd66e3cf7734ccf1ccd3a0adb987feb880d325 (patch)
tree52c57891aac018ce89643e41dd0dd05170ae42ab /sources/scalac/symtab/Symbol.java
parent2fc8c8dc203f00a936aab60dba50c2d7e4ae054b (diff)
downloadscala-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.java14
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();
}