LongRangeSet (@NotNull LongRangeSet left, @NotNull LongRangeSet right, LongRangeType lrType) { return switch (this) { case PLUS -> left.plusWiden(right, lrType); case MINUS -> { if (Long.valueOf(0).equals(left.getConstantValue())) { // Unary minus yield left.minus(right, lrType); } yield left.plusWiden(right.negate(lrType), lrType); } case MUL -> left.mulWiden(right, lrType); default -> eval(left, right, lrType); }; }