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

◆ ValidateOpAssignConversionLambda()

static void System.Linq.Expressions.Expression< TDelegate >.ValidateOpAssignConversionLambda ( LambdaExpression< TDelegate > conversion,
Expression< TDelegate > left,
MethodInfo method,
ExpressionType nodeType )
inlinestaticprivateinherited

Definition at line 1378 of file Expression.cs.

1379 {
1380 Type type = conversion.Type;
1381 MethodInfo invokeMethod = type.GetInvokeMethod();
1382 ParameterInfo[] parametersCached = invokeMethod.GetParametersCached();
1383 if (parametersCached.Length != 1)
1384 {
1385 throw Error.IncorrectNumberOfMethodCallArguments(conversion, "conversion");
1386 }
1387 if (!TypeUtils.AreEquivalent(invokeMethod.ReturnType, left.Type))
1388 {
1389 throw Error.OperandTypesDoNotMatchParameters(nodeType, conversion.ToString());
1390 }
1391 if (!TypeUtils.AreEquivalent(parametersCached[0].ParameterType, method.ReturnType))
1392 {
1393 throw Error.OverloadOperatorTypeDoesNotMatchConversionType(nodeType, conversion.ToString());
1394 }
1395 }
static bool AreEquivalent(Type t1, Type t2)
Definition TypeUtils.cs:664

References System.Dynamic.Utils.TypeUtils.AreEquivalent(), System.Linq.Expressions.Error.IncorrectNumberOfMethodCallArguments(), System.Linq.Expressions.Error.OperandTypesDoNotMatchParameters(), System.Linq.Expressions.Error.OverloadOperatorTypeDoesNotMatchConversionType(), and System.type.

Referenced by System.Linq.Expressions.Expression< TDelegate >.GetMethodBasedAssignOperator(), and System.Linq.Expressions.Expression< TDelegate >.GetUserDefinedAssignOperatorOrThrow().