Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ OrAssign() [3/3]

static BinaryExpression System.Linq.Expressions.Expression< TDelegate >.OrAssign ( Expression< TDelegate > left,
Expression< TDelegate > right,
MethodInfo? method,
LambdaExpression< TDelegate >? conversion )
inlinestaticinherited

Definition at line 1949 of file Expression.cs.

1950 {
1951 ExpressionUtils.RequiresCanRead(left, "left");
1952 RequiresCanWrite(left, "left");
1953 ExpressionUtils.RequiresCanRead(right, "right");
1954 if (method == null)
1955 {
1956 if (left.Type == right.Type && left.Type.IsIntegerOrBool())
1957 {
1958 if (conversion != null)
1959 {
1960 throw Error.ConversionIsNotSupportedForArithmeticTypes();
1961 }
1962 return new SimpleBinaryExpression(ExpressionType.OrAssign, left, right, left.Type);
1963 }
1964 return GetUserDefinedAssignOperatorOrThrow(ExpressionType.OrAssign, "op_BitwiseOr", left, right, conversion, liftToNull: true);
1965 }
1967 }
static void RequiresCanRead(Expression expression, string paramName)
static BinaryExpression GetUserDefinedAssignOperatorOrThrow(ExpressionType binaryType, string name, Expression left, Expression right, LambdaExpression conversion, bool liftToNull)
static void RequiresCanWrite(Expression expression, string paramName)
static BinaryExpression GetMethodBasedAssignOperator(ExpressionType binaryType, Expression left, Expression right, MethodInfo method, LambdaExpression conversion, bool liftToNull)

References System.Linq.Expressions.Error.ConversionIsNotSupportedForArithmeticTypes(), System.Linq.Expressions.Expression< TDelegate >.GetMethodBasedAssignOperator(), System.Linq.Expressions.Expression< TDelegate >.GetUserDefinedAssignOperatorOrThrow(), System.Dynamic.Utils.ExpressionUtils.RequiresCanRead(), and System.Linq.Expressions.Expression< TDelegate >.RequiresCanWrite().