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

◆ EmitMethodAndAlso()

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

Definition at line 2587 of file LambdaCompiler.cs.

2588 {
2590 EmitExpression(b.Left);
2592 MethodInfo booleanOperator = TypeUtils.GetBooleanOperator(b.Method.DeclaringType, "op_False");
2595 EmitExpression(b.Right);
2596 if ((flags & CompilationFlags.EmitAsTailCallMask) == CompilationFlags.EmitAsTail)
2597 {
2599 }
2600 _ilg.Emit(OpCodes.Call, b.Method);
2602 }
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.EmitAndAlsoBinaryExpression().