1235 {
1240 {
1241 if (left.Type == right.Type)
1242 {
1243 if (left.Type ==
typeof(
bool))
1244 {
1245 return new LogicalBinaryExpression(
ExpressionType.OrElse, left, right);
1246 }
1247 if (left.Type ==
typeof(
bool?))
1248 {
1249 return new SimpleBinaryExpression(
ExpressionType.OrElse, left, right, left.Type);
1250 }
1251 }
1254 {
1256 type = ((left.Type.IsNullableType() && method.ReturnType == left.Type.GetNonNullableType()) ? left.Type :
method.
ReturnType);
1258 }
1260 }
1262 type = ((left.Type.IsNullableType() && method.ReturnType == left.Type.GetNonNullableType()) ? left.Type :
method.
ReturnType);
1264 }
static void RequiresCanRead(Expression expression, string paramName)
static BinaryExpression GetUserDefinedBinaryOperator(ExpressionType binaryType, string name, Expression left, Expression right, bool liftToNull)
static void ValidateUserDefinedConditionalLogicOperator(ExpressionType nodeType, Type left, Type right, MethodInfo method)