StructureNode removeUnneeded()

in src/main/java/org/jetbrains/jetCheck/StructureNode.java [216:230]


  StructureNode removeUnneeded(Set<NodeId> unneeded) {
    List<StructureElement> replaced = new ArrayList<>(children.size());
    boolean changed = false;
    for (StructureElement child : children) {
      if (unneeded.contains(child.id)) {
        return copyWithChildren(replaced);
      }
      StructureElement removed = child.removeUnneeded(unneeded);
      if (removed != child) {
        changed = true;
      }
      replaced.add(removed);
    }
    return changed ? copyWithChildren(replaced) : this;
  }