return gen.ClassDef(classSym, newClassParents, newClassBody.toArray());
Symbol local = classDef.impl.symbol(); local.setOwner(classSym); return gen.ClassDef(classSym, newClassParents, local, newClassBody.toArray());
    protected Tree makeClass(ClassDef classDef) {        Symbol ifaceSym = classDef.symbol();        Symbol classSym = phase.getClassSymbol(ifaceSym);        TreeList newClassBody = new TreeList();        Template classImpl = classDef.impl;        Tree[] classBody = classImpl.body;        Map classMemberMap = phase.getClassMemberMap(classSym);        assert thisTypeSubst == null;        thisTypeSubst = new Type.SubstThisMap(ifaceSym, classSym);        for (int i = 0; i < classBody.length; ++i) {            Tree t = classBody[i];            Symbol tSym = t.symbol();            if (t.hasSymbol() && !classMemberMap.containsKey(tSym))                continue;            Tree newT = transform(t);            if (t.hasSymbol() && classMemberMap.containsKey(tSym))                newT.setSymbol((Symbol)classMemberMap.get(tSym));            newClassBody.append(newT);        }        thisTypeSubst = null;        Tree[][] oldParentArgs = extractParentArgs(classImpl.parents);        Tree[][] parentArgs = new Tree[oldParentArgs.length + 1][];        System.arraycopy(oldParentArgs, 0, parentArgs, 0, oldParentArgs.length);        parentArgs[oldParentArgs.length] = Tree.EMPTY_ARRAY;        global.nextPhase();        Type[] newParents = classSym.parents();        global.prevPhase();        Tree[] newClassParents =            gen.mkParentConstrs(classDef.pos, newParents, parentArgs);        return gen.ClassDef(classSym, newClassParents, newClassBody.toArray());    }