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

◆ Emit()

void System.Linq.Expressions.Compiler.LambdaCompiler.Emit ( BlockExpression node,
CompilationFlags flags )
inlineprivate

Definition at line 2877 of file LambdaCompiler.cs.

2878 {
2879 int expressionCount = node.ExpressionCount;
2880 if (expressionCount != 0)
2881 {
2883 CompilationFlags compilationFlags = flags & CompilationFlags.EmitAsTypeMask;
2884 CompilationFlags compilationFlags2 = flags & CompilationFlags.EmitAsTailCallMask;
2885 for (int i = 0; i < expressionCount - 1; i++)
2886 {
2887 Expression expression = node.GetExpression(i);
2888 Expression expression2 = node.GetExpression(i + 1);
2890 flags = UpdateEmitAsTailCallFlag(flags, newValue);
2892 }
2893 if (compilationFlags == CompilationFlags.EmitAsVoidType || node.Type == typeof(void))
2894 {
2896 }
2897 else
2898 {
2900 }
2901 ExitScope(node);
2902 }
2903 }
static CompilationFlags UpdateEmitAsTailCallFlag(CompilationFlags flags, CompilationFlags newValue)
void EmitExpressionAsType(Expression node, Type type, CompilationFlags flags)

References System.Linq.Expressions.Compiler.LabelInfo.CanReturn, System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionAsType(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionAsVoid(), System.Linq.Expressions.Compiler.LambdaCompiler.EnterScope(), System.Linq.Expressions.Compiler.LambdaCompiler.ExitScope(), System.Linq.Expressions.Compiler.LambdaCompiler.ReferenceLabel(), System.Linq.Expressions.Compiler.LambdaCompiler.Significant(), and System.Linq.Expressions.Compiler.LambdaCompiler.UpdateEmitAsTailCallFlag().