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

◆ EmitExpressionAsVoid() [2/2]

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionAsVoid ( Expression node,
CompilationFlags flags )
inlineprivate

Definition at line 1127 of file LambdaCompiler.cs.

1128 {
1130 switch (node.NodeType)
1131 {
1132 case ExpressionType.Assign:
1133 EmitAssign((AssignBinaryExpression)node, CompilationFlags.EmitAsVoidType);
1134 break;
1135 case ExpressionType.Block:
1136 Emit((BlockExpression)node, UpdateEmitAsTypeFlag(flags, CompilationFlags.EmitAsVoidType));
1137 break;
1138 case ExpressionType.Throw:
1139 EmitThrow((UnaryExpression)node, CompilationFlags.EmitAsVoidType);
1140 break;
1141 case ExpressionType.Goto:
1143 break;
1144 default:
1145 if (node.Type == typeof(void))
1146 {
1147 EmitExpression(node, UpdateEmitExpressionStartFlag(flags, CompilationFlags.EmitNoExpressionStart));
1148 break;
1149 }
1150 EmitExpression(node, CompilationFlags.EmitNoExpressionStart | CompilationFlags.EmitAsNoTail);
1152 break;
1153 case ExpressionType.Constant:
1154 case ExpressionType.Parameter:
1155 case ExpressionType.Default:
1156 break;
1157 }
1159 }
static CompilationFlags UpdateEmitAsTypeFlag(CompilationFlags flags, CompilationFlags newValue)
void EmitAssign(AssignBinaryExpression node, CompilationFlags emitAs)
void EmitThrow(UnaryExpression expr, CompilationFlags flags)
void EmitGotoExpression(Expression expr, CompilationFlags flags)
static CompilationFlags UpdateEmitExpressionStartFlag(CompilationFlags flags, CompilationFlags newValue)
virtual void Emit(OpCode opcode)
static readonly OpCode Pop
Definition OpCodes.cs:79

References System.Linq.Expressions.Compiler.LambdaCompiler._ilg, System.Reflection.Emit.ILGenerator.Emit(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitAssign(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionEnd(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionStart, System.Linq.Expressions.Compiler.LambdaCompiler.EmitGotoExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitThrow(), System.Reflection.Emit.OpCodes.Pop, System.Linq.Expressions.Compiler.LambdaCompiler.UpdateEmitAsTypeFlag(), and System.Linq.Expressions.Compiler.LambdaCompiler.UpdateEmitExpressionStartFlag().