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

◆ CompileLoopExpression()

void System.Linq.Expressions.Interpreter.LightCompiler.CompileLoopExpression ( Expression expr)
inlineprivate

Definition at line 1125 of file LightCompiler.cs.

1126 {
1127 LoopExpression loopExpression = (LoopExpression)expr;
1128 PushLabelBlock(LabelScopeKind.Statement);
1129 LabelInfo labelInfo = DefineLabel(loopExpression.BreakLabel);
1130 LabelInfo labelInfo2 = DefineLabel(loopExpression.ContinueLabel);
1131 _instructions.MarkLabel(labelInfo2.GetLabel(this));
1133 _instructions.EmitBranch(labelInfo2.GetLabel(this), loopExpression.Type != typeof(void), hasValue: false);
1134 _instructions.MarkLabel(labelInfo.GetLabel(this));
1135 PopLabelBlock(LabelScopeKind.Statement);
1136 }
void EmitBranch(OffsetInstruction instruction, BranchLabel label)

References System.Linq.Expressions.Interpreter.LightCompiler._instructions, System.Linq.Expressions.Interpreter.LightCompiler.CompileAsVoid(), System.Linq.Expressions.Interpreter.LightCompiler.DefineLabel(), System.Linq.Expressions.Interpreter.InstructionList.EmitBranch(), System.Linq.Expressions.Interpreter.InstructionList.MarkLabel(), System.Linq.Expressions.Interpreter.LightCompiler.PopLabelBlock(), and System.Linq.Expressions.Interpreter.LightCompiler.PushLabelBlock().

Referenced by System.Linq.Expressions.Interpreter.LightCompiler.CompileNoLabelPush().