@Override public IQTree propagateDownConstraint(ImmutableExpression constraint, IQTree child) { return iqFactory.createUnaryIQTree(this, child.propagateDownConstraint(constraint)); }
@Override public IQTree propagateDownConstraint(ImmutableExpression constraint, ImmutableList<IQTree> children) { return iqFactory.createNaryIQTree(this, children.stream() .map(c -> c.propagateDownConstraint(constraint)) .collect(ImmutableCollectors.toList())); }
.map(child -> child.propagateDownConstraint(s)) .collect(ImmutableCollectors.toList())) .orElse(children));