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

◆ EmitNewExpression()

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitNewExpression ( Expression expr)
inlineprivate

Definition at line 1518 of file LambdaCompiler.cs.

1519 {
1520 NewExpression newExpression = (NewExpression)expr;
1521 if (newExpression.Constructor != null)
1522 {
1523 if (newExpression.Constructor.DeclaringType.IsAbstract)
1524 {
1525 throw Error.NonAbstractConstructorRequired();
1526 }
1528 _ilg.Emit(OpCodes.Newobj, newExpression.Constructor);
1530 }
1531 else
1532 {
1538 }
1539 }
void EmitWriteBack(List< WriteBack > writeBacks)
List< WriteBack > EmitArguments(MethodBase method, IArgumentProvider args)
virtual void Emit(OpCode opcode)
static readonly OpCode Ldloca
Definition OpCodes.cs:427
static readonly OpCode Newobj
Definition OpCodes.cs:233
static readonly OpCode Initobj
Definition OpCodes.cs:441
static readonly OpCode Ldloc
Definition OpCodes.cs:425

References System.Linq.Expressions.Compiler.LambdaCompiler._ilg, System.Reflection.Emit.ILGenerator.Emit(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitArguments(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitWriteBack(), System.Linq.Expressions.Compiler.LambdaCompiler.FreeLocal(), System.Linq.Expressions.Compiler.LambdaCompiler.GetLocal(), System.Reflection.Emit.OpCodes.Initobj, System.Reflection.Emit.OpCodes.Ldloc, System.Reflection.Emit.OpCodes.Ldloca, System.Reflection.Emit.OpCodes.Newobj, and System.Linq.Expressions.Error.NonAbstractConstructorRequired().

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