/// <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;
Beispiel #3
0
        /// <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);
            }
        }