private Compatibility traverse()

in tools/javac/ApiComparator.java [92:111]


        private Compatibility traverse(StringBuilder out, StringBuilder indent, Set<Message> messages) {
            messages.addAll(this.messages);
            int indentDepth = indent.length();
            Compatibility nextComp = Compatibility.SAME, comp = compatibility;
            if (next != null) nextComp = next.traverse(out, indent, messages);
            if (child != null) {
                indent.append("  ");
                comp = Compatibility.max(comp, child.traverse(out, indent, messages));
                indent.setLength(indentDepth);
            }
            String marks = this.messages.stream().map(m -> m.mark != null ? " " + m.mark : "").collect(Collectors.joining());
            if (comp != Compatibility.SAME || note != null || !marks.isEmpty()) {
                indent.append(diff.ch).append(' ').append(name);
                if (note != null) indent.append(" - ").append(note);
                indent.append(marks);
                out.insert(0, indent.append('\n'));
                indent.setLength(indentDepth);
            }
            return Compatibility.max(comp, nextComp);
        }