From fae0e93a6aede02f539fa5acd3a0f5267dbbd5c7 Mon Sep 17 00:00:00 2001 From: paltherr Date: Mon, 7 Apr 2003 17:05:53 +0000 Subject: - 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. --- sources/scalac/symtab/Symbol.java | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) (limited to 'sources/scalac/symtab/Symbol.java') 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) { -- cgit v1.2.3