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

◆ AddressOf() [2/6]

void System.Linq.Expressions.Compiler.LambdaCompiler.AddressOf ( IndexExpression node,
Type type )
inlineprivate

Definition at line 223 of file LambdaCompiler.cs.

224 {
225 if (!TypeUtils.AreEquivalent(type, node.Type) || node.Indexer != null)
226 {
228 }
229 else if (node.ArgumentCount == 1)
230 {
231 EmitExpression(node.Object);
232 EmitExpression(node.GetArgument(0));
234 }
235 else
236 {
239 }
240 }
static bool AreEquivalent(Type t1, Type t2)
Definition TypeUtils.cs:664
static MethodInfo GetArrayAddressMethod(Type arrayType)
Definition TypeUtils.cs:781
void EmitMethodCall(Expression obj, MethodInfo method, IArgumentProvider methodCallExpr)
void EmitExpressionAddress(Expression node, Type type)
virtual void Emit(OpCode opcode)
static readonly OpCode Ldelema
Definition OpCodes.cs:285

References System.Linq.Expressions.Compiler.LambdaCompiler._ilg, System.Dynamic.Utils.TypeUtils.AreEquivalent(), System.Reflection.Emit.ILGenerator.Emit(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionAddress(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitMethodCall(), System.Dynamic.Utils.TypeUtils.GetArrayAddressMethod(), System.Reflection.Emit.OpCodes.Ldelema, and System.type.