Symbol origin = (Symbol)origins.get(member); if (!shadowed) { if (member.overriddenSymbol(parents[0]) == origin) { cloner.clones.put(member, origin);
Symbol origin = getMemberOrigin(member); if (!shadowed && origin != null) { Symbol overridden = member.overriddenSymbol(parents[0]); if (origin == getMemberOrigin(overridden)) { cloner.clones.put(member, overridden);
        private void createMixedInMemberSymbols(Scope symbols) {            Scope scope = clasz.members();            for (SymbolIterator i = symbols.iterator(); i.hasNext();) {                Symbol member = i.next();                boolean shadowed = member.isPrivate() || member.isInitializer()                    || member.overridingSymbol(clasz.thisType()) != member;                Symbol origin = (Symbol)origins.get(member);                if (!shadowed) {                    if (member.overriddenSymbol(parents[0]) == origin) {                        cloner.clones.put(member, origin);                        continue;                    }                }                // !!! when the symbol is shadowed, inlining could be                // avoided if the original definition is accessible                // through super                assert Debug.log("expanding type ", clasz, ": cloning ", member);                Symbol clone = cloner.cloneSymbol(member);                if (shadowed) clone.name = Names.MIXIN(member);                if (shadowed) clone.flags &= ~Modifiers.OVERRIDE;                if (shadowed) clone.flags &= ~Modifiers.ACCESSFLAGS;                if (shadowed) clone.flags |=  Modifiers.PRIVATE;                scope.enterOrOverload(clone);                origins.put(clone, origin != null ? origin : member);            }        }