protected override void Visit(InternalInvocation node) { VisitNodes(node.Arguments); Visit((InternalExpression)node); }
protected override void Visit(InternalInvocation node) { Visit((InternalExpression)node); }
void LoadArguments(InternalInvocation node, System.Reflection.MethodBase method, int resultIndex) { var parameters = method.GetParameters(); var hasThisArg = !method.IsStatic && !method.IsConstructor; Debug.Assert(node.Arguments.Count == parameters.Length + (hasThisArg ? 1 : 0), "Arguments mismatch between node {0} and method {1} of {2}", node, method, method.DeclaringType); int i = 0; if (hasThisArg) { _ilGen.LoadValue(resultIndex++, Types.ValueTypeOf(method.DeclaringType)); ++i; } for (; i < node.Arguments.Count; ++i) _ilGen.LoadValue(resultIndex++, Types.ValueTypeOf(parameters[i].ParameterType)); }
protected virtual void Visit(InternalInvocation node) { }