private static TypeReference? GetTaskElementType()

in sdk/Sdk/FunctionMetadataGenerator.cs [396:414]


        private static TypeReference? GetTaskElementType(TypeReference typeReference)
        {
            if (typeReference is null || string.Equals(typeReference.FullName, Constants.TaskType, StringComparison.Ordinal))
            {
                return null;
            }

            if (typeReference.IsGenericInstance
                && typeReference is GenericInstanceType genericType
                && string.Equals(typeReference.GetElementType().FullName, Constants.TaskGenericType, StringComparison.Ordinal))
            {
                // T from Task<T>
                return genericType.GenericArguments[0];
            }
            else
            {
                return typeReference;
            }
        }