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

◆ EmitLiftedBinaryOp()

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitLiftedBinaryOp ( ExpressionType op,
Type leftType,
Type rightType,
Type resultType,
bool liftedToNull )
inlineprivate

Definition at line 569 of file LambdaCompiler.cs.

570 {
571 switch (op)
572 {
573 case ExpressionType.And:
574 if (leftType == typeof(bool?))
575 {
577 }
578 else
579 {
581 }
582 break;
583 case ExpressionType.Or:
584 if (leftType == typeof(bool?))
585 {
587 }
588 else
589 {
591 }
592 break;
593 case ExpressionType.Add:
594 case ExpressionType.AddChecked:
595 case ExpressionType.Divide:
596 case ExpressionType.ExclusiveOr:
597 case ExpressionType.LeftShift:
598 case ExpressionType.Modulo:
599 case ExpressionType.Multiply:
600 case ExpressionType.MultiplyChecked:
601 case ExpressionType.RightShift:
602 case ExpressionType.Subtract:
603 case ExpressionType.SubtractChecked:
605 break;
606 case ExpressionType.Equal:
607 case ExpressionType.GreaterThan:
608 case ExpressionType.GreaterThanOrEqual:
609 case ExpressionType.LessThan:
610 case ExpressionType.LessThanOrEqual:
611 case ExpressionType.NotEqual:
612 if (liftedToNull)
613 {
615 }
616 else
617 {
619 }
620 break;
621 }
622 }
void EmitLiftedToNullRelational(ExpressionType op, Type type)
void EmitLiftedBinaryArithmetic(ExpressionType op, Type leftType, Type rightType, Type resultType)
void EmitLiftedRelational(ExpressionType op, Type type)

References System.Linq.Expressions.Compiler.LambdaCompiler.EmitLiftedBinaryArithmetic(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitLiftedBooleanAnd(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitLiftedBooleanOr(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitLiftedRelational(), and System.Linq.Expressions.Compiler.LambdaCompiler.EmitLiftedToNullRelational().

Referenced by System.Linq.Expressions.Compiler.LambdaCompiler.EmitBinaryOperator().