return printType0(type, null);
return printType0(type, "" );
    public SymbolTablePrinter printCommonPart(Type type) {        switch (type) {        case ErrorType:            return print("<error>");        case AnyType:            return print("<any type>");        case NoType:            return print("<notype>");        case NoPrefix:            return print("<noprefix>");        case ThisType(Symbol sym):            if ((sym.isAnonymousClass() || sym.isCompoundSym()) && !global.debug)                 return print("this");            return printSymbolName(sym).print(".this");        case TypeRef(Type pre, Symbol sym, Type[] args):            if (!global.debug) {                if (type.isFunctionType())                    return printFunctionType(args);                if (sym.isAnonymousClass() || sym.isCompoundSym())                    return printTemplateType(pre.memberInfo(sym).parents());            }            printPrefix(pre).printSymbolName(sym);            //print("{" + sym.owner() + "}");//DEBUG            if (args.length != 0) print('[').printTypes(args, ",").print(']');            return this;        case SingleType(Type pre, Symbol sym):            return printPrefix(pre).printSymbolName(sym);	case ConstantType(Type base, AConstant value):	    return printType(base).printConstantValue(value);        case CompoundType(Type[] parts, Scope members):            return printTypes(parts," with ").space()                .printScope(members,true)                .printSymbolUniqueId(type.symbol());        case MethodType(_, _):            return printType0(type, null);        case PolyType(_, _):            return printType0(type, null);        case OverloadedType(Symbol[] alts, Type[] alttypes):            return printTypes(alttypes, " <and> ");        case TypeVar(Type origin, Constraint constr):            return printType(origin).print("?");        case UnboxedType(int kind):            return print(type.unboxedName(kind).toString());        case UnboxedArrayType(Type elemtp):            return printType(elemtp).print("[]");        case LazyType():            if (!global.debug) return print("?");            String classname = type.getClass().getName();            return print("<lazy type ").print(classname).print(">");        default:            String classname = type.getClass().getName();            return print("<unknown type ").print(classname).print(">");        }    }