public static Name OUTER(Symbol constructor, Symbol member) { Name name = Name.fromString(OUTER(constructor) + "$" + member.name); if (member.name.isTypeName()) name = name.toTypeName(); return name;
public static Name OUTER(Symbol constructor) { if (constructor.isClass()) return Name.fromString(OUTER_PREFIX + constructor.owner().name); assert constructor.isConstructor(): Debug.show(constructor); Symbol clasz = constructor.constructorClass(); Symbol[] constructors = clasz.allConstructors().alternativeSymbols(); int index = 0; while (constructors[index] != constructor) index++; String name = OUTER_PREFIX + index +"$"+ clasz.owner().name; return Name.fromString(name);
    public static Name OUTER(Symbol constructor, Symbol member) {        Name name = Name.fromString(OUTER(constructor) + "$" + member.name);        if (member.name.isTypeName()) name = name.toTypeName();        return name;    }