/// <summary> /// Get generator for given name and arguments. /// </summary> /// <param name="method">Name of method generator.</param> /// <param name="arguments">Arguments of call.</param> /// <returns>Instruction generator for given name.</returns> private GeneratorBase getGenerator(ref MethodID method, InstanceInfo[] arguments) { if (method.NeedsDynamicResolving) { method = _loader.DynamicResolve(method, arguments); } if (method == null) { return(null); } GeneratorBase resolved; if (!_methods.TryGetValue(method, out resolved)) { //register resolved method resolved = _loader.StaticResolve(method); _methods[method] = resolved; } return(resolved); }
/// <summary> /// Resolve method with dynamic argument info /// </summary> /// <param name="method">Resolved method</param> /// <param name="dynamicArgumentInfo">Dynamic argument info, collected from argument instances</param> /// <returns>Resolved method which will be asked for generator by StaticResolve</returns> public override MethodID DynamicResolve(MethodID method, InstanceInfo[] dynamicArgumentInfo) { return(_wrapped.DynamicResolve(method, dynamicArgumentInfo)); }