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

◆ GetUserDefinedAssignOperatorOrThrow()

static BinaryExpression System.Linq.Expressions.Expression< TDelegate >.GetUserDefinedAssignOperatorOrThrow ( ExpressionType binaryType,
string name,
Expression< TDelegate > left,
Expression< TDelegate > right,
LambdaExpression< TDelegate > conversion,
bool liftToNull )
inlinestaticprivateinherited

Definition at line 799 of file Expression.cs.

800 {
801 BinaryExpression binaryExpression = GetUserDefinedBinaryOperatorOrThrow(binaryType, name, left, right, liftToNull);
802 if (conversion == null)
803 {
805 {
806 throw Error.UserDefinedOpMustHaveValidReturnType(binaryType, binaryExpression.Method.Name);
807 }
808 }
809 else
810 {
812 binaryExpression = new OpAssignMethodConversionBinaryExpression(binaryExpression.NodeType, binaryExpression.Left, binaryExpression.Right, binaryExpression.Left.Type, binaryExpression.Method, conversion);
813 }
814 return binaryExpression;
815 }
static bool AreReferenceAssignable(Type dest, Type src)
Definition TypeUtils.cs:673
static void ValidateOpAssignConversionLambda(LambdaExpression conversion, Expression left, MethodInfo method, ExpressionType nodeType)
static BinaryExpression GetUserDefinedBinaryOperatorOrThrow(ExpressionType binaryType, string name, Expression left, Expression right, bool liftToNull)

References System.Dynamic.Utils.TypeUtils.AreReferenceAssignable(), System.Linq.Expressions.Expression< TDelegate >.GetUserDefinedBinaryOperatorOrThrow(), System.Linq.Expressions.Error.UserDefinedOpMustHaveValidReturnType(), and System.Linq.Expressions.Expression< TDelegate >.ValidateOpAssignConversionLambda().

Referenced by System.Linq.Expressions.Expression< TDelegate >.AddAssign(), System.Linq.Expressions.Expression< TDelegate >.AddAssignChecked(), System.Linq.Expressions.Expression< TDelegate >.AndAssign(), System.Linq.Expressions.Expression< TDelegate >.DivideAssign(), System.Linq.Expressions.Expression< TDelegate >.ExclusiveOrAssign(), System.Linq.Expressions.Expression< TDelegate >.LeftShiftAssign(), System.Linq.Expressions.Expression< TDelegate >.ModuloAssign(), System.Linq.Expressions.Expression< TDelegate >.MultiplyAssign(), System.Linq.Expressions.Expression< TDelegate >.MultiplyAssignChecked(), System.Linq.Expressions.Expression< TDelegate >.OrAssign(), System.Linq.Expressions.Expression< TDelegate >.RightShiftAssign(), System.Linq.Expressions.Expression< TDelegate >.SubtractAssign(), and System.Linq.Expressions.Expression< TDelegate >.SubtractAssignChecked().