summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/Symbol.java
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-04-07 17:05:53 +0000
committerpaltherr <paltherr@epfl.ch>2003-04-07 17:05:53 +0000
commitfae0e93a6aede02f539fa5acd3a0f5267dbbd5c7 (patch)
tree17c203384cb82147a0c2e5eadf5f787f15cef3f9 /sources/scalac/symtab/Symbol.java
parent00699895d9fff134025ef84d321671e27a7cb102 (diff)
downloadscala-fae0e93a6aede02f539fa5acd3a0f5267dbbd5c7.tar.gz
scala-fae0e93a6aede02f539fa5acd3a0f5267dbbd5c7.tar.bz2
scala-fae0e93a6aede02f539fa5acd3a0f5267dbbd5c7.zip
- Fixed Symbol.defString to place the ":" at th...
- Fixed Symbol.defString to place the ":" at the right place. - Added method Type.defString needed by Symbol.defString. - Changed the interpreter to use Symbol.defString & Type.toString to print symbols and types.
Diffstat (limited to 'sources/scalac/symtab/Symbol.java')
-rw-r--r--sources/scalac/symtab/Symbol.java39
1 files changed, 29 insertions, 10 deletions
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java
index 71d8a7c142..7ea1e436b7 100644
--- a/sources/scalac/symtab/Symbol.java
+++ b/sources/scalac/symtab/Symbol.java
@@ -735,16 +735,22 @@ public abstract class Symbol implements Modifiers, Kinds {
/** String representation of definition.
*/
public String defString() {
- String inner;
- if (kind == CLASS) inner = " extends ";
- else if (kind == TYPE) inner = " <: ";
- else if (kind == ALIAS) inner = " = ";
- else inner = " : ";
- return
- (isParameter() ? "" : defKeyword() + " ") +
- nameString() + idString() + inner +
- (rawInfoAt(Global.instance.POST_ANALYZER_PHASE_ID)
- instanceof Type.LazyType ? "?" : info());
+ StringBuffer buffer = new StringBuffer();
+ if (!isParameter()) buffer.append(defKeyword()).append(' ');
+ String name = nameString();
+ if (!Global.instance.debug) {
+ int index = name.indexOf('$');
+ if (index > 0) name = name.substring(0, index);
+ }
+ buffer.append(name).append(idString()).append(innerString());
+ if (rawInfoAt(Global.instance.POST_ANALYZER_PHASE_ID)
+ instanceof Type.LazyType)
+ buffer.append("?");
+ else if (isInitializedMethod())
+ buffer.append(info().defString());
+ else
+ buffer.append(info());
+ return buffer.toString();
}
public static String[] defString(Symbol[] defs) {
@@ -754,6 +760,19 @@ public abstract class Symbol implements Modifiers, Kinds {
return strs;
}
+ private String innerString() {
+ switch (kind) {
+ case Kinds.ERROR: return ": ";
+ case Kinds.NONE : return ": ";
+ case Kinds.ALIAS: return " = ";
+ case Kinds.CLASS: return " extends ";
+ case Kinds.TYPE : return " <: ";
+ case Kinds.VAL : return isModule() ? "extends" :
+ isInitializedMethod() ? "" : ": ";
+ default : throw Debug.abort("illegal case: " + kind);
+ }
+ }
+
/** String representation of kind */
public String kindString() {
switch (kind) {