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

◆ EmitLabelExpression()

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitLabelExpression ( Expression expr,
CompilationFlags flags )
inlineprivate

Definition at line 836 of file LambdaCompiler.cs.

837 {
838 LabelExpression labelExpression = (LabelExpression)expr;
839 LabelInfo info = null;
840 if (_labelBlock.Kind == LabelScopeKind.Block)
841 {
843 if (info == null && _labelBlock.Parent.Kind == LabelScopeKind.Switch)
844 {
846 }
847 }
848 if (info == null)
849 {
851 }
852 if (labelExpression.DefaultValue != null)
853 {
854 if (labelExpression.Target.Type == typeof(void))
855 {
856 EmitExpressionAsVoid(labelExpression.DefaultValue, flags);
857 }
858 else
859 {
860 flags = UpdateEmitExpressionStartFlag(flags, CompilationFlags.EmitExpressionStart);
861 EmitExpression(labelExpression.DefaultValue, flags);
862 }
863 }
864 info.Mark();
865 }
bool TryGetLabelInfo(LabelTarget target, out LabelInfo info)
static CompilationFlags UpdateEmitExpressionStartFlag(CompilationFlags flags, CompilationFlags newValue)

References System.Linq.Expressions.Compiler.LambdaCompiler._labelBlock, System.Linq.Expressions.Compiler.LambdaCompiler.DefineLabel(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionAsVoid(), System.info, System.Linq.Expressions.Compiler.LabelScopeInfo.Kind, System.Linq.Expressions.Compiler.LabelScopeInfo.Parent, System.Linq.Expressions.Compiler.LabelScopeInfo.TryGetLabelInfo(), and System.Linq.Expressions.Compiler.LambdaCompiler.UpdateEmitExpressionStartFlag().

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