Преглед изворни кода

Fix some async iterator implementations.

Bart De Smet пре 6 година
родитељ
комит
ea0c7176ba

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Buffer.cs

@@ -19,7 +19,7 @@ namespace System.Linq
                 throw Error.ArgumentOutOfRange(nameof(count));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<IList<TSource>> Core(CancellationToken cancellationToken)
             {
@@ -57,7 +57,7 @@ namespace System.Linq
                 throw Error.ArgumentOutOfRange(nameof(skip));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<IList<TSource>> Core(CancellationToken cancellationToken)
             {
@@ -196,6 +196,6 @@ namespace System.Linq
                 return false;
             }
         }
-    }
 #endif
+    }
 }

+ 5 - 5
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Catch.cs

@@ -26,7 +26,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(handler));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -84,7 +84,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(handler));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -143,7 +143,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(handler));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -222,7 +222,7 @@ namespace System.Linq
         private static IAsyncEnumerable<TSource> CatchCore<TSource>(IEnumerable<IAsyncEnumerable<TSource>> sources)
         {
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -641,6 +641,6 @@ namespace System.Linq
                 return false;
             }
         }
-    }
 #endif
+    }
 }

+ 4 - 4
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Concat.cs

@@ -17,7 +17,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(sources));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -40,7 +40,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(sources));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -63,7 +63,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(sources));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -263,6 +263,6 @@ namespace System.Linq
                 return false;
             }
         }
-    }
 #endif
+    }
 }

+ 4 - 4
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Defer.cs

@@ -17,7 +17,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(factory));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -37,7 +37,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(factory));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -58,7 +58,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(factory));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -245,6 +245,6 @@ namespace System.Linq
             }
         }
 #endif
-    }
 #endif
+    }
 }

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Finally.cs

@@ -19,7 +19,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(finallyAction));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -48,7 +48,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(finallyAction));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
@@ -187,6 +187,6 @@ namespace System.Linq
                 return false;
             }
         }
-    }
 #endif
+    }
 }

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Generate.cs

@@ -21,7 +21,7 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(resultSelector));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
 #pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
             async IAsyncEnumerator<TResult> Core(CancellationToken cancellationToken)
@@ -109,6 +109,6 @@ namespace System.Linq
                 return false;
             }
         }
-    }
 #endif
+    }
 }

+ 4 - 2
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/IgnoreElements.cs

@@ -17,13 +17,15 @@ namespace System.Linq
                 throw Error.ArgumentNull(nameof(source));
 
 #if USE_ASYNC_ITERATOR
-            return Create(Core);
+            return AsyncEnumerable.Create(Core);
 
             async IAsyncEnumerator<TSource> Core(CancellationToken cancellationToken)
             {
                 await foreach (var _ in source.WithCancellation(cancellationToken).ConfigureAwait(false))
                 {
                 }
+
+                yield break;
             }
 #else
             return new IgnoreElementsAsyncIterator<TSource>(source);
@@ -80,6 +82,6 @@ namespace System.Linq
                 return false;
             }
         }
-    }
 #endif
+    }
 }