Browse Source

Change signature of Clone.

Bart De Smet 7 years ago
parent
commit
3a3c59ba42
47 changed files with 104 additions and 103 deletions
  1. 2 2
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Amb.cs
  2. 1 1
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Buffer.cs
  3. 3 3
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Catch.cs
  4. 2 2
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Concat.cs
  5. 2 2
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Distinct.cs
  6. 3 3
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/DistinctUntilChanged.cs
  7. 2 2
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Do.cs
  8. 2 2
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Expand.cs
  9. 2 2
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Finally.cs
  10. 1 1
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Generate.cs
  11. 1 1
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/IgnoreElements.cs
  12. 1 1
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Merge.cs
  13. 1 1
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/OnErrorResumeNext.cs
  14. 2 2
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Repeat.cs
  15. 4 4
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Scan.cs
  16. 1 1
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Timeout.cs
  17. 2 2
      Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Using.cs
  18. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerablePartition.cs
  19. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerator.cs
  20. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncIterator.Opt.cs
  21. 3 3
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncIterator.cs
  22. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/AsyncListPartition.cs
  23. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/AppendPrepend.cs
  24. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Cast.cs
  25. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Concat.cs
  26. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/DefaultIfEmpty.cs
  27. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Distinct.cs
  28. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Except.cs
  29. 8 6
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/GroupBy.cs
  30. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Intersect.cs
  31. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Join.cs
  32. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/OfType.cs
  33. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/OrderedAsyncEnumerable.cs
  34. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Range.cs
  35. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Repeat.cs
  36. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Reverse.cs
  37. 6 6
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Select.cs
  38. 8 8
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SelectMany.cs
  39. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Skip.cs
  40. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SkipLast.cs
  41. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SkipWhile.cs
  42. 1 1
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/TakeLast.cs
  43. 4 4
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/TakeWhile.cs
  44. 3 3
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/ToAsyncEnumerable.cs
  45. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Union.cs
  46. 7 8
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Where.cs
  47. 2 2
      Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Zip.cs

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

@@ -53,7 +53,7 @@ namespace System.Linq
                 _second = second;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new AmbAsyncIterator<TSource>(_first, _second);
             }
@@ -148,7 +148,7 @@ namespace System.Linq
                 _sources = sources;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new AmbAsyncIteratorN<TSource>(_sources);
             }

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

@@ -53,7 +53,7 @@ namespace System.Linq
                 _skip = skip;
             }
 
-            public override AsyncIterator<IList<TSource>> Clone()
+            public override AsyncIteratorBase<IList<TSource>> Clone()
             {
                 return new BufferAsyncIterator<TSource>(_source, _count, _skip);
             }

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

@@ -82,7 +82,7 @@ namespace System.Linq
                 _handler = handler;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new CatchAsyncIterator<TSource, TException>(_source, _handler);
             }
@@ -175,7 +175,7 @@ namespace System.Linq
                 _handler = handler;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new CatchAsyncIteratorWithTask<TSource, TException>(_source, _handler);
             }
@@ -267,7 +267,7 @@ namespace System.Linq
                 _sources = sources;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new CatchAsyncIterator<TSource>(_sources);
             }

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

@@ -51,7 +51,7 @@ namespace System.Linq
                 _source = source;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new ConcatEnumerableAsyncIterator<TSource>(_source);
             }
@@ -140,7 +140,7 @@ namespace System.Linq
                 _source = source;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new ConcatAsyncEnumerableAsyncIterator<TSource>(_source);
             }

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

@@ -125,7 +125,7 @@ namespace System.Linq
                 return count;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new DistinctAsyncIterator<TSource, TKey>(_source, _keySelector, _comparer);
             }
@@ -270,7 +270,7 @@ namespace System.Linq
                 return count;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new DistinctAsyncIteratorWithTask<TSource, TKey>(_source, _keySelector, _comparer);
             }

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

@@ -101,7 +101,7 @@ namespace System.Linq
                 _comparer = comparer ?? EqualityComparer<TSource>.Default;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new DistinctUntilChangedAsyncIterator<TSource>(_source, _comparer);
             }
@@ -172,7 +172,7 @@ namespace System.Linq
                 _comparer = comparer ?? EqualityComparer<TKey>.Default;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new DistinctUntilChangedAsyncIterator<TSource, TKey>(_source, _keySelector, _comparer);
             }
@@ -243,7 +243,7 @@ namespace System.Linq
                 _comparer = comparer ?? EqualityComparer<TKey>.Default;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new DistinctUntilChangedAsyncIteratorWithTask<TSource, TKey>(_source, _keySelector, _comparer);
             }

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

@@ -147,7 +147,7 @@ namespace System.Linq
                 _onCompleted = onCompleted;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new DoAsyncIterator<TSource>(_source, _onNext, _onError, _onCompleted);
             }
@@ -223,7 +223,7 @@ namespace System.Linq
                 _onCompleted = onCompleted;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new DoAsyncIteratorWithTask<TSource>(_source, _onNext, _onError, _onCompleted);
             }

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

@@ -49,7 +49,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new ExpandAsyncIterator<TSource>(_source, _selector);
             }
@@ -139,7 +139,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new ExpandAsyncIteratorWithTask<TSource>(_source, _selector);
             }

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

@@ -47,7 +47,7 @@ namespace System.Linq
                 _finallyAction = finallyAction;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new FinallyAsyncIterator<TSource>(_source, _finallyAction);
             }
@@ -105,7 +105,7 @@ namespace System.Linq
                 _finallyAction = finallyAction;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new FinallyAsyncIteratorWithTask<TSource>(_source, _finallyAction);
             }

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

@@ -46,7 +46,7 @@ namespace System.Linq
                 _resultSelector = resultSelector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new GenerateAsyncIterator<TState, TResult>(_initialState, _condition, _iterate, _resultSelector);
             }

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

@@ -31,7 +31,7 @@ namespace System.Linq
                 _source = source;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new IgnoreElementsAsyncIterator<TSource>(_source);
             }

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Merge.cs

@@ -50,7 +50,7 @@ namespace System.Linq
                 _sources = sources;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new MergeAsyncIterator<TSource>(_sources);
             }

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/OnErrorResumeNext.cs

@@ -56,7 +56,7 @@ namespace System.Linq
                 _sources = sources;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new OnErrorResumeNextAsyncIterator<TSource>(_sources);
             }

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

@@ -43,7 +43,7 @@ namespace System.Linq
                 _element = element;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new RepeatElementAsyncIterator<TResult>(_element);
             }
@@ -76,7 +76,7 @@ namespace System.Linq
                 _currentCount = count;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new RepeatSequenceAsyncIterator<TSource>(_source, _count);
             }

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

@@ -70,7 +70,7 @@ namespace System.Linq
                 _accumulator = accumulator;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new ScanAsyncEnumerable<TSource>(_source, _accumulator);
             }
@@ -144,7 +144,7 @@ namespace System.Linq
                 _accumulator = accumulator;
             }
 
-            public override AsyncIterator<TAccumulate> Clone()
+            public override AsyncIteratorBase<TAccumulate> Clone()
             {
                 return new ScanAsyncEnumerable<TSource, TAccumulate>(_source, _seed, _accumulator);
             }
@@ -208,7 +208,7 @@ namespace System.Linq
                 _accumulator = accumulator;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new ScanAsyncEnumerableWithTask<TSource>(_source, _accumulator);
             }
@@ -282,7 +282,7 @@ namespace System.Linq
                 _accumulator = accumulator;
             }
 
-            public override AsyncIterator<TAccumulate> Clone()
+            public override AsyncIteratorBase<TAccumulate> Clone()
             {
                 return new ScanAsyncEnumerableWithTask<TSource, TAccumulate>(_source, _seed, _accumulator);
             }

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/System/Linq/Operators/Timeout.cs

@@ -40,7 +40,7 @@ namespace System.Linq
                 _timeout = timeout;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new TimeoutAsyncIterator<TSource>(_source, _timeout);
             }

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

@@ -48,7 +48,7 @@ namespace System.Linq
                 _enumerableFactory = enumerableFactory;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new UsingAsyncIterator<TSource, TResource>(_resourceFactory, _enumerableFactory);
             }
@@ -117,7 +117,7 @@ namespace System.Linq
                 _enumerableFactory = enumerableFactory;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new UsingAsyncIteratorWithTask<TSource, TResource>(_resourceFactory, _enumerableFactory);
             }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerablePartition.cs

@@ -46,7 +46,7 @@ namespace System.Linq
 
         private int Limit => (_maxIndexInclusive + 1) - _minIndexInclusive; // This is that upper bound.
 
-        public override AsyncIterator<TSource> Clone()
+        public override AsyncIteratorBase<TSource> Clone()
         {
             return new AsyncEnumerablePartition<TSource>(_source, _minIndexInclusive, _maxIndexInclusive);
         }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/AsyncEnumerator.cs

@@ -108,7 +108,7 @@ namespace System.Collections.Generic
                 GetAsyncEnumerator(default);
             }
 
-            public override AsyncIterator<T> Clone()
+            public override AsyncIteratorBase<T> Clone()
             {
                 throw new NotSupportedException("AnonymousAsyncIterator cannot be cloned. It is only intended for use as an iterator.");
             }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/AsyncIterator.Opt.cs

@@ -7,7 +7,7 @@ using System.Threading.Tasks;
 
 namespace System.Linq
 {
-    internal partial class AsyncIterator<TSource>
+    internal partial class AsyncIteratorBase<TSource>
     {
         public virtual IAsyncEnumerable<TResult> Select<TResult>(Func<TSource, TResult> selector)
         {

+ 3 - 3
Ix.NET/Source/System.Linq.Async/System/Linq/AsyncIterator.cs

@@ -8,7 +8,7 @@ using System.Threading.Tasks;
 
 namespace System.Linq
 {
-    internal abstract class AsyncIteratorBase<TSource> : IAsyncEnumerable<TSource>, IAsyncEnumerator<TSource>
+    internal abstract partial class AsyncIteratorBase<TSource> : IAsyncEnumerable<TSource>, IAsyncEnumerator<TSource>
     {
         private readonly int _threadId;
 
@@ -66,12 +66,12 @@ namespace System.Linq
             }
         }
 
-        public abstract AsyncIterator<TSource> Clone();
+        public abstract AsyncIteratorBase<TSource> Clone();
 
         protected abstract ValueTask<bool> MoveNextCore();
     }
 
-    internal abstract partial class AsyncIterator<TSource> : AsyncIteratorBase<TSource>
+    internal abstract class AsyncIterator<TSource> : AsyncIteratorBase<TSource>
     {
         protected TSource _current;
 

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/AsyncListPartition.cs

@@ -33,7 +33,7 @@ namespace System.Linq
             _index = 0;
         }
 
-        public override AsyncIterator<TSource> Clone()
+        public override AsyncIteratorBase<TSource> Clone()
         {
             return new AsyncListPartition<TSource>(_source, _minIndexInclusive, _maxIndexInclusive);
         }

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

@@ -105,7 +105,7 @@ namespace System.Linq
                 _appending = appending;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new AppendPrepend1AsyncIterator<TSource>(_source, _item, _appending);
             }
@@ -297,7 +297,7 @@ namespace System.Linq
                 _appendCount = appendCount;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new AppendPrependNAsyncIterator<TSource>(_source, _prepended, _appended, _prependCount, _appendCount);
             }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Cast.cs

@@ -36,7 +36,7 @@ namespace System.Linq
                 _source = source;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new CastAsyncIterator<TResult>(_source);
             }

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

@@ -37,7 +37,7 @@ namespace System.Linq
                 _second = second;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new Concat2AsyncIterator<TSource>(_first, _second);
             }
@@ -205,7 +205,7 @@ namespace System.Linq
                 _nextIndex = nextIndex;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new ConcatNAsyncIterator<TSource>(_previousConcat, _next, _nextIndex);
             }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/DefaultIfEmpty.cs

@@ -43,7 +43,7 @@ namespace System.Linq
                 _defaultValue = defaultValue;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new DefaultIfEmptyAsyncIterator<TSource>(_source, _defaultValue);
             }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Distinct.cs

@@ -71,7 +71,7 @@ namespace System.Linq
                 }
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new DistinctAsyncIterator<TSource>(_source, _comparer);
             }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Except.cs

@@ -50,7 +50,7 @@ namespace System.Linq
                 _comparer = comparer;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new ExceptAsyncIterator<TSource>(_first, _second, _comparer);
             }

+ 8 - 6
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/GroupBy.cs

@@ -225,7 +225,7 @@ namespace System.Linq
                 _comparer = comparer;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new GroupedResultAsyncEnumerable<TSource, TKey, TResult>(_source, _keySelector, _resultSelector, _comparer);
             }
@@ -318,7 +318,7 @@ namespace System.Linq
                 _comparer = comparer;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new GroupedResultAsyncEnumerableWithTask<TSource, TKey, TResult>(_source, _keySelector, _resultSelector, _comparer);
             }
@@ -411,7 +411,7 @@ namespace System.Linq
                 _comparer = comparer;
             }
 
-            public override AsyncIterator<IAsyncGrouping<TKey, TElement>> Clone()
+            public override AsyncIteratorBase<IAsyncGrouping<TKey, TElement>> Clone()
             {
                 return new GroupedAsyncEnumerable<TSource, TKey, TElement>(_source, _keySelector, _elementSelector, _comparer);
             }
@@ -504,7 +504,7 @@ namespace System.Linq
                 _comparer = comparer;
             }
 
-            public override AsyncIterator<IAsyncGrouping<TKey, TElement>> Clone()
+            public override AsyncIteratorBase<IAsyncGrouping<TKey, TElement>> Clone()
             {
                 return new GroupedAsyncEnumerableWithTask<TSource, TKey, TElement>(_source, _keySelector, _elementSelector, _comparer);
             }
@@ -594,10 +594,11 @@ namespace System.Linq
                 _comparer = comparer;
             }
 
-            public override AsyncIterator<IAsyncGrouping<TKey, TSource>> Clone()
+            public override AsyncIteratorBase<IAsyncGrouping<TKey, TSource>> Clone()
             {
                 return new GroupedAsyncEnumerable<TSource, TKey>(_source, _keySelector, _comparer);
             }
+
             public override async ValueTask DisposeAsync()
             {
                 if (_enumerator != null)
@@ -683,10 +684,11 @@ namespace System.Linq
                 _comparer = comparer;
             }
 
-            public override AsyncIterator<IAsyncGrouping<TKey, TSource>> Clone()
+            public override AsyncIteratorBase<IAsyncGrouping<TKey, TSource>> Clone()
             {
                 return new GroupedAsyncEnumerableWithTask<TSource, TKey>(_source, _keySelector, _comparer);
             }
+
             public override async ValueTask DisposeAsync()
             {
                 if (_enumerator != null)

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Intersect.cs

@@ -50,7 +50,7 @@ namespace System.Linq
                 _comparer = comparer;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new IntersectAsyncIterator<TSource>(_first, _second, _comparer);
             }

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

@@ -102,7 +102,7 @@ namespace System.Linq
                 _comparer = comparer;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new JoinAsyncIterator<TOuter, TInner, TKey, TResult>(_outer, _inner, _outerKeySelector, _innerKeySelector, _resultSelector, _comparer);
             }
@@ -229,7 +229,7 @@ namespace System.Linq
                 _comparer = comparer;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new JoinAsyncIteratorWithTask<TOuter, TInner, TKey, TResult>(_outer, _inner, _outerKeySelector, _innerKeySelector, _resultSelector, _comparer);
             }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/OfType.cs

@@ -31,7 +31,7 @@ namespace System.Linq
                 _source = source;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new OfTypeAsyncIterator<TResult>(_source);
             }

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

@@ -88,7 +88,7 @@ namespace System.Linq
             _parent = parent;
         }
 
-        public override AsyncIterator<TElement> Clone()
+        public override AsyncIteratorBase<TElement> Clone()
         {
             return new OrderedAsyncEnumerable<TElement, TKey>(_source, _keySelector, _comparer, _descending, _parent);
         }
@@ -125,7 +125,7 @@ namespace System.Linq
             _parent = parent;
         }
 
-        public override AsyncIterator<TElement> Clone()
+        public override AsyncIteratorBase<TElement> Clone()
         {
             return new OrderedAsyncEnumerableWithTask<TElement, TKey>(_source, _keySelector, _comparer, _descending, _parent);
         }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Range.cs

@@ -39,7 +39,7 @@ namespace System.Linq
                 _end = start + count;
             }
 
-            public override AsyncIterator<int> Clone() => new RangeAsyncIterator(_start, _end - _start);
+            public override AsyncIteratorBase<int> Clone() => new RangeAsyncIterator(_start, _end - _start);
 
             public Task<int> GetCountAsync(bool onlyIfCheap, CancellationToken cancellationToken) => Task.FromResult(_end - _start);
 

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Repeat.cs

@@ -30,7 +30,7 @@ namespace System.Linq
                 _count = count;
             }
 
-            public override AsyncIterator<TResult> Clone() => new RepeatAsyncIterator<TResult>(_element, _count);
+            public override AsyncIteratorBase<TResult> Clone() => new RepeatAsyncIterator<TResult>(_element, _count);
 
             public Task<int> GetCountAsync(bool onlyIfCheap, CancellationToken cancellationToken) => Task.FromResult(_count);
 

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Reverse.cs

@@ -76,7 +76,7 @@ namespace System.Linq
                 return _source.Count(cancellationToken);
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new ReverseAsyncIterator<TSource>(_source);
             }

+ 6 - 6
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Select.cs

@@ -93,7 +93,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectEnumerableAsyncIterator<TSource, TResult>(_source, _selector);
             }
@@ -154,7 +154,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectEnumerableWithIndexAsyncIterator<TSource, TResult>(_source, _selector);
             }
@@ -217,7 +217,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectIListIterator<TSource, TResult>(_source, _selector);
             }
@@ -328,7 +328,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectEnumerableAsyncIteratorWithTask<TSource, TResult>(_source, _selector);
             }
@@ -389,7 +389,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectEnumerableWithIndexAsyncIteratorWithTask<TSource, TResult>(_source, _selector);
             }
@@ -457,7 +457,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectIListIteratorWithTask<TSource, TResult>(_source, _selector);
             }

+ 8 - 8
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/SelectMany.cs

@@ -120,7 +120,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectManyAsyncIterator<TSource, TResult>(_source, _selector);
             }
@@ -211,7 +211,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectManyAsyncIteratorWithTask<TSource, TResult>(_source, _selector);
             }
@@ -306,7 +306,7 @@ namespace System.Linq
                 _resultSelector = resultSelector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectManyAsyncIterator<TSource, TCollection, TResult>(_source, _collectionSelector, _resultSelector);
             }
@@ -404,7 +404,7 @@ namespace System.Linq
                 _resultSelector = resultSelector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectManyAsyncIteratorWithTask<TSource, TCollection, TResult>(_source, _collectionSelector, _resultSelector);
             }
@@ -503,7 +503,7 @@ namespace System.Linq
                 _resultSelector = resultSelector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectManyWithIndexAsyncIterator<TSource, TCollection, TResult>(_source, _collectionSelector, _resultSelector);
             }
@@ -609,7 +609,7 @@ namespace System.Linq
                 _resultSelector = resultSelector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectManyWithIndexAsyncIteratorWithTask<TSource, TCollection, TResult>(_source, _collectionSelector, _resultSelector);
             }
@@ -711,7 +711,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectManyWithIndexAsyncIterator<TSource, TResult>(_source, _selector);
             }
@@ -809,7 +809,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new SelectManyWithIndexAsyncIteratorWithTask<TSource, TResult>(_source, _selector);
             }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Skip.cs

@@ -17,7 +17,7 @@ namespace System.Linq
             {
                 // Return source if not actually skipping, but only if it's a type from here, to avoid
                 // issues if collections are used as keys or otherwise must not be aliased.
-                if (source is AsyncIterator<TSource> || source is IAsyncPartition<TSource>)
+                if (source is AsyncIteratorBase<TSource> || source is IAsyncPartition<TSource>)
                 {
                     return source;
                 }

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

@@ -20,7 +20,7 @@ namespace System.Linq
             {
                 // Return source if not actually skipping, but only if it's a type from here, to avoid
                 // issues if collections are used as keys or otherwise must not be aliased.
-                if (source is AsyncIterator<TSource>)
+                if (source is AsyncIteratorBase<TSource>)
                 {
                     return source;
                 }
@@ -47,7 +47,7 @@ namespace System.Linq
                 _count = count;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new SkipLastAsyncIterator<TSource>(_source, _count);
             }

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

@@ -68,7 +68,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new SkipWhileAsyncIterator<TSource>(_source, _predicate);
             }
@@ -145,7 +145,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new SkipWhileWithIndexAsyncIterator<TSource>(_source, _predicate);
             }
@@ -228,7 +228,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new SkipWhileAsyncIteratorWithTask<TSource>(_source, _predicate);
             }
@@ -305,7 +305,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new SkipWhileWithIndexAsyncIteratorWithTask<TSource>(_source, _predicate);
             }

+ 1 - 1
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/TakeLast.cs

@@ -41,7 +41,7 @@ namespace System.Linq
                 _count = count;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new TakeLastAsyncIterator<TSource>(_source, _count);
             }

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

@@ -67,7 +67,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new TakeWhileAsyncIterator<TSource>(_source, _predicate);
             }
@@ -132,7 +132,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new TakeWhileWithIndexAsyncIterator<TSource>(_source, _predicate);
             }
@@ -202,7 +202,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new TakeWhileAsyncIteratorWithTask<TSource>(_source, _predicate);
             }
@@ -267,7 +267,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new TakeWhileWithIndexAsyncIteratorWithTask<TSource>(_source, _predicate);
             }

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

@@ -136,7 +136,7 @@ namespace System.Linq
                 _source = source;
             }
 
-            public override AsyncIterator<T> Clone()
+            public override AsyncIteratorBase<T> Clone()
             {
                 return new AsyncEnumerableAdapter<T>(_source);
             }
@@ -205,7 +205,7 @@ namespace System.Linq
                 _source = source;
             }
 
-            public override AsyncIterator<T> Clone()
+            public override AsyncIteratorBase<T> Clone()
             {
                 return new AsyncIListEnumerableAdapter<T>(_source);
             }
@@ -309,7 +309,7 @@ namespace System.Linq
                 _source = source;
             }
 
-            public override AsyncIterator<T> Clone()
+            public override AsyncIteratorBase<T> Clone()
             {
                 return new AsyncICollectionEnumerableAdapter<T>(_source);
             }

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

@@ -213,7 +213,7 @@ namespace System.Linq
                 _second = second;
             }
 
-            public override AsyncIterator<TSource> Clone() => new UnionAsyncIterator2<TSource>(_first, _second, _comparer);
+            public override AsyncIteratorBase<TSource> Clone() => new UnionAsyncIterator2<TSource>(_first, _second, _comparer);
 
             internal override IAsyncEnumerable<TSource> GetEnumerable(int index)
             {
@@ -255,7 +255,7 @@ namespace System.Linq
                 _headIndex = headIndex;
             }
 
-            public override AsyncIterator<TSource> Clone() => new UnionAsyncIteratorN<TSource>(_sources, _headIndex, _comparer);
+            public override AsyncIteratorBase<TSource> Clone() => new UnionAsyncIteratorN<TSource>(_sources, _headIndex, _comparer);
 
             internal override IAsyncEnumerable<TSource> GetEnumerable(int index) => index > _headIndex ? null : _sources.GetNode(_headIndex - index).Item;
 

+ 7 - 8
Ix.NET/Source/System.Linq.Async/System/Linq/Operators/Where.cs

@@ -4,7 +4,6 @@
 
 using System.Collections.Generic;
 using System.Diagnostics;
-using System.Threading;
 using System.Threading.Tasks;
 
 namespace System.Linq
@@ -18,7 +17,7 @@ namespace System.Linq
             if (predicate == null)
                 throw Error.ArgumentNull(nameof(predicate));
 
-            if (source is AsyncIterator<TSource> iterator)
+            if (source is AsyncIteratorBase<TSource> iterator)
             {
                 return iterator.Where(predicate);
             }
@@ -44,7 +43,7 @@ namespace System.Linq
             if (predicate == null)
                 throw Error.ArgumentNull(nameof(predicate));
 
-            if (source is AsyncIterator<TSource> iterator)
+            if (source is AsyncIteratorBase<TSource> iterator)
             {
                 return iterator.Where(predicate);
             }
@@ -88,7 +87,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new WhereEnumerableAsyncIterator<TSource>(_source, _predicate);
             }
@@ -159,7 +158,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new WhereEnumerableWithIndexAsyncIterator<TSource>(_source, _predicate);
             }
@@ -225,7 +224,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new WhereEnumerableAsyncIteratorWithTask<TSource>(_source, _predicate);
             }
@@ -291,7 +290,7 @@ namespace System.Linq
                 _predicate = predicate;
             }
 
-            public override AsyncIterator<TSource> Clone()
+            public override AsyncIteratorBase<TSource> Clone()
             {
                 return new WhereEnumerableWithIndexAsyncIteratorWithTask<TSource>(_source, _predicate);
             }
@@ -361,7 +360,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new WhereSelectEnumerableAsyncIterator<TSource, TResult>(_source, _predicate, _selector);
             }

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

@@ -55,7 +55,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new ZipAsyncIterator<TFirst, TSecond, TResult>(_first, _second, _selector);
             }
@@ -127,7 +127,7 @@ namespace System.Linq
                 _selector = selector;
             }
 
-            public override AsyncIterator<TResult> Clone()
+            public override AsyncIteratorBase<TResult> Clone()
             {
                 return new ZipAsyncIteratorWithTask<TFirst, TSecond, TResult>(_first, _second, _selector);
             }