Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ EmitBinaryMethod()

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitBinaryMethod ( BinaryExpression b,
CompilationFlags flags )
inlineprivate

Definition at line 429 of file LambdaCompiler.cs.

430 {
431 if (b.IsLifted)
432 {
433 ParameterExpression parameterExpression = Expression.Variable(b.Left.Type.GetNonNullableType(), null);
434 ParameterExpression parameterExpression2 = Expression.Variable(b.Right.Type.GetNonNullableType(), null);
435 MethodCallExpression methodCallExpression = Expression.Call(null, b.Method, parameterExpression, parameterExpression2);
436 EmitLift(resultType: (!b.IsLiftedToNull) ? typeof(bool) : methodCallExpression.Type.GetNullableType(), nodeType: b.NodeType, mc: methodCallExpression, paramList: new ParameterExpression[2] { parameterExpression, parameterExpression2 }, argList: new Expression[2] { b.Left, b.Right });
437 }
438 else
439 {
440 EmitMethodCallExpression(Expression.Call(null, b.Method, b.Left, b.Right), flags);
441 }
442 }
void EmitLift(ExpressionType nodeType, Type resultType, MethodCallExpression mc, ParameterExpression[] paramList, Expression[] argList)
void EmitMethodCallExpression(Expression expr, CompilationFlags flags)

References System.Linq.Expressions.Expression< TDelegate >.Call(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitLift(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitMethodCallExpression(), and System.Linq.Expressions.Expression< TDelegate >.Variable().

Referenced by System.Linq.Expressions.Compiler.LambdaCompiler.EmitBinaryExpression(), and System.Linq.Expressions.Compiler.LambdaCompiler.EmitBranchComparison().