/// <summary> /// Provides ability to dynamically calculate function return type. /// </summary> internal void SpecializeFunction(string name, ReturnValueProvider returnTypeCallback) { var f = GetOrCreateFunction(name); if (f != null) { foreach (var o in f.Overloads.OfType <PythonFunctionOverload>()) { o.SetReturnValueProvider(returnTypeCallback); } f.Specialize(); } }
internal void SetReturnValueProvider(ReturnValueProvider provider) => _returnValueProvider = provider;
/// <summary> /// Provides ability to dynamically calculate function return type. /// </summary> public static void SpecializeFunction(this IDocumentAnalysis analysis, string name, ReturnValueProvider returnTypeCallback, string[] dependencies = null) { var f = analysis.GetOrCreateFunction(name); if (f != null) { foreach (var o in f.Overloads.OfType <PythonFunctionOverload>()) { o.SetReturnValueProvider(returnTypeCallback); } f.Specialize(dependencies); } }
/// <summary> /// Provides ability to dynamically calculate function return type. /// </summary> internal static void SpecializeFunction(this IDocumentAnalysis analysis, string name, ReturnValueProvider returnTypeCallback, IReadOnlyList <ParameterInfo> parameters = null, string[] dependencies = null) { var f = analysis.GetOrCreateFunction(name); if (f != null) { foreach (var o in f.Overloads.OfType <PythonFunctionOverload>()) { if (parameters != null) { o.SetParameters(parameters); } o.SetReturnValueProvider(returnTypeCallback); } f.Specialize(dependencies); } }