LinkedList l1 = getOwners((Symbol)o1); LinkedList l2 = getOwners((Symbol)o2); for (int i = 0; true; i++) { if (i == l1.size() || i == l2.size()) return l1.size() - l2.size(); Symbol s1 = (Symbol)l1.get(i); Symbol s2 = (Symbol)l2.get(i); if (s1 == s2) continue; int c = s1.nameString().compareTo(s2.nameString()); if (c != 0) return c; return s1.id - s2.id; } }
int c = compare0(o1, o2); System.out.println("!!! " + Debug.show(o1, " - ", o2) + " -> " + c); return c; }
	    public int compare(Object o1, Object o2) {                LinkedList l1 = getOwners((Symbol)o1);                LinkedList l2 = getOwners((Symbol)o2);                for (int i = 0; true; i++) {                    if (i == l1.size() || i == l2.size())                        return l1.size() - l2.size();                    Symbol s1 = (Symbol)l1.get(i);                    Symbol s2 = (Symbol)l2.get(i);                    if (s1 == s2) continue;                    int c = s1.nameString().compareTo(s2.nameString());                    if (c != 0) return c;                    return s1.id - s2.id;                }	    }