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

◆ EmitVariableAssignment()

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitVariableAssignment ( AssignBinaryExpression node,
CompilationFlags flags )
inlineprivate

Definition at line 1582 of file LambdaCompiler.cs.

1583 {
1584 ParameterExpression parameterExpression = (ParameterExpression)node.Left;
1585 CompilationFlags compilationFlags = flags & CompilationFlags.EmitAsTypeMask;
1586 if (node.IsByRef)
1587 {
1588 EmitAddress(node.Right, node.Right.Type);
1589 }
1590 else
1591 {
1592 EmitExpression(node.Right);
1593 }
1594 if (compilationFlags != CompilationFlags.EmitAsVoidType)
1595 {
1597 }
1598 if (parameterExpression.IsByRef)
1599 {
1605 _ilg.EmitStoreValueIndirect(parameterExpression.Type);
1606 }
1607 else
1608 {
1610 }
1611 }
void EmitSet(ParameterExpression variable)
void EmitGet(ParameterExpression variable)
void EmitAddress(Expression node, Type type)
virtual void Emit(OpCode opcode)
static readonly OpCode Stloc
Definition OpCodes.cs:429
static readonly OpCode Ldloc
Definition OpCodes.cs:425
static readonly OpCode Dup
Definition OpCodes.cs:77

References System.Linq.Expressions.Compiler.LambdaCompiler._ilg, System.Linq.Expressions.Compiler.LambdaCompiler._scope, System.Reflection.Emit.OpCodes.Dup, System.Reflection.Emit.ILGenerator.Emit(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitAddress(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpression(), System.Linq.Expressions.Compiler.CompilerScope.EmitGet(), System.Linq.Expressions.Compiler.CompilerScope.EmitSet(), System.Linq.Expressions.Compiler.LambdaCompiler.FreeLocal(), System.Linq.Expressions.Compiler.LambdaCompiler.GetLocal(), System.Reflection.Emit.OpCodes.Ldloc, and System.Reflection.Emit.OpCodes.Stloc.

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