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

◆ EmitBinaryExpression() [2/2]

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitBinaryExpression ( Expression expr,
CompilationFlags flags )
inlineprivate

Definition at line 381 of file LambdaCompiler.cs.

382 {
383 BinaryExpression binaryExpression = (BinaryExpression)expr;
384 if (binaryExpression.Method != null)
385 {
387 return;
388 }
389 if ((binaryExpression.NodeType == ExpressionType.Equal || binaryExpression.NodeType == ExpressionType.NotEqual) && (binaryExpression.Type == typeof(bool) || binaryExpression.Type == typeof(bool?)))
390 {
391 if (ConstantCheck.IsNull(binaryExpression.Left) && !ConstantCheck.IsNull(binaryExpression.Right) && binaryExpression.Right.Type.IsNullableType())
392 {
394 return;
395 }
396 if (ConstantCheck.IsNull(binaryExpression.Right) && !ConstantCheck.IsNull(binaryExpression.Left) && binaryExpression.Left.Type.IsNullableType())
397 {
399 return;
400 }
403 }
404 else
405 {
408 }
409 EmitBinaryOperator(binaryExpression.NodeType, binaryExpression.Left.Type, binaryExpression.Right.Type, binaryExpression.Type, binaryExpression.IsLiftedToNull);
410 }
static Expression GetEqualityOperand(Expression expression)
void EmitBinaryOperator(ExpressionType op, Type leftType, Type rightType, Type resultType, bool liftedToNull)
void EmitBinaryMethod(BinaryExpression b, CompilationFlags flags)
void EmitNullEquality(ExpressionType op, Expression e, bool isLiftedToNull)

References System.Linq.Expressions.Compiler.LambdaCompiler.EmitBinaryMethod(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitBinaryOperator(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitNullEquality(), System.Linq.Expressions.Compiler.LambdaCompiler.GetEqualityOperand(), and System.Linq.Expressions.ConstantCheck.IsNull().