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

◆ EmitMethodOrElse()

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitMethodOrElse ( BinaryExpression b,
CompilationFlags flags )
inlineprivate

Definition at line 2681 of file LambdaCompiler.cs.

2682 {
2684 EmitExpression(b.Left);
2686 MethodInfo booleanOperator = TypeUtils.GetBooleanOperator(b.Method.DeclaringType, "op_True");
2689 EmitExpression(b.Right);
2690 if ((flags & CompilationFlags.EmitAsTailCallMask) == CompilationFlags.EmitAsTail)
2691 {
2693 }
2694 _ilg.Emit(OpCodes.Call, b.Method);
2696 }
static MethodInfo GetBooleanOperator(Type type, string name)
Definition TypeUtils.cs:640
virtual void MarkLabel(Label loc)
virtual void Emit(OpCode opcode)
static readonly OpCode Tailcall
Definition OpCodes.cs:439
static readonly OpCode Brtrue
Definition OpCodes.cs:119
static readonly OpCode Call
Definition OpCodes.cs:83
static readonly OpCode Dup
Definition OpCodes.cs:77

References System.Linq.Expressions.Compiler.LambdaCompiler._ilg, System.Reflection.Emit.OpCodes.Brtrue, System.Reflection.Emit.OpCodes.Call, System.Reflection.Emit.ILGenerator.DefineLabel(), System.Reflection.Emit.OpCodes.Dup, System.Reflection.Emit.ILGenerator.Emit(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpression(), System.Dynamic.Utils.TypeUtils.GetBooleanOperator(), System.Reflection.Emit.ILGenerator.MarkLabel(), and System.Reflection.Emit.OpCodes.Tailcall.

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