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

◆ AndAssign() [3/3]

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

Definition at line 1899 of file Expression.cs.

1900 {
1901 ExpressionUtils.RequiresCanRead(left, "left");
1902 RequiresCanWrite(left, "left");
1903 ExpressionUtils.RequiresCanRead(right, "right");
1904 if (method == null)
1905 {
1906 if (left.Type == right.Type && left.Type.IsIntegerOrBool())
1907 {
1908 if (conversion != null)
1909 {
1910 throw Error.ConversionIsNotSupportedForArithmeticTypes();
1911 }
1912 return new SimpleBinaryExpression(ExpressionType.AndAssign, left, right, left.Type);
1913 }
1914 return GetUserDefinedAssignOperatorOrThrow(ExpressionType.AndAssign, "op_BitwiseAnd", left, right, conversion, liftToNull: true);
1915 }
1917 }
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().