فهرست منبع

Use local functions in Sum

Bart De Smet 6 سال پیش
والد
کامیت
2ed38972f3

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 429 - 370
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Sum.Generated.cs


+ 101 - 103
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Sum.Generated.tt

@@ -40,194 +40,192 @@ foreach (var o in os)
             if (source == null)
                 throw Error.ArgumentNull(nameof(source));
 
-            return SumCore(source, cancellationToken);
-        }
-
-        public static Task<<#=o.type#>> SumAsync<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, <#=o.type#>> selector, CancellationToken cancellationToken = default)
-        {
-            if (source == null)
-                throw Error.ArgumentNull(nameof(source));
-            if (selector == null)
-                throw Error.ArgumentNull(nameof(selector));
-
-            return SumCore(source, selector, cancellationToken);
-        }
-
-        public static Task<<#=o.type#>> SumAsync<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<<#=o.type#>>> selector, CancellationToken cancellationToken = default)
-        {
-            if (source == null)
-                throw Error.ArgumentNull(nameof(source));
-            if (selector == null)
-                throw Error.ArgumentNull(nameof(selector));
+            return Core();
 
-            return SumCore(source, selector, cancellationToken);
-        }
-
-#if !NO_DEEP_CANCELLATION
-        public static Task<<#=o.type#>> SumAsync<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<<#=o.type#>>> selector, CancellationToken cancellationToken = default)
-        {
-            if (source == null)
-                throw Error.ArgumentNull(nameof(source));
-            if (selector == null)
-                throw Error.ArgumentNull(nameof(selector));
-
-            return SumCore(source, selector, cancellationToken);
-        }
-#endif
-
-        private static async Task<<#=o.type#>> SumCore(IAsyncEnumerable<<#=o.type#>> source, CancellationToken cancellationToken)
-        {
-            var sum = <#=o.zero#>;
+            async Task<<#=o.type#>> Core()
+            {
+                var sum = <#=o.zero#>;
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+                var e = source.GetAsyncEnumerator(cancellationToken);
 
-            try
-            {
-                while (await e.MoveNextAsync().ConfigureAwait(false))
+                try
                 {
+                    while (await e.MoveNextAsync().ConfigureAwait(false))
+                    {
 <#
 if (o.@checked)
 {
 #>
-                    checked
-                    {
-                        sum += e.Current<#=n#>;
-                    }
+                        checked
+                        {
+                            sum += e.Current<#=n#>;
+                        }
 <#
 }
 else
 {
 #>
-                    sum += e.Current<#=n#>;
+                        sum += e.Current<#=n#>;
 <#
 }
 #>
+                    }
+                }
+                finally
+                {
+                    await e.DisposeAsync().ConfigureAwait(false);
                 }
-            }
-            finally
-            {
-                await e.DisposeAsync().ConfigureAwait(false);
-            }
 
-            return sum;
+                return sum;
+            }
         }
 
-        private static async Task<<#=o.type#>> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, <#=o.type#>> selector, CancellationToken cancellationToken)
+        public static Task<<#=o.type#>> SumAsync<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, <#=o.type#>> selector, CancellationToken cancellationToken = default)
         {
-            var sum = <#=o.zero#>;
+            if (source == null)
+                throw Error.ArgumentNull(nameof(source));
+            if (selector == null)
+                throw Error.ArgumentNull(nameof(selector));
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            return Core();
 
-            try
+            async Task<<#=o.type#>> Core()
             {
-                while (await e.MoveNextAsync().ConfigureAwait(false))
+                var sum = <#=o.zero#>;
+
+                var e = source.GetAsyncEnumerator(cancellationToken);
+
+                try
                 {
-                    var value = selector(e.Current);
+                    while (await e.MoveNextAsync().ConfigureAwait(false))
+                    {
+                        var value = selector(e.Current);
 
 <#
 if (o.@checked)
 {
 #>
-                    checked
-                    {
-                        sum += value<#=n#>;
-                    }
+                        checked
+                        {
+                            sum += value<#=n#>;
+                        }
 <#
 }
 else
 {
 #>
-                    sum += value<#=n#>;
+                        sum += value<#=n#>;
 <#
 }
 #>
+                    }
+                }
+                finally
+                {
+                    await e.DisposeAsync().ConfigureAwait(false);
                 }
-            }
-            finally
-            {
-                await e.DisposeAsync().ConfigureAwait(false);
-            }
 
-            return sum;
+                return sum;
+            }
         }
 
-        private static async Task<<#=o.type#>> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<<#=o.type#>>> selector, CancellationToken cancellationToken)
+        public static Task<<#=o.type#>> SumAsync<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, ValueTask<<#=o.type#>>> selector, CancellationToken cancellationToken = default)
         {
-            var sum = <#=o.zero#>;
+            if (source == null)
+                throw Error.ArgumentNull(nameof(source));
+            if (selector == null)
+                throw Error.ArgumentNull(nameof(selector));
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            return Core();
 
-            try
+            async Task<<#=o.type#>> Core()
             {
-                while (await e.MoveNextAsync().ConfigureAwait(false))
+                var sum = <#=o.zero#>;
+
+                var e = source.GetAsyncEnumerator(cancellationToken);
+
+                try
                 {
-                    var value = await selector(e.Current).ConfigureAwait(false);
+                    while (await e.MoveNextAsync().ConfigureAwait(false))
+                    {
+                        var value = await selector(e.Current).ConfigureAwait(false);
 
 <#
 if (o.@checked)
 {
 #>
-                    checked
-                    {
-                        sum += value<#=n#>;
-                    }
+                        checked
+                        {
+                            sum += value<#=n#>;
+                        }
 <#
 }
 else
 {
 #>
-                    sum += value<#=n#>;
+                        sum += value<#=n#>;
 <#
 }
 #>
+                    }
+                }
+                finally
+                {
+                    await e.DisposeAsync().ConfigureAwait(false);
                 }
-            }
-            finally
-            {
-                await e.DisposeAsync().ConfigureAwait(false);
-            }
 
-            return sum;
+                return sum;
+            }
         }
 
 #if !NO_DEEP_CANCELLATION
-        private static async Task<<#=o.type#>> SumCore<TSource>(IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<<#=o.type#>>> selector, CancellationToken cancellationToken)
+        public static Task<<#=o.type#>> SumAsync<TSource>(this IAsyncEnumerable<TSource> source, Func<TSource, CancellationToken, ValueTask<<#=o.type#>>> selector, CancellationToken cancellationToken = default)
         {
-            var sum = <#=o.zero#>;
+            if (source == null)
+                throw Error.ArgumentNull(nameof(source));
+            if (selector == null)
+                throw Error.ArgumentNull(nameof(selector));
 
-            var e = source.GetAsyncEnumerator(cancellationToken);
+            return Core();
 
-            try
+            async Task<<#=o.type#>> Core()
             {
-                while (await e.MoveNextAsync().ConfigureAwait(false))
+                var sum = <#=o.zero#>;
+
+                var e = source.GetAsyncEnumerator(cancellationToken);
+
+                try
                 {
-                    var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
+                    while (await e.MoveNextAsync().ConfigureAwait(false))
+                    {
+                        var value = await selector(e.Current, cancellationToken).ConfigureAwait(false);
 
 <#
 if (o.@checked)
 {
 #>
-                    checked
-                    {
-                        sum += value<#=n#>;
-                    }
+                        checked
+                        {
+                            sum += value<#=n#>;
+                        }
 <#
 }
 else
 {
 #>
-                    sum += value<#=n#>;
+                        sum += value<#=n#>;
 <#
 }
 #>
+                    }
+                }
+                finally
+                {
+                    await e.DisposeAsync().ConfigureAwait(false);
                 }
-            }
-            finally
-            {
-                await e.DisposeAsync().ConfigureAwait(false);
-            }
 
-            return sum;
+                return sum;
+            }
         }
 #endif
 

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است