Browse Source

Remove more CancellationToken stuff.

Bart De Smet 8 years ago
parent
commit
5f0371628f
43 changed files with 160 additions and 347 deletions
  1. 2 2
      Ix.NET/Source/System.Interactive.Async/Aggregate.cs
  2. 3 3
      Ix.NET/Source/System.Interactive.Async/AnyAll.cs
  3. 5 5
      Ix.NET/Source/System.Interactive.Async/AppendPrepend.cs
  4. 2 2
      Ix.NET/Source/System.Interactive.Async/AsyncEnumerableHelpers.cs
  5. 1 1
      Ix.NET/Source/System.Interactive.Async/AsyncEnumerator.cs
  6. 20 20
      Ix.NET/Source/System.Interactive.Async/Average.cs
  7. 1 1
      Ix.NET/Source/System.Interactive.Async/Buffer.cs
  8. 3 3
      Ix.NET/Source/System.Interactive.Async/Catch.cs
  9. 3 3
      Ix.NET/Source/System.Interactive.Async/Concatenate.cs
  10. 2 2
      Ix.NET/Source/System.Interactive.Async/DefaultIfEmpty.cs
  11. 9 9
      Ix.NET/Source/System.Interactive.Async/Distinct.cs
  12. 1 1
      Ix.NET/Source/System.Interactive.Async/Do.cs
  13. 2 2
      Ix.NET/Source/System.Interactive.Async/ElementAt.cs
  14. 2 2
      Ix.NET/Source/System.Interactive.Async/Except.cs
  15. 1 1
      Ix.NET/Source/System.Interactive.Async/Expand.cs
  16. 1 1
      Ix.NET/Source/System.Interactive.Async/Finally.cs
  17. 2 2
      Ix.NET/Source/System.Interactive.Async/First.cs
  18. 1 1
      Ix.NET/Source/System.Interactive.Async/ForEach.cs
  19. 1 1
      Ix.NET/Source/System.Interactive.Async/IgnoreElements.cs
  20. 2 2
      Ix.NET/Source/System.Interactive.Async/Intersect.cs
  21. 2 2
      Ix.NET/Source/System.Interactive.Async/Join.cs
  22. 2 2
      Ix.NET/Source/System.Interactive.Async/Last.cs
  23. 2 2
      Ix.NET/Source/System.Interactive.Async/Lookup.cs
  24. 2 2
      Ix.NET/Source/System.Interactive.Async/Min.cs
  25. 1 1
      Ix.NET/Source/System.Interactive.Async/OnErrorResumeNext.cs
  26. 1 1
      Ix.NET/Source/System.Interactive.Async/Repeat.cs
  27. 2 2
      Ix.NET/Source/System.Interactive.Async/Scan.cs
  28. 2 2
      Ix.NET/Source/System.Interactive.Async/Select.cs
  29. 8 8
      Ix.NET/Source/System.Interactive.Async/SelectMany.cs
  30. 3 3
      Ix.NET/Source/System.Interactive.Async/SequenceEqual.cs
  31. 4 4
      Ix.NET/Source/System.Interactive.Async/Single.cs
  32. 7 7
      Ix.NET/Source/System.Interactive.Async/Skip.cs
  33. 4 4
      Ix.NET/Source/System.Interactive.Async/Take.cs
  34. 1 1
      Ix.NET/Source/System.Interactive.Async/ToAsyncEnumerable.cs
  35. 1 1
      Ix.NET/Source/System.Interactive.Async/ToObservable.cs
  36. 1 1
      Ix.NET/Source/System.Interactive.Async/Using.cs
  37. 3 3
      Ix.NET/Source/System.Interactive.Async/Where.cs
  38. 2 2
      Ix.NET/Source/System.Interactive.Async/Zip.cs
  39. 0 9
      Ix.NET/Source/Tests/AsyncTests.Aggregates.cs
  40. 0 197
      Ix.NET/Source/Tests/AsyncTests.Bugs.cs
  41. 0 18
      Ix.NET/Source/Tests/AsyncTests.Exceptions.cs
  42. 0 11
      Ix.NET/Source/Tests/AsyncTests.Single.cs
  43. 48 0
      Ix.NET/Source/Tests/AsyncTests.cs

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/Aggregate.cs

@@ -83,7 +83,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     acc = accumulator(acc, e.Current);
@@ -100,7 +100,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     acc = first ? e.Current : accumulator(acc, e.Current);

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/AnyAll.cs

@@ -67,7 +67,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                return await e.MoveNextAsync(cancellationToken).ConfigureAwait(false);
+                return await e.MoveNextAsync().ConfigureAwait(false);
             }
         }
 
@@ -75,7 +75,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     if (!predicate(e.Current))
@@ -89,7 +89,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     if (predicate(e.Current))

+ 5 - 5
Ix.NET/Source/System.Interactive.Async/AppendPrepend.cs

@@ -62,7 +62,7 @@ namespace System.Linq
 
             protected async Task<bool> LoadFromEnumerator(CancellationToken cancellationToken)
             {
-                if (await enumerator.MoveNextAsync(cancellationToken)
+                if (await enumerator.MoveNextAsync()
                                     .ConfigureAwait(false))
                 {
                     current = enumerator.Current;
@@ -203,7 +203,7 @@ namespace System.Linq
                 {
                     using (var en = source.GetAsyncEnumerator())
                     {
-                        while (await en.MoveNextAsync(cancellationToken)
+                        while (await en.MoveNextAsync()
                                        .ConfigureAwait(false))
                         {
                             array[index] = en.Current;
@@ -233,7 +233,7 @@ namespace System.Linq
 
                 using (var en = source.GetAsyncEnumerator())
                 {
-                    while (await en.MoveNextAsync(cancellationToken)
+                    while (await en.MoveNextAsync()
                                    .ConfigureAwait(false))
                     {
                         list.Add(en.Current);
@@ -437,7 +437,7 @@ namespace System.Linq
                 {
                     using (var en = source.GetAsyncEnumerator())
                     {
-                        while (await en.MoveNextAsync(cancellationToken)
+                        while (await en.MoveNextAsync()
                                        .ConfigureAwait(false))
                         {
                             array[index] = en.Current;
@@ -467,7 +467,7 @@ namespace System.Linq
 
                 using (var en = source.GetAsyncEnumerator())
                 {
-                    while (await en.MoveNextAsync(cancellationToken)
+                    while (await en.MoveNextAsync()
                                    .ConfigureAwait(false))
                     {
                         list.Add(en.Current);

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/AsyncEnumerableHelpers.cs

@@ -45,7 +45,7 @@ namespace System.Collections.Generic
             {
                 using (var en = source.GetAsyncEnumerator())
                 {
-                    if (await en.MoveNextAsync(cancellationToken)
+                    if (await en.MoveNextAsync()
                                 .ConfigureAwait(false))
                     {
                         const int DefaultCapacity = 4;
@@ -53,7 +53,7 @@ namespace System.Collections.Generic
                         arr[0] = en.Current;
                         var count = 1;
 
-                        while (await en.MoveNextAsync(cancellationToken)
+                        while (await en.MoveNextAsync()
                                        .ConfigureAwait(false))
                         {
                             if (count == arr.Length)

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

@@ -22,7 +22,7 @@ namespace System.Collections.Generic
             if (enumerator == null)
                 throw new ArgumentNullException(nameof(enumerator));
 
-            return enumerator.MoveNextAsync(CancellationToken.None);
+            return enumerator.MoveNextAsync();
         }
     }
 }

+ 20 - 20
Ix.NET/Source/System.Interactive.Async/Average.cs

@@ -385,7 +385,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync(cancellationToken)
+                if (!await e.MoveNextAsync()
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
@@ -395,7 +395,7 @@ namespace System.Linq
                 long count = 1;
                 checked
                 {
-                    while (await e.MoveNextAsync(cancellationToken)
+                    while (await e.MoveNextAsync()
                                   .ConfigureAwait(false))
                     {
                         sum += e.Current;
@@ -411,7 +411,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     var v = e.Current;
@@ -421,7 +421,7 @@ namespace System.Linq
                         long count = 1;
                         checked
                         {
-                            while (await e.MoveNextAsync(cancellationToken)
+                            while (await e.MoveNextAsync()
                                           .ConfigureAwait(false))
                             {
                                 v = e.Current;
@@ -445,7 +445,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync(cancellationToken)
+                if (!await e.MoveNextAsync()
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
@@ -455,7 +455,7 @@ namespace System.Linq
                 long count = 1;
                 checked
                 {
-                    while (await e.MoveNextAsync(cancellationToken)
+                    while (await e.MoveNextAsync()
                                   .ConfigureAwait(false))
                     {
                         sum += e.Current;
@@ -471,7 +471,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     var v = e.Current;
@@ -481,7 +481,7 @@ namespace System.Linq
                         long count = 1;
                         checked
                         {
-                            while (await e.MoveNextAsync(cancellationToken)
+                            while (await e.MoveNextAsync()
                                           .ConfigureAwait(false))
                             {
                                 v = e.Current;
@@ -505,7 +505,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync(cancellationToken)
+                if (!await e.MoveNextAsync()
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
@@ -513,7 +513,7 @@ namespace System.Linq
 
                 var sum = e.Current;
                 long count = 1;
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     // There is an opportunity to short-circuit here, in that if e.Current is
@@ -531,7 +531,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     var v = e.Current;
@@ -541,7 +541,7 @@ namespace System.Linq
                         long count = 1;
                         checked
                         {
-                            while (await e.MoveNextAsync(cancellationToken)
+                            while (await e.MoveNextAsync()
                                           .ConfigureAwait(false))
                             {
                                 v = e.Current;
@@ -565,7 +565,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync(cancellationToken)
+                if (!await e.MoveNextAsync()
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
@@ -573,7 +573,7 @@ namespace System.Linq
 
                 double sum = e.Current;
                 long count = 1;
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     sum += e.Current;
@@ -588,7 +588,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     var v = e.Current;
@@ -598,7 +598,7 @@ namespace System.Linq
                         long count = 1;
                         checked
                         {
-                            while (await e.MoveNextAsync(cancellationToken)
+                            while (await e.MoveNextAsync()
                                           .ConfigureAwait(false))
                             {
                                 v = e.Current;
@@ -622,7 +622,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync(cancellationToken)
+                if (!await e.MoveNextAsync()
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
@@ -630,7 +630,7 @@ namespace System.Linq
 
                 var sum = e.Current;
                 long count = 1;
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     sum += e.Current;
@@ -645,7 +645,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     var v = e.Current;
@@ -653,7 +653,7 @@ namespace System.Linq
                     {
                         var sum = v.GetValueOrDefault();
                         long count = 1;
-                        while (await e.MoveNextAsync(cancellationToken)
+                        while (await e.MoveNextAsync()
                                       .ConfigureAwait(false))
                         {
                             v = e.Current;

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

@@ -89,7 +89,7 @@ namespace System.Linq
                         {
                             if (!stopped)
                             {
-                                if (await enumerator.MoveNextAsync(cancellationToken)
+                                if (await enumerator.MoveNextAsync()
                                                     .ConfigureAwait(false))
                                 {
                                     var item = enumerator.Current;

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

@@ -105,7 +105,7 @@ namespace System.Linq
                             {
                                 try
                                 {
-                                    if (await enumerator.MoveNextAsync(cancellationToken)
+                                    if (await enumerator.MoveNextAsync()
                                                         .ConfigureAwait(false))
                                     {
                                         current = enumerator.Current;
@@ -126,7 +126,7 @@ namespace System.Linq
                                 }
                             }
 
-                            if (await enumerator.MoveNextAsync(cancellationToken)
+                            if (await enumerator.MoveNextAsync()
                                                 .ConfigureAwait(false))
                             {
                                 current = enumerator.Current;
@@ -212,7 +212,7 @@ namespace System.Linq
 
                             try
                             {
-                                if (await enumerator.MoveNextAsync(cancellationToken)
+                                if (await enumerator.MoveNextAsync()
                                                     .ConfigureAwait(false))
                                 {
                                     current = enumerator.Current;

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/Concatenate.cs

@@ -113,7 +113,7 @@ namespace System.Linq
 
                                 break;
                             case State_While:
-                                if (await currentEnumerator.MoveNextAsync(cancellationToken)
+                                if (await currentEnumerator.MoveNextAsync()
                                                            .ConfigureAwait(false))
                                 {
                                     current = currentEnumerator.Current;
@@ -193,7 +193,7 @@ namespace System.Linq
                     }
                     using (var e = source.GetAsyncEnumerator())
                     {
-                        while (await e.MoveNextAsync(cancellationToken)
+                        while (await e.MoveNextAsync()
                                       .ConfigureAwait(false))
                         {
                             list.Add(e.Current);
@@ -254,7 +254,7 @@ namespace System.Linq
                 {
                     while (true)
                     {
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             current = enumerator.Current;

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/DefaultIfEmpty.cs

@@ -65,7 +65,7 @@ namespace System.Linq
                 {
                     case AsyncIteratorState.Allocated:
                         enumerator = source.GetAsyncEnumerator();
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             current = enumerator.Current;
@@ -82,7 +82,7 @@ namespace System.Linq
                         return true;
 
                     case AsyncIteratorState.Iterating:
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             current = enumerator.Current;

+ 9 - 9
Ix.NET/Source/System.Interactive.Async/Distinct.cs

@@ -141,7 +141,7 @@ namespace System.Linq
                 var s = new Set<TKey>(comparer);
                 using (var enu = source.GetAsyncEnumerator())
                 {
-                    while (await enu.MoveNextAsync(cancellationToken)
+                    while (await enu.MoveNextAsync()
                                     .ConfigureAwait(false))
                     {
                         var item = enu.Current;
@@ -178,7 +178,7 @@ namespace System.Linq
                 {
                     case AsyncIteratorState.Allocated:
                         enumerator = source.GetAsyncEnumerator();
-                        if (!await enumerator.MoveNextAsync(cancellationToken)
+                        if (!await enumerator.MoveNextAsync()
                                              .ConfigureAwait(false))
                         {
                             Dispose();
@@ -193,7 +193,7 @@ namespace System.Linq
                         return true;
 
                     case AsyncIteratorState.Iterating:
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             element = enumerator.Current;
@@ -217,7 +217,7 @@ namespace System.Linq
                 var r = new List<TSource>();
                 using (var enu = source.GetAsyncEnumerator())
                 {
-                    while (await enu.MoveNextAsync(cancellationToken)
+                    while (await enu.MoveNextAsync()
                                     .ConfigureAwait(false))
                     {
                         var item = enu.Current;
@@ -291,7 +291,7 @@ namespace System.Linq
                 {
                     case AsyncIteratorState.Allocated:
                         enumerator = source.GetAsyncEnumerator();
-                        if (!await enumerator.MoveNextAsync(cancellationToken)
+                        if (!await enumerator.MoveNextAsync()
                                              .ConfigureAwait(false))
                         {
                             Dispose();
@@ -306,7 +306,7 @@ namespace System.Linq
                         return true;
 
                     case AsyncIteratorState.Iterating:
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             element = enumerator.Current;
@@ -329,7 +329,7 @@ namespace System.Linq
                 var s = new Set<TSource>(comparer);
                 using (var enu = source.GetAsyncEnumerator())
                 {
-                    while (await enu.MoveNextAsync(cancellationToken)
+                    while (await enu.MoveNextAsync()
                                     .ConfigureAwait(false))
                     {
                         s.Add(enu.Current);
@@ -385,7 +385,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             var item = enumerator.Current;
@@ -456,7 +456,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             var item = enumerator.Current;

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/Do.cs

@@ -122,7 +122,7 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
                         try
                         {
-                            if (await enumerator.MoveNextAsync(cancellationToken)
+                            if (await enumerator.MoveNextAsync()
                                                 .ConfigureAwait(false))
                             {
                                 current = enumerator.Current;

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/ElementAt.cs

@@ -60,7 +60,7 @@ namespace System.Linq
             {
                 using (var e = source.GetAsyncEnumerator())
                 {
-                    while (await e.MoveNextAsync(cancellationToken)
+                    while (await e.MoveNextAsync()
                                   .ConfigureAwait(false))
                     {
                         if (index == 0)
@@ -82,7 +82,7 @@ namespace System.Linq
             {
                 using (var e = source.GetAsyncEnumerator())
                 {
-                    while (await e.MoveNextAsync(cancellationToken)
+                    while (await e.MoveNextAsync()
                                   .ConfigureAwait(false))
                     {
                         if (index == 0)

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/Except.cs

@@ -95,7 +95,7 @@ namespace System.Linq
                             if (!setFilled)
                             {
                                 // This is here so we don't need to call Task.WhenAll each time after the set is filled
-                                var moveNextTask = firstEnumerator.MoveNextAsync(cancellationToken);
+                                var moveNextTask = firstEnumerator.MoveNextAsync();
                                 await Task.WhenAll(moveNextTask, fillSetTask)
                                           .ConfigureAwait(false);
                                 setFilled = true;
@@ -103,7 +103,7 @@ namespace System.Linq
                             }
                             else
                             {
-                                moveNext = await firstEnumerator.MoveNextAsync(cancellationToken)
+                                moveNext = await firstEnumerator.MoveNextAsync()
                                                                 .ConfigureAwait(false);
                             }
 

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/Expand.cs

@@ -86,7 +86,7 @@ namespace System.Linq
                                 break; // while
                             }
 
-                            if (await enumerator.MoveNextAsync(cancellationToken)
+                            if (await enumerator.MoveNextAsync()
                                                 .ConfigureAwait(false))
                             {
                                 var item = enumerator.Current;

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/Finally.cs

@@ -65,7 +65,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             current = enumerator.Current;

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/First.cs

@@ -96,7 +96,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                if (await e.MoveNextAsync(cancellationToken)
+                if (await e.MoveNextAsync()
                            .ConfigureAwait(false))
                 {
                     return e.Current;
@@ -115,7 +115,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                if (await e.MoveNextAsync(cancellationToken)
+                if (await e.MoveNextAsync()
                            .ConfigureAwait(false))
                 {
                     return e.Current;

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/ForEach.cs

@@ -100,7 +100,7 @@ namespace System.Linq
             var index = 0;
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     action(e.Current, checked(index++));

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

@@ -57,7 +57,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             // Do nothing, we're ignoring these elements

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/Intersect.cs

@@ -97,7 +97,7 @@ namespace System.Linq
                             if (!setFilled)
                             {
                                 // This is here so we don't need to call Task.WhenAll each time after the set is filled
-                                var moveNextTask = firstEnumerator.MoveNextAsync(cancellationToken);
+                                var moveNextTask = firstEnumerator.MoveNextAsync();
                                 await Task.WhenAll(moveNextTask, fillSetTask)
                                           .ConfigureAwait(false);
                                 setFilled = true;
@@ -105,7 +105,7 @@ namespace System.Linq
                             }
                             else
                             {
-                                moveNext = await firstEnumerator.MoveNextAsync(cancellationToken)
+                                moveNext = await firstEnumerator.MoveNextAsync()
                                                                 .ConfigureAwait(false);
                             }
 

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

@@ -116,7 +116,7 @@ namespace System.Linq
                         switch (mode)
                         {
                             case State_If:
-                                if (await outerEnumerator.MoveNextAsync(cancellationToken)
+                                if (await outerEnumerator.MoveNextAsync()
                                                          .ConfigureAwait(false))
                                 {
                                     lookup = await Internal.Lookup<TKey, TInner>.CreateForJoinAsync(inner, innerKeySelector, comparer).ConfigureAwait(false);
@@ -155,7 +155,7 @@ namespace System.Linq
                                 return true;
 
                             case State_While:
-                                var hasNext = await outerEnumerator.MoveNextAsync(cancellationToken).ConfigureAwait(false);
+                                var hasNext = await outerEnumerator.MoveNextAsync().ConfigureAwait(false);
                                 if (hasNext)
                                 {
                                     goto case State_DoLoop;

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/Last.cs

@@ -102,7 +102,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     hasLast = true;
@@ -130,7 +130,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     hasLast = true;

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/Lookup.cs

@@ -198,7 +198,7 @@ namespace System.Linq.Internal
             var lookup = new Lookup<TKey, TElement>(comparer);
             using (var enu = source.GetAsyncEnumerator())
             {
-                while (await enu.MoveNextAsync(cancellationToken)
+                while (await enu.MoveNextAsync()
                                 .ConfigureAwait(false))
                 {
                     lookup.GetGrouping(keySelector(enu.Current), create: true)
@@ -217,7 +217,7 @@ namespace System.Linq.Internal
             var lookup = new Lookup<TKey, TElement>(comparer);
             using (var enu = source.GetAsyncEnumerator())
             {
-                while (await enu.MoveNextAsync(cancellationToken)
+                while (await enu.MoveNextAsync()
                                 .ConfigureAwait(false))
                 {
                     lookup.GetGrouping(keySelector(enu.Current), create: true)

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/Min.cs

@@ -495,7 +495,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync(cancellationToken)
+                if (!await e.MoveNextAsync()
                             .ConfigureAwait(false))
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
 
@@ -503,7 +503,7 @@ namespace System.Linq
                 var resKey = keySelector(current);
                 result.Add(current);
 
-                while (await e.MoveNextAsync(cancellationToken)
+                while (await e.MoveNextAsync()
                               .ConfigureAwait(false))
                 {
                     var cur = e.Current;

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

@@ -105,7 +105,7 @@ namespace System.Linq
 
                             try
                             {
-                                if (await enumerator.MoveNextAsync(cancellationToken)
+                                if (await enumerator.MoveNextAsync()
                                                     .ConfigureAwait(false))
                                 {
                                     current = enumerator.Current;

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

@@ -119,7 +119,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             current = enumerator.Current;

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/Scan.cs

@@ -79,7 +79,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                              .ConfigureAwait(false))
                         {
                             var item = enumerator.Current;
@@ -147,7 +147,7 @@ namespace System.Linq
 
                     case AsyncIteratorState.Iterating:
 
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             var item = enumerator.Current;

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/Select.cs

@@ -93,7 +93,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             current = selector(enumerator.Current);
@@ -151,7 +151,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             checked

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

@@ -123,7 +123,7 @@ namespace System.Linq
                         switch (mode)
                         {
                             case State_Source:
-                                if (await sourceEnumerator.MoveNextAsync(cancellationToken)
+                                if (await sourceEnumerator.MoveNextAsync()
                                                           .ConfigureAwait(false))
                                 {
                                     resultEnumerator?.Dispose();
@@ -136,7 +136,7 @@ namespace System.Linq
                                 break;
 
                             case State_Result:
-                                if (await resultEnumerator.MoveNextAsync(cancellationToken)
+                                if (await resultEnumerator.MoveNextAsync()
                                                           .ConfigureAwait(false))
                                 {
                                     current = resultEnumerator.Current;
@@ -218,7 +218,7 @@ namespace System.Linq
                         switch (mode)
                         {
                             case State_Source:
-                                if (await sourceEnumerator.MoveNextAsync(cancellationToken)
+                                if (await sourceEnumerator.MoveNextAsync()
                                                           .ConfigureAwait(false))
                                 {
                                     resultEnumerator?.Dispose();
@@ -232,7 +232,7 @@ namespace System.Linq
                                 break;
 
                             case State_Result:
-                                if (await resultEnumerator.MoveNextAsync(cancellationToken)
+                                if (await resultEnumerator.MoveNextAsync()
                                                           .ConfigureAwait(false))
                                 {
                                     current = resultSelector(currentSource, resultEnumerator.Current);
@@ -316,7 +316,7 @@ namespace System.Linq
                         switch (mode)
                         {
                             case State_Source:
-                                if (await sourceEnumerator.MoveNextAsync(cancellationToken)
+                                if (await sourceEnumerator.MoveNextAsync()
                                                           .ConfigureAwait(false))
                                 {
                                     resultEnumerator?.Dispose();
@@ -336,7 +336,7 @@ namespace System.Linq
                                 break;
 
                             case State_Result:
-                                if (await resultEnumerator.MoveNextAsync(cancellationToken)
+                                if (await resultEnumerator.MoveNextAsync()
                                                           .ConfigureAwait(false))
                                 {
                                     current = resultSelector(currentSource, resultEnumerator.Current);
@@ -414,7 +414,7 @@ namespace System.Linq
                         switch (mode)
                         {
                             case State_Source:
-                                if (await sourceEnumerator.MoveNextAsync(cancellationToken)
+                                if (await sourceEnumerator.MoveNextAsync()
                                                           .ConfigureAwait(false))
                                 {
                                     resultEnumerator?.Dispose();
@@ -431,7 +431,7 @@ namespace System.Linq
                                 break;
 
                             case State_Result:
-                                if (await resultEnumerator.MoveNextAsync(cancellationToken)
+                                if (await resultEnumerator.MoveNextAsync()
                                                           .ConfigureAwait(false))
                                 {
                                     current = resultEnumerator.Current;

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/SequenceEqual.cs

@@ -71,17 +71,17 @@ namespace System.Linq
             using (var e1 = first.GetAsyncEnumerator())
             using (var e2 = second.GetAsyncEnumerator())
             {
-                while (await e1.MoveNextAsync(cancellationToken)
+                while (await e1.MoveNextAsync()
                                .ConfigureAwait(false))
                 {
-                    if (!(await e2.MoveNextAsync(cancellationToken)
+                    if (!(await e2.MoveNextAsync()
                                   .ConfigureAwait(false) && comparer.Equals(e1.Current, e2.Current)))
                     {
                         return false;
                     }
                 }
 
-                return !await e2.MoveNextAsync(cancellationToken)
+                return !await e2.MoveNextAsync()
                                 .ConfigureAwait(false);
             }
         }

+ 4 - 4
Ix.NET/Source/System.Interactive.Async/Single.cs

@@ -101,13 +101,13 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync(cancellationToken)
+                if (!await e.MoveNextAsync()
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
                 }
                 var result = e.Current;
-                if (await e.MoveNextAsync(cancellationToken)
+                if (await e.MoveNextAsync()
                            .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.MORE_THAN_ONE_ELEMENT);
@@ -130,14 +130,14 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync(cancellationToken)
+                if (!await e.MoveNextAsync()
                             .ConfigureAwait(false))
                 {
                     return default(TSource);
                 }
 
                 var result = e.Current;
-                if (!await e.MoveNextAsync(cancellationToken)
+                if (!await e.MoveNextAsync()
                             .ConfigureAwait(false))
                 {
                     return result;

+ 7 - 7
Ix.NET/Source/System.Interactive.Async/Skip.cs

@@ -113,7 +113,7 @@ namespace System.Linq
                         enumerator = source.GetAsyncEnumerator();
 
                         // skip elements as requested
-                        while (currentCount > 0 && await enumerator.MoveNextAsync(cancellationToken)
+                        while (currentCount > 0 && await enumerator.MoveNextAsync()
                                                                    .ConfigureAwait(false))
                         {
                             currentCount--;
@@ -126,7 +126,7 @@ namespace System.Linq
                         break;
 
                     case AsyncIteratorState.Iterating:
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             current = enumerator.Current;
@@ -188,7 +188,7 @@ namespace System.Linq
 
 
                     case AsyncIteratorState.Iterating:
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             var item = enumerator.Current;
@@ -249,7 +249,7 @@ namespace System.Linq
                         enumerator = source.GetAsyncEnumerator();
 
                         // skip elements as requested
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             var element = enumerator.Current;
@@ -263,7 +263,7 @@ namespace System.Linq
                         break;
 
                     case AsyncIteratorState.Iterating:
-                        if (doMoveNext && await enumerator.MoveNextAsync(cancellationToken)
+                        if (doMoveNext && await enumerator.MoveNextAsync()
                                                           .ConfigureAwait(false))
                         {
                             current = enumerator.Current;
@@ -327,7 +327,7 @@ namespace System.Linq
                         index = -1;
 
                         // skip elements as requested
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             checked
@@ -346,7 +346,7 @@ namespace System.Linq
                         break;
 
                     case AsyncIteratorState.Iterating:
-                        if (doMoveNext && await enumerator.MoveNextAsync(cancellationToken)
+                        if (doMoveNext && await enumerator.MoveNextAsync()
                                                           .ConfigureAwait(false))
                         {
                             current = enumerator.Current;

+ 4 - 4
Ix.NET/Source/System.Interactive.Async/Take.cs

@@ -102,7 +102,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        if (currentCount > 0 && await enumerator.MoveNextAsync(cancellationToken)
+                        if (currentCount > 0 && await enumerator.MoveNextAsync()
                                                                 .ConfigureAwait(false))
                         {
                             current = enumerator.Current;
@@ -171,7 +171,7 @@ namespace System.Linq
                         {
                             if (!isDone)
                             {
-                                if (await enumerator.MoveNextAsync(cancellationToken)
+                                if (await enumerator.MoveNextAsync()
                                                     .ConfigureAwait(false))
                                 {
                                     if (count > 0)
@@ -256,7 +256,7 @@ namespace System.Linq
 
 
                     case AsyncIteratorState.Iterating:
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             var item = enumerator.Current;
@@ -321,7 +321,7 @@ namespace System.Linq
 
 
                     case AsyncIteratorState.Iterating:
-                        if (await enumerator.MoveNextAsync(cancellationToken)
+                        if (await enumerator.MoveNextAsync()
                                             .ConfigureAwait(false))
                         {
                             var item = enumerator.Current;

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/ToAsyncEnumerable.cs

@@ -67,7 +67,7 @@ namespace System.Linq
             {
                 while (true)
                 {
-                    if (!e.MoveNextAsync(CancellationToken.None)
+                    if (!e.MoveNextAsync()
                           .Result)
                         break;
                     var c = e.Current;

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/ToObservable.cs

@@ -185,7 +185,7 @@ namespace System.Linq
                 var e = source.GetAsyncEnumerator();
 
                 var f = default(Action);
-                f = () => e.MoveNextAsync(ctd.Token)
+                f = () => e.MoveNextAsync()
                            .ContinueWith(t =>
                                          {
                                              if (t.IsFaulted)

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/Using.cs

@@ -71,7 +71,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             current = enumerator.Current;

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/Where.cs

@@ -93,7 +93,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             var item = enumerator.Current;
@@ -155,7 +155,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             checked
@@ -228,7 +228,7 @@ namespace System.Linq
                         goto case AsyncIteratorState.Iterating;
 
                     case AsyncIteratorState.Iterating:
-                        while (await enumerator.MoveNextAsync(cancellationToken)
+                        while (await enumerator.MoveNextAsync()
                                                .ConfigureAwait(false))
                         {
                             var item = enumerator.Current;

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

@@ -78,8 +78,8 @@ namespace System.Linq
                     case AsyncIteratorState.Iterating:
 
                         // We kick these off and join so they can potentially run in parallel
-                        var ft = firstEnumerator.MoveNextAsync(cancellationToken);
-                        var st = secondEnumerator.MoveNextAsync(cancellationToken);
+                        var ft = firstEnumerator.MoveNextAsync();
+                        var st = secondEnumerator.MoveNextAsync();
                         await Task.WhenAll(ft, st)
                                   .ConfigureAwait(false);
 

+ 0 - 9
Ix.NET/Source/Tests/AsyncTests.Aggregates.cs

@@ -943,15 +943,6 @@ namespace Tests
             AssertThrows<Exception>(() => res.Wait(WaitTimeoutMs), ex_ => ((AggregateException)ex_).Flatten().InnerExceptions.Single() == ex);
         }
 
-        [Fact]
-        public async Task ElementAt7()
-        {
-            var en = new CancellationTestAsyncEnumerable(10);
-
-            var res = en.ElementAt(1);
-            Assert.Equal(1, await res);
-        }
-
         [Fact]
         public async Task ElementAtOrDefault_Null()
         {

+ 0 - 197
Ix.NET/Source/Tests/AsyncTests.Bugs.cs

@@ -146,203 +146,6 @@ namespace Tests
             Assert.True(result);
         }
 
-        [Fact]
-        public async Task CorrectCancel()
-        {
-            var disposed = new TaskCompletionSource<bool>();
-
-            var xs = new CancellationTestAsyncEnumerable().WithDispose(() =>
-            {
-                disposed.TrySetResult(true);
-            });
-
-            var ys = xs.Select(x => x + 1).Where(x => true);
-
-            var e = ys.GetAsyncEnumerator();
-            var cts = new CancellationTokenSource();
-            var t = e.MoveNextAsync(cts.Token);
-
-            cts.Cancel();
-
-            try
-            {
-                t.Wait(WaitTimeoutMs);
-            }
-            catch
-            {
-                // Don't care about the outcome; we could have made it to element 1
-                // but we could also have cancelled the MoveNext-calling task. Either
-                // way, we want to wait for the task to be completed and check that
-            }
-            finally
-            {
-                // the cancellation bubbled all the way up to the source to dispose
-                // it. This design is chosen because cancelling a MoveNext call leaves
-                // the enumerator in an indeterminate state. Further interactions with
-                // it should be forbidden.
-
-                var result = await disposed.Task;
-                Assert.True(result);
-            }
-
-            Assert.False(await e.MoveNext());
-        }
-
-        [Fact]
-        public void CanCancelMoveNext()
-        {
-            var xs = new CancellationTestAsyncEnumerable().Select(x => x).Where(x => true);
-
-            var e = xs.GetAsyncEnumerator();
-            var cts = new CancellationTokenSource();
-            var t = e.MoveNextAsync(cts.Token);
-
-            cts.Cancel();
-
-            try
-            {
-                t.Wait(WaitTimeoutMs);
-                Assert.True(false);
-            }
-            catch
-            {
-                Assert.True(t.IsCanceled);
-            }
-        }
-
-        /// <summary>
-        /// Waits WaitTimeoutMs or until cancellation is requested. If cancellation was not requested, MoveNext returns true.
-        /// </summary>
-        internal sealed class CancellationTestAsyncEnumerable : IAsyncEnumerable<int>
-        {
-            private readonly int iterationsBeforeDelay;
-
-            public CancellationTestAsyncEnumerable(int iterationsBeforeDelay = 0)
-            {
-                this.iterationsBeforeDelay = iterationsBeforeDelay;
-            }
-            IAsyncEnumerator<int> IAsyncEnumerable<int>.GetAsyncEnumerator() => GetEnumerator();
-
-            public TestEnumerator GetEnumerator() => new TestEnumerator(iterationsBeforeDelay);
-
-
-            internal sealed class TestEnumerator : IAsyncEnumerator<int>
-            {
-                private readonly int iterationsBeforeDelay;
-
-                public TestEnumerator(int iterationsBeforeDelay)
-                {
-                    this.iterationsBeforeDelay = iterationsBeforeDelay;
-                }
-                int i = -1;
-                public void Dispose()
-                {
-                }
-
-                public bool MoveNextWasCalled { get; private set; }
-
-                public int Current => i;
-                
-                public async Task<bool> MoveNextAsync()
-                {
-                    MoveNextWasCalled = true;
-                  
-                    i++;
-                    if (Current >= iterationsBeforeDelay)
-                    {
-                        await Task.Delay(WaitTimeoutMs);
-                    }
-
-                    return true;
-                }
-            }
-        }
-
-        /// <summary>
-        /// Waits WaitTimeoutMs or until cancellation is requested. If cancellation was not requested, MoveNext returns true.
-        /// </summary>
-        private sealed class CancellationTestEnumerable<T> : IEnumerable<T>
-        {
-            public CancellationTestEnumerable()
-            {
-            }
-            public IEnumerator<T> GetEnumerator() => new TestEnumerator();
-
-            private sealed class TestEnumerator : IEnumerator<T>
-            {
-                private readonly CancellationTokenSource cancellationTokenSource;
-
-                public TestEnumerator()
-                {
-                    cancellationTokenSource = new CancellationTokenSource();
-                }
-                public void Dispose()
-                {
-                    cancellationTokenSource.Cancel();
-                }
-
-                public void Reset()
-                {
-                  
-                }
-
-                object IEnumerator.Current => Current;
-
-                public T Current { get; }
-
-                public bool MoveNext()
-                {
-                    Task.Delay(WaitTimeoutMs, cancellationTokenSource.Token).Wait();
-                    cancellationTokenSource.Token.ThrowIfCancellationRequested();
-                    return true;
-                }
-            }
-
-            IEnumerator IEnumerable.GetEnumerator()
-            {
-                return GetEnumerator();
-            }
-        }
-
-        [Fact]
-        public void ToAsyncEnumeratorCannotCancelOnceRunning()
-        {
-            var evt = new ManualResetEvent(false);
-            var isRunningEvent = new ManualResetEvent(false);
-            var xs = Blocking(evt, isRunningEvent).ToAsyncEnumerable();
-
-            var e = xs.GetAsyncEnumerator();
-            var cts = new CancellationTokenSource();
-
-
-            Task<bool> t = null;
-            var tMoveNext =Task.Run(
-                () =>
-                {
-                    // This call *will* block
-                    t = e.MoveNextAsync(cts.Token);
-                });
-         
-
-            isRunningEvent.WaitOne();
-            cts.Cancel();
-
-            try
-            {
-                tMoveNext.Wait(0);
-                Assert.False(t.IsCanceled);
-            }
-            catch
-            {
-                // T will still be null
-                Assert.Null(t);
-            }
-
-
-            // enable it to finish
-            evt.Set();
-        }
-
         static IEnumerable<int> Blocking(ManualResetEvent evt, ManualResetEvent blockingStarted)
         {
             blockingStarted.Set();

+ 0 - 18
Ix.NET/Source/Tests/AsyncTests.Exceptions.cs

@@ -393,24 +393,6 @@ namespace Tests
             Assert.True(b);
         }
 
-        //[Fact]
-        public void Finally6()
-        {
-            var b = false;
-
-            var xs = new[] { 1, 2 }.ToAsyncEnumerable().Finally(() => { b = true; });
-
-            var e = xs.GetAsyncEnumerator();
-
-            var cts = new CancellationTokenSource();
-
-            var t = e.MoveNextAsync(cts.Token);
-            cts.Cancel();
-            t.Wait(WaitTimeoutMs);
-
-            Assert.True(b);
-        }
-
         [Fact]
         public async Task Finally7()
         {

+ 0 - 11
Ix.NET/Source/Tests/AsyncTests.Single.cs

@@ -23,17 +23,6 @@ namespace Tests
             Assert.ThrowsAsync<ArgumentNullException>(() => en.MoveNext());
         }
 
-        [Fact]
-        public void MoveNextExtension()
-        {
-            var enumerable = new CancellationTestAsyncEnumerable();
-            var en = enumerable.GetEnumerator();
-
-            en.MoveNext();
-
-            Assert.True(en.MoveNextWasCalled);
-        }
-
         [Fact]
         public void Select_Null()
         {

+ 48 - 0
Ix.NET/Source/Tests/AsyncTests.cs

@@ -87,5 +87,53 @@ namespace Tests
             e1Result.ShouldAllBeEquivalentTo(e2Result);
         }
 #pragma warning restore xUnit1013 // Public method should be marked as test        
+
+        /// <summary>
+        /// Waits WaitTimeoutMs or until cancellation is requested. If cancellation was not requested, MoveNext returns true.
+        /// </summary>
+        internal sealed class CancellationTestAsyncEnumerable : IAsyncEnumerable<int>
+        {
+            private readonly int iterationsBeforeDelay;
+
+            public CancellationTestAsyncEnumerable(int iterationsBeforeDelay = 0)
+            {
+                this.iterationsBeforeDelay = iterationsBeforeDelay;
+            }
+            IAsyncEnumerator<int> IAsyncEnumerable<int>.GetAsyncEnumerator() => GetEnumerator();
+
+            public TestEnumerator GetEnumerator() => new TestEnumerator(iterationsBeforeDelay);
+
+
+            internal sealed class TestEnumerator : IAsyncEnumerator<int>
+            {
+                private readonly int iterationsBeforeDelay;
+
+                public TestEnumerator(int iterationsBeforeDelay)
+                {
+                    this.iterationsBeforeDelay = iterationsBeforeDelay;
+                }
+                int i = -1;
+                public void Dispose()
+                {
+                }
+
+                public bool MoveNextWasCalled { get; private set; }
+
+                public int Current => i;
+
+                public async Task<bool> MoveNextAsync()
+                {
+                    MoveNextWasCalled = true;
+
+                    i++;
+                    if (Current >= iterationsBeforeDelay)
+                    {
+                        await Task.Delay(WaitTimeoutMs);
+                    }
+
+                    return true;
+                }
+            }
+        }
     }
 }