public static BinaryExpression exclusiveOr(final Expression left, final Expression right, final MethodInfo method) {
verifyCanRead(left, "left");
verifyCanRead(right, "right");
if (method == null) {
final Type leftType = left.getType();
final Type rightType = right.getType();
if (TypeUtils.hasIdentityPrimitiveOrBoxingConversion(leftType, rightType) && TypeUtils.isIntegralOrBoolean(leftType)) {
return new SimpleBinaryExpression(ExpressionType.ExclusiveOr, left, right, performBinaryNumericPromotion(leftType, rightType));
}