if (symbol.isClass() && !symbol.isInterface()) { switch (type) { case CompoundType(Type[] parents, Scope members): Type[] types = parents; for (int i = 1; i < parents.length; i++) { switch (parents[i]) { case TypeRef(Type prefix, Symbol parent, Type[] args): if (parent.isInterface()) continue; if (types == parents) types = Type.cloneArray(parents); parent = (Symbol)interfaces.get(parent); assert parent != null: parents[i]; types[i] = Type.TypeRef(prefix, parent, args); continue; default: throw Debug.abort("illegal case", parents[i]); } } if (types != parents) type = Type.compoundType(types, members, symbol); break; default: throw Debug.abort("illegal case", type); } }
    public Type transformInfo(Symbol symbol, Type type) {        // !!! make this work and remove *1 in ClassExpander        // if (!symbol.isJava() && symbol.isClass() && !symbol.isInterface())        //     type = getExpandedTemplate(symbol).type();        return type;    }