DfaCondition (boolean result) { DfaValue newLeft = leftOperand; DfaValue newRight = rightOperand; if (newLeft instanceof DfaTypeValue leftTypeValue) { newLeft = newLeft.getFactory().fromDfType(leftTypeValue.getDfType().correctForRelationResult(relationType, result)); } if (newRight instanceof DfaTypeValue rightTypeValue) { newRight = newRight.getFactory().fromDfType(rightTypeValue.getDfType().correctForRelationResult(relationType, result)); } return newLeft == leftOperand && newRight == rightOperand ? this : DfaCondition.createCondition(newLeft, relationType, newRight); }