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

◆ EmitExpressionAndBranch()

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionAndBranch ( bool branchValue,
Expression node,
Label label )
inlineprivate

Definition at line 2722 of file LambdaCompiler.cs.

2723 {
2725 switch (node.NodeType)
2726 {
2727 case ExpressionType.Not:
2728 EmitBranchNot(branchValue, (UnaryExpression)node, label);
2729 break;
2730 case ExpressionType.AndAlso:
2731 case ExpressionType.OrElse:
2732 EmitBranchLogical(branchValue, (BinaryExpression)node, label);
2733 break;
2734 case ExpressionType.Block:
2735 EmitBranchBlock(branchValue, (BlockExpression)node, label);
2736 break;
2737 case ExpressionType.Equal:
2738 case ExpressionType.NotEqual:
2739 EmitBranchComparison(branchValue, (BinaryExpression)node, label);
2740 break;
2741 default:
2742 EmitExpression(node, CompilationFlags.EmitNoExpressionStart | CompilationFlags.EmitAsNoTail);
2744 break;
2745 }
2746 EmitExpressionEnd(flags);
2747 }
void EmitBranchNot(bool branch, UnaryExpression node, Label label)
void EmitBranchLogical(bool branch, BinaryExpression node, Label label)
void EmitBranchBlock(bool branch, BlockExpression node, Label label)
void EmitBranchComparison(bool branch, BinaryExpression node, Label label)

References System.Linq.Expressions.Compiler.LambdaCompiler.EmitBranchBlock(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitBranchComparison(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitBranchLogical(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitBranchNot(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitBranchOp(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionEnd(), and System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionStart.

Referenced by System.Linq.Expressions.Compiler.LambdaCompiler.EmitBranchAnd(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitBranchBlock(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitBranchNot(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitBranchOr(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitConditionalExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitSwitchExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitUnliftedAndAlso(), and System.Linq.Expressions.Compiler.LambdaCompiler.EmitUnliftedOrElse().