فهرست منبع

4.x: Cleanup unnecessary type arguments/usings

Dávid Karnok 7 سال پیش
والد
کامیت
c24eaf5cff
69فایلهای تغییر یافته به همراه798 افزوده شده و 845 حذف شده
  1. 7 0
      Rx.NET/Source/Rx.ruleset
  2. 7 0
      Rx.NET/Source/Test.ruleset
  3. 1 0
      Rx.NET/Source/src/Microsoft.Reactive.Testing/Microsoft.Reactive.Testing.csproj
  4. 0 1
      Rx.NET/Source/src/System.Reactive/AnonymousSafeObserver.cs
  5. 1 1
      Rx.NET/Source/src/System.Reactive/Concurrency/EventLoopScheduler.cs
  6. 1 2
      Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Async.cs
  7. 1 2
      Rx.NET/Source/src/System.Reactive/Concurrency/SchedulerWrapper.cs
  8. 1 2
      Rx.NET/Source/src/System.Reactive/Concurrency/VirtualTimeScheduler.cs
  9. 0 1
      Rx.NET/Source/src/System.Reactive/Internal/PriorityQueue.cs
  10. 0 1
      Rx.NET/Source/src/System.Reactive/Linq/LocalQueryMethodImplementationTypeAttribute.cs
  11. 93 93
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Aggregates.cs
  12. 105 105
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Async.cs
  13. 4 5
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Awaiter.cs
  14. 27 27
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Binding.cs
  15. 22 22
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Blocking.cs
  16. 6 6
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Concurrency.cs
  17. 7 7
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Conversions.cs
  18. 23 24
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Creation.cs
  19. 38 39
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Events.cs
  20. 14 14
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Imperative.cs
  21. 4 5
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Joins.cs
  22. 75 75
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Multiple.cs
  23. 37 36
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Single.cs
  24. 54 54
      Rx.NET/Source/src/System.Reactive/Linq/Observable.StandardSequenceOperators.cs
  25. 67 67
      Rx.NET/Source/src/System.Reactive/Linq/Observable.Time.cs
  26. 0 2
      Rx.NET/Source/src/System.Reactive/Linq/Observable/AmbMany.cs
  27. 0 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/Case.cs
  28. 1 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/CombineLatest.cs
  29. 0 2
      Rx.NET/Source/src/System.Reactive/Linq/Observable/Defer.cs
  30. 4 4
      Rx.NET/Source/src/System.Reactive/Linq/Observable/Delay.cs
  31. 1 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/ElementAtOrDefault.cs
  32. 0 3
      Rx.NET/Source/src/System.Reactive/Linq/Observable/FirstLastBlocking.cs
  33. 1 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/FirstOrDefaultAsync.cs
  34. 0 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/FromEventPattern.cs
  35. 0 2
      Rx.NET/Source/src/System.Reactive/Linq/Observable/If.cs
  36. 1 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/Materialize.cs
  37. 0 4
      Rx.NET/Source/src/System.Reactive/Linq/Observable/RepeatWhen.cs
  38. 0 3
      Rx.NET/Source/src/System.Reactive/Linq/Observable/RetryWhen.cs
  39. 0 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/Return.cs
  40. 3 3
      Rx.NET/Source/src/System.Reactive/Linq/Observable/SkipLast.cs
  41. 0 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/SkipUntil.cs
  42. 3 3
      Rx.NET/Source/src/System.Reactive/Linq/Observable/TakeLastBuffer.cs
  43. 0 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/TakeUntil.cs
  44. 0 4
      Rx.NET/Source/src/System.Reactive/Linq/Observable/TakeUntilPredicate.cs
  45. 0 1
      Rx.NET/Source/src/System.Reactive/Linq/Observable/Throw.cs
  46. 4 4
      Rx.NET/Source/src/System.Reactive/Linq/Observable/TimeInterval.cs
  47. 10 10
      Rx.NET/Source/src/System.Reactive/Linq/ObservableEx.cs
  48. 0 3
      Rx.NET/Source/src/System.Reactive/Linq/Qbservable.Generated.cs
  49. 0 7
      Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Generated.cs
  50. 3 3
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Awaiter.cs
  51. 0 1
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Binding.cs
  52. 2 2
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Blocking.cs
  53. 4 4
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Concurrency.cs
  54. 2 3
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Conversions.cs
  55. 3 5
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Creation.cs
  56. 8 11
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Events.cs
  57. 0 1
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Imperative.cs
  58. 29 29
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Multiple.cs
  59. 12 13
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Single.cs
  60. 26 26
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.StandardSequenceOperators.cs
  61. 63 65
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Time.cs
  62. 2 2
      Rx.NET/Source/src/System.Reactive/Linq/QueryLanguageEx.cs
  63. 2 3
      Rx.NET/Source/src/System.Reactive/ObservableQuery.cs
  64. 5 5
      Rx.NET/Source/src/System.Reactive/Observer.Extensions.cs
  65. 3 5
      Rx.NET/Source/src/System.Reactive/Platforms/UWP/Linq/AsyncInfoObservable.cs
  66. 0 1
      Rx.NET/Source/src/System.Reactive/Subjects/ConnectableObservable.cs
  67. 1 1
      Rx.NET/Source/src/System.Reactive/Unit.cs
  68. 6 7
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/ArgumentValidationTest.cs
  69. 4 5
      Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/TimerTest.cs

+ 7 - 0
Rx.NET/Source/Rx.ruleset

@@ -218,5 +218,12 @@
     <Rule Id="CA2241" Action="Warning" />
     <Rule Id="CA2242" Action="Warning" />
     <Rule Id="CA2243" Action="Warning" />
+    <!--
+    <Rule Id="IDE0001" Action="Warning" />
+    <Rule Id="IDE0003" Action="Warning" />
+    <Rule Id="IDE0004" Action="Warning" />
+    <Rule Id="IDE0005" Action="Warning" />
+    <Rule Id="IDE0034" Action="Warning" />
+    -->
   </Rules>
 </RuleSet>

+ 7 - 0
Rx.NET/Source/Test.ruleset

@@ -2,6 +2,13 @@
 <RuleSet Name="Test Rule Set" Description=" " ToolsVersion="10.0">
   <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
     <Rule Id="CA2212" Action="Warning" />
+    <!--
+    <Rule Id="IDE0001" Action="Warning" />
+    <Rule Id="IDE0003" Action="Warning" />
+    <Rule Id="IDE0004" Action="Warning" />
+    <Rule Id="IDE0005" Action="Warning" />
+    <Rule Id="IDE0034" Action="Warning" />
+    -->
   </Rules>
   <Rules AnalyzerId="xunit.analyzers" RuleNamespace="xunit.analyzers">
     <Rule Id="xUnit1004" Action="None" />

+ 1 - 0
Rx.NET/Source/src/Microsoft.Reactive.Testing/Microsoft.Reactive.Testing.csproj

@@ -7,6 +7,7 @@
     <DefineConstants>$(DefineConstants);PLATFORM_DOTNET;XUNIT_VISIBILITY_INTERNAL</DefineConstants>        
     <PackageTags>Rx;Reactive;Extensions;Observable;LINQ;Events</PackageTags>    
     <Description>Reactive Extensions (Rx) for .NET - Testing Library</Description>
+    <LangVersion>7.1</LangVersion>
   </PropertyGroup>
 
   <ItemGroup>

+ 0 - 1
Rx.NET/Source/src/System.Reactive/AnonymousSafeObserver.cs

@@ -2,7 +2,6 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System.Reactive.Disposables;
 using System.Threading;
 
 namespace System.Reactive

+ 1 - 1
Rx.NET/Source/src/System.Reactive/Concurrency/EventLoopScheduler.cs

@@ -306,7 +306,7 @@ namespace System.Reactive.Concurrency
                     //
                     if (_disposed)
                     {
-                        ((IDisposable)_evt).Dispose();
+                        _evt.Dispose();
                         return;
                     }
 

+ 1 - 2
Rx.NET/Source/src/System.Reactive/Concurrency/Scheduler.Async.cs

@@ -389,8 +389,7 @@ namespace System.Reactive.Concurrency
 
         private static CancellationToken GetCancellationToken(this IScheduler scheduler)
         {
-            var cs = scheduler as CancelableScheduler;
-            return cs != null ? cs.Token : CancellationToken.None;
+            return scheduler is CancelableScheduler cs ? cs.Token : CancellationToken.None;
         }
 
         private sealed class CancelableScheduler : IScheduler

+ 1 - 2
Rx.NET/Source/src/System.Reactive/Concurrency/SchedulerWrapper.cs

@@ -63,8 +63,7 @@ namespace System.Reactive.Concurrency
 
         public object GetService(Type serviceType)
         {
-            var serviceProvider = _scheduler as IServiceProvider;
-            if (serviceProvider == null)
+            if (!(_scheduler is IServiceProvider serviceProvider))
                 return null;
 
             if (TryGetService(serviceProvider, serviceType, out var result))

+ 1 - 2
Rx.NET/Source/src/System.Reactive/Concurrency/VirtualTimeScheduler.cs

@@ -4,7 +4,6 @@
 
 using System.Collections.Generic;
 using System.Globalization;
-using System.Reactive.Disposables;
 
 namespace System.Reactive.Concurrency
 {
@@ -20,7 +19,7 @@ namespace System.Reactive.Concurrency
         /// Creates a new virtual time scheduler with the default value of TAbsolute as the initial clock value.
         /// </summary>
         protected VirtualTimeSchedulerBase()
-            : this(default(TAbsolute), Comparer<TAbsolute>.Default)
+            : this(default, Comparer<TAbsolute>.Default)
         {
         }
 

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Internal/PriorityQueue.cs

@@ -2,7 +2,6 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System.Threading;
 using System.Collections.Generic;
 
 namespace System.Reactive

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Linq/LocalQueryMethodImplementationTypeAttribute.cs

@@ -2,7 +2,6 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System;
 using System.ComponentModel;
 
 namespace System.Reactive.Linq

+ 93 - 93
Rx.NET/Source/src/System.Reactive/Linq/Observable.Aggregates.cs

@@ -30,7 +30,7 @@ namespace System.Reactive.Linq
             if (accumulator == null)
                 throw new ArgumentNullException(nameof(accumulator));
 
-            return s_impl.Aggregate<TSource, TAccumulate>(source, seed, accumulator);
+            return s_impl.Aggregate(source, seed, accumulator);
         }
 
         /// <summary>
@@ -56,7 +56,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Aggregate<TSource, TAccumulate, TResult>(source, seed, accumulator, resultSelector);
+            return s_impl.Aggregate(source, seed, accumulator, resultSelector);
         }
 
         /// <summary>
@@ -77,7 +77,7 @@ namespace System.Reactive.Linq
             if (accumulator == null)
                 throw new ArgumentNullException(nameof(accumulator));
 
-            return s_impl.Aggregate<TSource>(source, accumulator);
+            return s_impl.Aggregate(source, accumulator);
         }
 
         #endregion
@@ -100,7 +100,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.All<TSource>(source, predicate);
+            return s_impl.All(source, predicate);
         }
 
         #endregion
@@ -120,7 +120,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Any<TSource>(source);
+            return s_impl.Any(source);
         }
 
         /// <summary>
@@ -139,7 +139,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.Any<TSource>(source, predicate);
+            return s_impl.Any(source, predicate);
         }
 
         #endregion
@@ -330,7 +330,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Average<TSource>(source, selector);
+            return s_impl.Average(source, selector);
         }
 
         /// <summary>
@@ -350,7 +350,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Average<TSource>(source, selector);
+            return s_impl.Average(source, selector);
         }
 
         /// <summary>
@@ -370,7 +370,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Average<TSource>(source, selector);
+            return s_impl.Average(source, selector);
         }
 
         /// <summary>
@@ -391,7 +391,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Average<TSource>(source, selector);
+            return s_impl.Average(source, selector);
         }
 
         /// <summary>
@@ -412,7 +412,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Average<TSource>(source, selector);
+            return s_impl.Average(source, selector);
         }
 
         /// <summary>
@@ -433,7 +433,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Average<TSource>(source, selector);
+            return s_impl.Average(source, selector);
         }
 
         /// <summary>
@@ -453,7 +453,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Average<TSource>(source, selector);
+            return s_impl.Average(source, selector);
         }
 
         /// <summary>
@@ -473,7 +473,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Average<TSource>(source, selector);
+            return s_impl.Average(source, selector);
         }
 
         /// <summary>
@@ -494,7 +494,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Average<TSource>(source, selector);
+            return s_impl.Average(source, selector);
         }
 
         /// <summary>
@@ -515,7 +515,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Average<TSource>(source, selector);
+            return s_impl.Average(source, selector);
         }
 
         #endregion
@@ -536,7 +536,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Contains<TSource>(source, value);
+            return s_impl.Contains(source, value);
         }
 
         /// <summary>
@@ -556,7 +556,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.Contains<TSource>(source, value, comparer);
+            return s_impl.Contains(source, value, comparer);
         }
 
         #endregion
@@ -577,7 +577,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Count<TSource>(source);
+            return s_impl.Count(source);
         }
 
         /// <summary>
@@ -596,7 +596,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.Count<TSource>(source, predicate);
+            return s_impl.Count(source, predicate);
         }
 
         #endregion
@@ -620,7 +620,7 @@ namespace System.Reactive.Linq
             if (index < 0)
                 throw new ArgumentOutOfRangeException(nameof(index));
 
-            return s_impl.ElementAt<TSource>(source, index);
+            return s_impl.ElementAt(source, index);
         }
 
         #endregion
@@ -643,7 +643,7 @@ namespace System.Reactive.Linq
             if (index < 0)
                 throw new ArgumentOutOfRangeException(nameof(index));
 
-            return s_impl.ElementAtOrDefault<TSource>(source, index);
+            return s_impl.ElementAtOrDefault(source, index);
         }
 
         #endregion
@@ -663,7 +663,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.FirstAsync<TSource>(source);
+            return s_impl.FirstAsync(source);
         }
 
         /// <summary>
@@ -682,7 +682,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.FirstAsync<TSource>(source, predicate);
+            return s_impl.FirstAsync(source, predicate);
         }
 
         #endregion
@@ -701,7 +701,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.FirstOrDefaultAsync<TSource>(source);
+            return s_impl.FirstOrDefaultAsync(source);
         }
 
         /// <summary>
@@ -719,7 +719,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.FirstOrDefaultAsync<TSource>(source, predicate);
+            return s_impl.FirstOrDefaultAsync(source, predicate);
         }
 
         #endregion
@@ -738,7 +738,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.IsEmpty<TSource>(source);
+            return s_impl.IsEmpty(source);
         }
 
         #endregion
@@ -758,7 +758,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.LastAsync<TSource>(source);
+            return s_impl.LastAsync(source);
         }
 
         /// <summary>
@@ -777,7 +777,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.LastAsync<TSource>(source, predicate);
+            return s_impl.LastAsync(source, predicate);
         }
 
         #endregion
@@ -796,7 +796,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.LastOrDefaultAsync<TSource>(source);
+            return s_impl.LastOrDefaultAsync(source);
         }
 
         /// <summary>
@@ -814,7 +814,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.LastOrDefaultAsync<TSource>(source, predicate);
+            return s_impl.LastOrDefaultAsync(source, predicate);
         }
 
         #endregion
@@ -835,7 +835,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.LongCount<TSource>(source);
+            return s_impl.LongCount(source);
         }
 
         /// <summary>
@@ -854,7 +854,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.LongCount<TSource>(source, predicate);
+            return s_impl.LongCount(source, predicate);
         }
 
         #endregion
@@ -874,7 +874,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Max<TSource>(source);
+            return s_impl.Max(source);
         }
 
         /// <summary>
@@ -893,7 +893,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.Max<TSource>(source, comparer);
+            return s_impl.Max(source, comparer);
         }
 
         /// <summary>
@@ -1063,7 +1063,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource, TResult>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         /// <summary>
@@ -1086,7 +1086,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.Max<TSource, TResult>(source, selector, comparer);
+            return s_impl.Max(source, selector, comparer);
         }
 
         /// <summary>
@@ -1105,7 +1105,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         /// <summary>
@@ -1124,7 +1124,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         /// <summary>
@@ -1143,7 +1143,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         /// <summary>
@@ -1162,7 +1162,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         /// <summary>
@@ -1181,7 +1181,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         /// <summary>
@@ -1200,7 +1200,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         /// <summary>
@@ -1219,7 +1219,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         /// <summary>
@@ -1238,7 +1238,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         /// <summary>
@@ -1257,7 +1257,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         /// <summary>
@@ -1276,7 +1276,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Max<TSource>(source, selector);
+            return s_impl.Max(source, selector);
         }
 
         #endregion
@@ -1300,7 +1300,7 @@ namespace System.Reactive.Linq
             if (keySelector == null)
                 throw new ArgumentNullException(nameof(keySelector));
 
-            return s_impl.MaxBy<TSource, TKey>(source, keySelector);
+            return s_impl.MaxBy(source, keySelector);
         }
 
         /// <summary>
@@ -1323,7 +1323,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.MaxBy<TSource, TKey>(source, keySelector, comparer);
+            return s_impl.MaxBy(source, keySelector, comparer);
         }
 
         #endregion
@@ -1343,7 +1343,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Min<TSource>(source);
+            return s_impl.Min(source);
         }
 
         /// <summary>
@@ -1362,7 +1362,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.Min<TSource>(source, comparer);
+            return s_impl.Min(source, comparer);
         }
 
         /// <summary>
@@ -1532,7 +1532,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource, TResult>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         /// <summary>
@@ -1555,7 +1555,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.Min<TSource, TResult>(source, selector, comparer);
+            return s_impl.Min(source, selector, comparer);
         }
 
         /// <summary>
@@ -1574,7 +1574,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         /// <summary>
@@ -1593,7 +1593,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         /// <summary>
@@ -1612,7 +1612,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         /// <summary>
@@ -1631,7 +1631,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         /// <summary>
@@ -1650,7 +1650,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         /// <summary>
@@ -1669,7 +1669,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         /// <summary>
@@ -1688,7 +1688,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         /// <summary>
@@ -1707,7 +1707,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         /// <summary>
@@ -1726,7 +1726,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         /// <summary>
@@ -1745,7 +1745,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Min<TSource>(source, selector);
+            return s_impl.Min(source, selector);
         }
 
         #endregion
@@ -1769,7 +1769,7 @@ namespace System.Reactive.Linq
             if (keySelector == null)
                 throw new ArgumentNullException(nameof(keySelector));
 
-            return s_impl.MinBy<TSource, TKey>(source, keySelector);
+            return s_impl.MinBy(source, keySelector);
         }
 
         /// <summary>
@@ -1792,7 +1792,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.MinBy<TSource, TKey>(source, keySelector, comparer);
+            return s_impl.MinBy(source, keySelector, comparer);
         }
 
         #endregion
@@ -1815,7 +1815,7 @@ namespace System.Reactive.Linq
             if (second == null)
                 throw new ArgumentNullException(nameof(second));
 
-            return s_impl.SequenceEqual<TSource>(first, second);
+            return s_impl.SequenceEqual(first, second);
         }
 
         /// <summary>
@@ -1837,7 +1837,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.SequenceEqual<TSource>(first, second, comparer);
+            return s_impl.SequenceEqual(first, second, comparer);
         }
 
         /// <summary>
@@ -1856,7 +1856,7 @@ namespace System.Reactive.Linq
             if (second == null)
                 throw new ArgumentNullException(nameof(second));
 
-            return s_impl.SequenceEqual<TSource>(first, second);
+            return s_impl.SequenceEqual(first, second);
         }
 
         /// <summary>
@@ -1878,7 +1878,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.SequenceEqual<TSource>(first, second, comparer);
+            return s_impl.SequenceEqual(first, second, comparer);
         }
 
         #endregion
@@ -1898,7 +1898,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.SingleAsync<TSource>(source);
+            return s_impl.SingleAsync(source);
         }
 
         /// <summary>
@@ -1917,7 +1917,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.SingleAsync<TSource>(source, predicate);
+            return s_impl.SingleAsync(source, predicate);
         }
 
         #endregion
@@ -1937,7 +1937,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.SingleOrDefaultAsync<TSource>(source);
+            return s_impl.SingleOrDefaultAsync(source);
         }
 
         /// <summary>
@@ -1956,7 +1956,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.SingleOrDefaultAsync<TSource>(source, predicate);
+            return s_impl.SingleOrDefaultAsync(source, predicate);
         }
 
         #endregion
@@ -2135,7 +2135,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Sum<TSource>(source, selector);
+            return s_impl.Sum(source, selector);
         }
 
         /// <summary>
@@ -2154,7 +2154,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Sum<TSource>(source, selector);
+            return s_impl.Sum(source, selector);
         }
 
         /// <summary>
@@ -2174,7 +2174,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Sum<TSource>(source, selector);
+            return s_impl.Sum(source, selector);
         }
 
         /// <summary>
@@ -2194,7 +2194,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Sum<TSource>(source, selector);
+            return s_impl.Sum(source, selector);
         }
 
         /// <summary>
@@ -2214,7 +2214,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Sum<TSource>(source, selector);
+            return s_impl.Sum(source, selector);
         }
 
         /// <summary>
@@ -2233,7 +2233,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Sum<TSource>(source, selector);
+            return s_impl.Sum(source, selector);
         }
 
         /// <summary>
@@ -2252,7 +2252,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Sum<TSource>(source, selector);
+            return s_impl.Sum(source, selector);
         }
 
         /// <summary>
@@ -2272,7 +2272,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Sum<TSource>(source, selector);
+            return s_impl.Sum(source, selector);
         }
 
         /// <summary>
@@ -2292,7 +2292,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Sum<TSource>(source, selector);
+            return s_impl.Sum(source, selector);
         }
 
         /// <summary>
@@ -2312,7 +2312,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Sum<TSource>(source, selector);
+            return s_impl.Sum(source, selector);
         }
 
         #endregion
@@ -2332,7 +2332,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.ToArray<TSource>(source);
+            return s_impl.ToArray(source);
         }
 
         #endregion
@@ -2356,7 +2356,7 @@ namespace System.Reactive.Linq
             if (keySelector == null)
                 throw new ArgumentNullException(nameof(keySelector));
 
-            return s_impl.ToDictionary<TSource, TKey>(source, keySelector);
+            return s_impl.ToDictionary(source, keySelector);
         }
 
         /// <summary>
@@ -2379,7 +2379,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.ToDictionary<TSource, TKey>(source, keySelector, comparer);
+            return s_impl.ToDictionary(source, keySelector, comparer);
         }
 
         /// <summary>
@@ -2403,7 +2403,7 @@ namespace System.Reactive.Linq
             if (elementSelector == null)
                 throw new ArgumentNullException(nameof(elementSelector));
 
-            return s_impl.ToDictionary<TSource, TKey, TElement>(source, keySelector, elementSelector);
+            return s_impl.ToDictionary(source, keySelector, elementSelector);
         }
 
         /// <summary>
@@ -2430,7 +2430,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.ToDictionary<TSource, TKey, TElement>(source, keySelector, elementSelector, comparer);
+            return s_impl.ToDictionary(source, keySelector, elementSelector, comparer);
         }
 
         #endregion
@@ -2450,7 +2450,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.ToList<TSource>(source);
+            return s_impl.ToList(source);
         }
 
         #endregion
@@ -2474,7 +2474,7 @@ namespace System.Reactive.Linq
             if (keySelector == null)
                 throw new ArgumentNullException(nameof(keySelector));
 
-            return s_impl.ToLookup<TSource, TKey>(source, keySelector);
+            return s_impl.ToLookup(source, keySelector);
         }
 
         /// <summary>
@@ -2497,7 +2497,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.ToLookup<TSource, TKey>(source, keySelector, comparer);
+            return s_impl.ToLookup(source, keySelector, comparer);
         }
 
         /// <summary>
@@ -2521,7 +2521,7 @@ namespace System.Reactive.Linq
             if (elementSelector == null)
                 throw new ArgumentNullException(nameof(elementSelector));
 
-            return s_impl.ToLookup<TSource, TKey, TElement>(source, keySelector, elementSelector);
+            return s_impl.ToLookup(source, keySelector, elementSelector);
         }
 
         /// <summary>
@@ -2548,7 +2548,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.ToLookup<TSource, TKey, TElement>(source, keySelector, elementSelector, comparer);
+            return s_impl.ToLookup(source, keySelector, elementSelector, comparer);
         }
 
         #endregion

+ 105 - 105
Rx.NET/Source/src/System.Reactive/Linq/Observable.Async.cs

@@ -34,7 +34,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -57,7 +57,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -81,7 +81,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -106,7 +106,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -132,7 +132,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -159,7 +159,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -187,7 +187,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -216,7 +216,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -246,7 +246,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -277,7 +277,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -309,7 +309,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -342,7 +342,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -376,7 +376,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -411,7 +411,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -447,7 +447,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TResult>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         #endregion
@@ -494,7 +494,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -517,7 +517,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -541,7 +541,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -566,7 +566,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -592,7 +592,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -619,7 +619,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -647,7 +647,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -676,7 +676,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -706,7 +706,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -737,7 +737,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -769,7 +769,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -802,7 +802,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -836,7 +836,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         /// <summary>
@@ -871,7 +871,7 @@ namespace System.Reactive.Linq
             if (end == null)
                 throw new ArgumentNullException(nameof(end));
 
-            return s_impl.FromAsyncPattern<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14>(begin, end);
+            return s_impl.FromAsyncPattern(begin, end);
         }
 
         #endregion
@@ -900,7 +900,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.Start<TResult>(function);
+            return s_impl.Start(function);
         }
 
         /// <summary>
@@ -924,7 +924,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Start<TResult>(function, scheduler);
+            return s_impl.Start(function, scheduler);
         }
 
         /// <summary>
@@ -945,7 +945,7 @@ namespace System.Reactive.Linq
             if (functionAsync == null)
                 throw new ArgumentNullException(nameof(functionAsync));
 
-            return s_impl.StartAsync<TResult>(functionAsync);
+            return s_impl.StartAsync(functionAsync);
         }
 
         /// <summary>
@@ -969,7 +969,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.StartAsync<TResult>(functionAsync, scheduler);
+            return s_impl.StartAsync(functionAsync, scheduler);
         }
 
         /// <summary>
@@ -998,7 +998,7 @@ namespace System.Reactive.Linq
             if (functionAsync == null)
                 throw new ArgumentNullException(nameof(functionAsync));
 
-            return s_impl.StartAsync<TResult>(functionAsync);
+            return s_impl.StartAsync(functionAsync);
         }
 
         /// <summary>
@@ -1030,7 +1030,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.StartAsync<TResult>(functionAsync, scheduler);
+            return s_impl.StartAsync(functionAsync, scheduler);
         }
 
         #endregion
@@ -1203,7 +1203,7 @@ namespace System.Reactive.Linq
             if (functionAsync == null)
                 throw new ArgumentNullException(nameof(functionAsync));
 
-            return s_impl.FromAsync<TResult>(functionAsync);
+            return s_impl.FromAsync(functionAsync);
         }
 
         /// <summary>
@@ -1221,7 +1221,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.FromAsync<TResult>(functionAsync, scheduler);
+            return s_impl.FromAsync(functionAsync, scheduler);
         }
 
         /// <summary>
@@ -1238,7 +1238,7 @@ namespace System.Reactive.Linq
             if (functionAsync == null)
                 throw new ArgumentNullException(nameof(functionAsync));
 
-            return s_impl.FromAsync<TResult>(functionAsync);
+            return s_impl.FromAsync(functionAsync);
         }
 
         /// <summary>
@@ -1258,7 +1258,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.FromAsync<TResult>(functionAsync, scheduler);
+            return s_impl.FromAsync(functionAsync, scheduler);
         }
 
         #endregion
@@ -1353,7 +1353,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1371,7 +1371,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1387,7 +1387,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1406,7 +1406,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1423,7 +1423,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1443,7 +1443,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1461,7 +1461,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1482,7 +1482,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1501,7 +1501,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1523,7 +1523,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1543,7 +1543,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1566,7 +1566,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1587,7 +1587,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1611,7 +1611,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1633,7 +1633,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1658,7 +1658,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1681,7 +1681,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1707,7 +1707,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1731,7 +1731,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1758,7 +1758,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1783,7 +1783,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1811,7 +1811,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1837,7 +1837,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1866,7 +1866,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1893,7 +1893,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1923,7 +1923,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -1951,7 +1951,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -1982,7 +1982,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -2011,7 +2011,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -2043,7 +2043,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -2073,7 +2073,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -2106,7 +2106,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         /// <summary>
@@ -2137,7 +2137,7 @@ namespace System.Reactive.Linq
             if (function == null)
                 throw new ArgumentNullException(nameof(function));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TArg16, TResult>(function);
+            return s_impl.ToAsync(function);
         }
 
         /// <summary>
@@ -2171,7 +2171,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TArg16, TResult>(function, scheduler);
+            return s_impl.ToAsync(function, scheduler);
         }
 
         #endregion
@@ -2221,7 +2221,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2239,7 +2239,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2255,7 +2255,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2274,7 +2274,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2291,7 +2291,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2311,7 +2311,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2329,7 +2329,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2350,7 +2350,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2369,7 +2369,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2391,7 +2391,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2411,7 +2411,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2434,7 +2434,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2455,7 +2455,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2479,7 +2479,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2501,7 +2501,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2526,7 +2526,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2549,7 +2549,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2575,7 +2575,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2599,7 +2599,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2626,7 +2626,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2651,7 +2651,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2679,7 +2679,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2705,7 +2705,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2734,7 +2734,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2761,7 +2761,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2791,7 +2791,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2819,7 +2819,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2850,7 +2850,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2879,7 +2879,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2911,7 +2911,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         /// <summary>
@@ -2941,7 +2941,7 @@ namespace System.Reactive.Linq
             if (action == null)
                 throw new ArgumentNullException(nameof(action));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TArg16>(action);
+            return s_impl.ToAsync(action);
         }
 
         /// <summary>
@@ -2974,7 +2974,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToAsync<TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8, TArg9, TArg10, TArg11, TArg12, TArg13, TArg14, TArg15, TArg16>(action, scheduler);
+            return s_impl.ToAsync(action, scheduler);
         }
 
         #endregion

+ 4 - 5
Rx.NET/Source/src/System.Reactive/Linq/Observable.Awaiter.cs

@@ -3,7 +3,6 @@
 // See the LICENSE file in the project root for more information. 
 
 using System.Threading;
-using System.Reactive.Disposables;
 using System.Reactive.Subjects;
 
 namespace System.Reactive.Linq
@@ -23,7 +22,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.GetAwaiter<TSource>(source);
+            return s_impl.GetAwaiter(source);
         }
 
         /// <summary>
@@ -39,7 +38,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.GetAwaiter<TSource>(source);
+            return s_impl.GetAwaiter(source);
         }
 
         /// <summary>
@@ -56,7 +55,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.RunAsync<TSource>(source, cancellationToken);
+            return s_impl.RunAsync(source, cancellationToken);
         }
 
         /// <summary>
@@ -73,7 +72,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.RunAsync<TSource>(source, cancellationToken);
+            return s_impl.RunAsync(source, cancellationToken);
         }
     }
 }

+ 27 - 27
Rx.NET/Source/src/System.Reactive/Linq/Observable.Binding.cs

@@ -29,7 +29,7 @@ namespace System.Reactive.Linq
             if (subject == null)
                 throw new ArgumentNullException(nameof(subject));
 
-            return s_impl.Multicast<TSource, TResult>(source, subject);
+            return s_impl.Multicast(source, subject);
         }
 
         /// <summary>
@@ -54,7 +54,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Multicast<TSource, TIntermediate, TResult>(source, subjectSelector, selector);
+            return s_impl.Multicast(source, subjectSelector, selector);
         }
 
         #endregion
@@ -76,7 +76,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Publish<TSource>(source);
+            return s_impl.Publish(source);
         }
 
         /// <summary>
@@ -97,7 +97,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Publish<TSource, TResult>(source, selector);
+            return s_impl.Publish(source, selector);
         }
 
         /// <summary>
@@ -116,7 +116,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Publish<TSource>(source, initialValue);
+            return s_impl.Publish(source, initialValue);
         }
 
         /// <summary>
@@ -138,7 +138,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Publish<TSource, TResult>(source, selector, initialValue);
+            return s_impl.Publish(source, selector, initialValue);
         }
 
         #endregion
@@ -160,7 +160,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.PublishLast<TSource>(source);
+            return s_impl.PublishLast(source);
         }
 
         /// <summary>
@@ -181,7 +181,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.PublishLast<TSource, TResult>(source, selector);
+            return s_impl.PublishLast(source, selector);
         }
 
         #endregion
@@ -200,7 +200,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.RefCount<TSource>(source);
+            return s_impl.RefCount(source);
         }
 
         /// <summary>
@@ -219,7 +219,7 @@ namespace System.Reactive.Linq
             if (disconnectDelay < TimeSpan.Zero)
                 throw new ArgumentException("disconnectDelay");
 
-            return s_impl.RefCount<TSource>(source, disconnectDelay);
+            return s_impl.RefCount(source, disconnectDelay);
         }
 
         /// <summary>
@@ -242,7 +242,7 @@ namespace System.Reactive.Linq
             if (disconnectDelay < TimeSpan.Zero)
                 throw new ArgumentException("disconnectDelay");
 
-            return s_impl.RefCount<TSource>(source, disconnectDelay, scheduler);
+            return s_impl.RefCount(source, disconnectDelay, scheduler);
         }
 
         #endregion
@@ -286,7 +286,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Replay<TSource>(source);
+            return s_impl.Replay(source);
         }
 
         /// <summary>
@@ -307,7 +307,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Replay<TSource>(source, scheduler);
+            return s_impl.Replay(source, scheduler);
         }
 
         /// <summary>
@@ -328,7 +328,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Replay<TSource, TResult>(source, selector);
+            return s_impl.Replay(source, selector);
         }
 
         /// <summary>
@@ -352,7 +352,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Replay<TSource, TResult>(source, selector, scheduler);
+            return s_impl.Replay(source, selector, scheduler);
         }
 
         /// <summary>
@@ -374,7 +374,7 @@ namespace System.Reactive.Linq
             if (window < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(window));
 
-            return s_impl.Replay<TSource>(source, window);
+            return s_impl.Replay(source, window);
         }
 
         /// <summary>
@@ -399,7 +399,7 @@ namespace System.Reactive.Linq
             if (window < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(window));
 
-            return s_impl.Replay<TSource, TResult>(source, selector, window);
+            return s_impl.Replay(source, selector, window);
         }
 
         /// <summary>
@@ -424,7 +424,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Replay<TSource>(source, window, scheduler);
+            return s_impl.Replay(source, window, scheduler);
         }
 
         /// <summary>
@@ -452,7 +452,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Replay<TSource, TResult>(source, selector, window, scheduler);
+            return s_impl.Replay(source, selector, window, scheduler);
         }
 
         /// <summary>
@@ -477,7 +477,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Replay<TSource>(source, bufferSize, scheduler);
+            return s_impl.Replay(source, bufferSize, scheduler);
         }
 
         /// <summary>
@@ -505,7 +505,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Replay<TSource, TResult>(source, selector, bufferSize, scheduler);
+            return s_impl.Replay(source, selector, bufferSize, scheduler);
         }
 
         /// <summary>
@@ -527,7 +527,7 @@ namespace System.Reactive.Linq
             if (bufferSize < 0)
                 throw new ArgumentOutOfRangeException(nameof(bufferSize));
 
-            return s_impl.Replay<TSource>(source, bufferSize);
+            return s_impl.Replay(source, bufferSize);
         }
 
         /// <summary>
@@ -552,7 +552,7 @@ namespace System.Reactive.Linq
             if (bufferSize < 0)
                 throw new ArgumentOutOfRangeException(nameof(bufferSize));
 
-            return s_impl.Replay<TSource, TResult>(source, selector, bufferSize);
+            return s_impl.Replay(source, selector, bufferSize);
         }
 
         /// <summary>
@@ -578,7 +578,7 @@ namespace System.Reactive.Linq
             if (window < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(window));
 
-            return s_impl.Replay<TSource>(source, bufferSize, window);
+            return s_impl.Replay(source, bufferSize, window);
         }
 
         /// <summary>
@@ -607,7 +607,7 @@ namespace System.Reactive.Linq
             if (window < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(window));
 
-            return s_impl.Replay<TSource, TResult>(source, selector, bufferSize, window);
+            return s_impl.Replay(source, selector, bufferSize, window);
         }
 
         /// <summary>
@@ -636,7 +636,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Replay<TSource>(source, bufferSize, window, scheduler);
+            return s_impl.Replay(source, bufferSize, window, scheduler);
         }
 
         /// <summary>
@@ -668,7 +668,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Replay<TSource, TResult>(source, selector, bufferSize, window, scheduler);
+            return s_impl.Replay(source, selector, bufferSize, window, scheduler);
         }
 
         #endregion

+ 22 - 22
Rx.NET/Source/src/System.Reactive/Linq/Observable.Blocking.cs

@@ -22,7 +22,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Chunkify<TSource>(source);
+            return s_impl.Chunkify(source);
         }
 
         #endregion
@@ -48,7 +48,7 @@ namespace System.Reactive.Linq
             if (merge == null)
                 throw new ArgumentNullException(nameof(merge));
 
-            return s_impl.Collect<TSource, TResult>(source, newCollector, merge);
+            return s_impl.Collect(source, newCollector, merge);
         }
 
         /// <summary>
@@ -73,7 +73,7 @@ namespace System.Reactive.Linq
             if (getNewCollector == null)
                 throw new ArgumentNullException(nameof(getNewCollector));
 
-            return s_impl.Collect<TSource, TResult>(source, getInitialCollector, merge, getNewCollector);
+            return s_impl.Collect(source, getInitialCollector, merge, getNewCollector);
         }
 
         #endregion
@@ -97,7 +97,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.First<TSource>(source);
+            return s_impl.First(source);
         }
 
         /// <summary>
@@ -120,7 +120,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.First<TSource>(source, predicate);
+            return s_impl.First(source, predicate);
         }
 
         #endregion
@@ -143,7 +143,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.FirstOrDefault<TSource>(source);
+            return s_impl.FirstOrDefault(source);
         }
 
         /// <summary>
@@ -165,7 +165,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.FirstOrDefault<TSource>(source, predicate);
+            return s_impl.FirstOrDefault(source, predicate);
         }
 
         #endregion
@@ -190,7 +190,7 @@ namespace System.Reactive.Linq
             if (onNext == null)
                 throw new ArgumentNullException(nameof(onNext));
 
-            s_impl.ForEach<TSource>(source, onNext);
+            s_impl.ForEach(source, onNext);
         }
 
         /// <summary>
@@ -211,7 +211,7 @@ namespace System.Reactive.Linq
             if (onNext == null)
                 throw new ArgumentNullException(nameof(onNext));
 
-            s_impl.ForEach<TSource>(source, onNext);
+            s_impl.ForEach(source, onNext);
         }
 
         #endregion
@@ -230,7 +230,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.GetEnumerator<TSource>(source);
+            return s_impl.GetEnumerator(source);
         }
 
         #endregion
@@ -254,7 +254,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Last<TSource>(source);
+            return s_impl.Last(source);
         }
 
         /// <summary>
@@ -277,7 +277,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.Last<TSource>(source, predicate);
+            return s_impl.Last(source, predicate);
         }
 
         #endregion
@@ -300,7 +300,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.LastOrDefault<TSource>(source);
+            return s_impl.LastOrDefault(source);
         }
 
         /// <summary>
@@ -322,7 +322,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.LastOrDefault<TSource>(source, predicate);
+            return s_impl.LastOrDefault(source, predicate);
         }
 
         #endregion
@@ -341,7 +341,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Latest<TSource>(source);
+            return s_impl.Latest(source);
         }
 
         #endregion
@@ -362,7 +362,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.MostRecent<TSource>(source, initialValue);
+            return s_impl.MostRecent(source, initialValue);
         }
 
         #endregion
@@ -382,7 +382,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Next<TSource>(source);
+            return s_impl.Next(source);
         }
 
         #endregion
@@ -406,7 +406,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Single<TSource>(source);
+            return s_impl.Single(source);
         }
 
         /// <summary>
@@ -429,7 +429,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.Single<TSource>(source, predicate);
+            return s_impl.Single(source, predicate);
         }
 
         #endregion
@@ -453,7 +453,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.SingleOrDefault<TSource>(source);
+            return s_impl.SingleOrDefault(source);
         }
 
         /// <summary>
@@ -476,7 +476,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.SingleOrDefault<TSource>(source, predicate);
+            return s_impl.SingleOrDefault(source, predicate);
         }
 
         #endregion
@@ -497,7 +497,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Wait<TSource>(source);
+            return s_impl.Wait(source);
         }
 
         #endregion

+ 6 - 6
Rx.NET/Source/src/System.Reactive/Linq/Observable.Concurrency.cs

@@ -30,7 +30,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ObserveOn<TSource>(source, scheduler);
+            return s_impl.ObserveOn(source, scheduler);
         }
 
         /// <summary>
@@ -52,7 +52,7 @@ namespace System.Reactive.Linq
             if (context == null)
                 throw new ArgumentNullException(nameof(context));
 
-            return s_impl.ObserveOn<TSource>(source, context);
+            return s_impl.ObserveOn(source, context);
         }
 
         #endregion
@@ -79,7 +79,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.SubscribeOn<TSource>(source, scheduler);
+            return s_impl.SubscribeOn(source, scheduler);
         }
 
         /// <summary>
@@ -102,7 +102,7 @@ namespace System.Reactive.Linq
             if (context == null)
                 throw new ArgumentNullException(nameof(context));
 
-            return s_impl.SubscribeOn<TSource>(source, context);
+            return s_impl.SubscribeOn(source, context);
         }
 
         #endregion
@@ -126,7 +126,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Synchronize<TSource>(source);
+            return s_impl.Synchronize(source);
         }
 
         /// <summary>
@@ -145,7 +145,7 @@ namespace System.Reactive.Linq
             if (gate == null)
                 throw new ArgumentNullException(nameof(gate));
 
-            return s_impl.Synchronize<TSource>(source, gate);
+            return s_impl.Synchronize(source, gate);
         }
 
         #endregion

+ 7 - 7
Rx.NET/Source/src/System.Reactive/Linq/Observable.Conversions.cs

@@ -26,7 +26,7 @@ namespace System.Reactive.Linq
             if (observer == null)
                 throw new ArgumentNullException(nameof(observer));
 
-            return s_impl.Subscribe<TSource>(source, observer);
+            return s_impl.Subscribe(source, observer);
         }
 
         /// <summary>
@@ -47,7 +47,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Subscribe<TSource>(source, observer, scheduler);
+            return s_impl.Subscribe(source, observer, scheduler);
         }
 
         #endregion
@@ -66,7 +66,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.ToEnumerable<TSource>(source);
+            return s_impl.ToEnumerable(source);
         }
 
         #endregion
@@ -99,7 +99,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.ToEvent<TSource>(source);
+            return s_impl.ToEvent(source);
         }
 
         #endregion
@@ -118,7 +118,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.ToEventPattern<TEventArgs>(source);
+            return s_impl.ToEventPattern(source);
         }
 
         #endregion
@@ -137,7 +137,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.ToObservable<TSource>(source);
+            return s_impl.ToObservable(source);
         }
 
         /// <summary>
@@ -155,7 +155,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ToObservable<TSource>(source, scheduler);
+            return s_impl.ToObservable(source, scheduler);
         }
 
         #endregion

+ 23 - 24
Rx.NET/Source/src/System.Reactive/Linq/Observable.Creation.cs

@@ -2,7 +2,6 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System.Collections.Generic;
 using System.Reactive.Concurrency;
 using System.Threading;
 using System.Threading.Tasks;
@@ -30,7 +29,7 @@ namespace System.Reactive.Linq
             if (subscribe == null)
                 throw new ArgumentNullException(nameof(subscribe));
 
-            return s_impl.Create<TResult>(subscribe);
+            return s_impl.Create(subscribe);
         }
 
         /// <summary>
@@ -50,7 +49,7 @@ namespace System.Reactive.Linq
             if (subscribe == null)
                 throw new ArgumentNullException(nameof(subscribe));
 
-            return s_impl.Create<TResult>(subscribe);
+            return s_impl.Create(subscribe);
         }
 
         #endregion
@@ -72,7 +71,7 @@ namespace System.Reactive.Linq
             if (subscribeAsync == null)
                 throw new ArgumentNullException(nameof(subscribeAsync));
 
-            return s_impl.Create<TResult>(subscribeAsync);
+            return s_impl.Create(subscribeAsync);
         }
 
         /// <summary>
@@ -88,7 +87,7 @@ namespace System.Reactive.Linq
             if (subscribeAsync == null)
                 throw new ArgumentNullException(nameof(subscribeAsync));
 
-            return s_impl.Create<TResult>(subscribeAsync);
+            return s_impl.Create(subscribeAsync);
         }
 
         /// <summary>
@@ -106,7 +105,7 @@ namespace System.Reactive.Linq
             if (subscribeAsync == null)
                 throw new ArgumentNullException(nameof(subscribeAsync));
 
-            return s_impl.Create<TResult>(subscribeAsync);
+            return s_impl.Create(subscribeAsync);
         }
 
         /// <summary>
@@ -122,7 +121,7 @@ namespace System.Reactive.Linq
             if (subscribeAsync == null)
                 throw new ArgumentNullException(nameof(subscribeAsync));
 
-            return s_impl.Create<TResult>(subscribeAsync);
+            return s_impl.Create(subscribeAsync);
         }
 
         /// <summary>
@@ -140,7 +139,7 @@ namespace System.Reactive.Linq
             if (subscribeAsync == null)
                 throw new ArgumentNullException(nameof(subscribeAsync));
 
-            return s_impl.Create<TResult>(subscribeAsync);
+            return s_impl.Create(subscribeAsync);
         }
 
         /// <summary>
@@ -156,7 +155,7 @@ namespace System.Reactive.Linq
             if (subscribeAsync == null)
                 throw new ArgumentNullException(nameof(subscribeAsync));
 
-            return s_impl.Create<TResult>(subscribeAsync);
+            return s_impl.Create(subscribeAsync);
         }
 
         #endregion
@@ -175,7 +174,7 @@ namespace System.Reactive.Linq
             if (observableFactory == null)
                 throw new ArgumentNullException(nameof(observableFactory));
 
-            return s_impl.Defer<TResult>(observableFactory);
+            return s_impl.Defer(observableFactory);
         }
 
         #endregion
@@ -195,7 +194,7 @@ namespace System.Reactive.Linq
             if (observableFactoryAsync == null)
                 throw new ArgumentNullException(nameof(observableFactoryAsync));
 
-            return s_impl.Defer<TResult>(observableFactoryAsync);
+            return s_impl.Defer(observableFactoryAsync);
         }
 
         /// <summary>
@@ -213,7 +212,7 @@ namespace System.Reactive.Linq
             if (observableFactoryAsync == null)
                 throw new ArgumentNullException(nameof(observableFactoryAsync));
 
-            return s_impl.Defer<TResult>(observableFactoryAsync);
+            return s_impl.Defer(observableFactoryAsync);
         }
 
         #endregion
@@ -296,7 +295,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector);
+            return s_impl.Generate(initialState, condition, iterate, resultSelector);
         }
 
         /// <summary>
@@ -322,7 +321,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector, scheduler);
+            return s_impl.Generate(initialState, condition, iterate, resultSelector, scheduler);
         }
 
         #endregion
@@ -403,7 +402,7 @@ namespace System.Reactive.Linq
         /// <returns>An observable sequence that repeats the given element infinitely.</returns>
         public static IObservable<TResult> Repeat<TResult>(TResult value)
         {
-            return s_impl.Repeat<TResult>(value);
+            return s_impl.Repeat(value);
         }
 
         /// <summary>
@@ -419,7 +418,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Repeat<TResult>(value, scheduler);
+            return s_impl.Repeat(value, scheduler);
         }
 
         /// <summary>
@@ -435,7 +434,7 @@ namespace System.Reactive.Linq
             if (repeatCount < 0)
                 throw new ArgumentOutOfRangeException(nameof(repeatCount));
 
-            return s_impl.Repeat<TResult>(value, repeatCount);
+            return s_impl.Repeat(value, repeatCount);
         }
 
         /// <summary>
@@ -455,7 +454,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Repeat<TResult>(value, repeatCount, scheduler);
+            return s_impl.Repeat(value, repeatCount, scheduler);
         }
 
         #endregion
@@ -470,7 +469,7 @@ namespace System.Reactive.Linq
         /// <returns>An observable sequence containing the single specified element.</returns>
         public static IObservable<TResult> Return<TResult>(TResult value)
         {
-            return s_impl.Return<TResult>(value);
+            return s_impl.Return(value);
         }
 
         /// <summary>
@@ -486,7 +485,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Return<TResult>(value, scheduler);
+            return s_impl.Return(value, scheduler);
         }
 
         #endregion
@@ -569,7 +568,7 @@ namespace System.Reactive.Linq
         /// Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime.
         /// </summary>
         /// <typeparam name="TResult">The type of the elements in the produced sequence.</typeparam>
-        /// <typeparam name="TResource">The type of the resource used during the generation of the resulting sequence. Needs to implement <see cref="System.IDisposable"/>.</typeparam>
+        /// <typeparam name="TResource">The type of the resource used during the generation of the resulting sequence. Needs to implement <see cref="IDisposable"/>.</typeparam>
         /// <param name="resourceFactory">Factory function to obtain a resource object.</param>
         /// <param name="observableFactory">Factory function to obtain an observable sequence that depends on the obtained resource.</param>
         /// <returns>An observable sequence whose lifetime controls the lifetime of the dependent resource object.</returns>
@@ -581,7 +580,7 @@ namespace System.Reactive.Linq
             if (observableFactory == null)
                 throw new ArgumentNullException(nameof(observableFactory));
 
-            return s_impl.Using<TResult, TResource>(resourceFactory, observableFactory);
+            return s_impl.Using(resourceFactory, observableFactory);
         }
 
         #endregion
@@ -593,7 +592,7 @@ namespace System.Reactive.Linq
         /// The CancellationToken passed to the asynchronous methods is tied to the returned disposable subscription, allowing best-effort cancellation at any stage of the resource acquisition or usage.
         /// </summary>
         /// <typeparam name="TResult">The type of the elements in the produced sequence.</typeparam>
-        /// <typeparam name="TResource">The type of the resource used during the generation of the resulting sequence. Needs to implement <see cref="System.IDisposable"/>.</typeparam>
+        /// <typeparam name="TResource">The type of the resource used during the generation of the resulting sequence. Needs to implement <see cref="IDisposable"/>.</typeparam>
         /// <param name="resourceFactoryAsync">Asynchronous factory function to obtain a resource object.</param>
         /// <param name="observableFactoryAsync">Asynchronous factory function to obtain an observable sequence that depends on the obtained resource.</param>
         /// <returns>An observable sequence whose lifetime controls the lifetime of the dependent resource object.</returns>
@@ -607,7 +606,7 @@ namespace System.Reactive.Linq
             if (observableFactoryAsync == null)
                 throw new ArgumentNullException(nameof(observableFactoryAsync));
 
-            return s_impl.Using<TResult, TResource>(resourceFactoryAsync, observableFactoryAsync);
+            return s_impl.Using(resourceFactoryAsync, observableFactoryAsync);
         }
 
         #endregion

+ 38 - 39
Rx.NET/Source/src/System.Reactive/Linq/Observable.Events.cs

@@ -3,7 +3,6 @@
 // See the LICENSE file in the project root for more information. 
 
 using System.Reactive.Concurrency;
-using System.Threading;
 
 namespace System.Reactive.Linq
 {
@@ -43,7 +42,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<object>> FromEventPattern(Action<EventHandler> addHandler, Action<EventHandler> removeHandler)
         {
             if (addHandler == null)
@@ -79,7 +78,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<object>> FromEventPattern(Action<EventHandler> addHandler, Action<EventHandler> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)
@@ -126,7 +125,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TDelegate, TEventArgs>(Action<TDelegate> addHandler, Action<TDelegate> removeHandler)
         {
             if (addHandler == null)
@@ -164,7 +163,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TDelegate, TEventArgs>(Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)
@@ -208,7 +207,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TDelegate, TEventArgs>(Func<EventHandler<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler)
         {
             if (conversion == null)
@@ -218,7 +217,7 @@ namespace System.Reactive.Linq
             if (removeHandler == null)
                 throw new ArgumentNullException(nameof(removeHandler));
 
-            return s_impl.FromEventPattern<TDelegate, TEventArgs>(conversion, addHandler, removeHandler);
+            return s_impl.FromEventPattern(conversion, addHandler, removeHandler);
         }
 
         /// <summary>
@@ -249,7 +248,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TDelegate, TEventArgs>(Func<EventHandler<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler)
         {
             if (conversion == null)
@@ -261,7 +260,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.FromEventPattern<TDelegate, TEventArgs>(conversion, addHandler, removeHandler, scheduler);
+            return s_impl.FromEventPattern(conversion, addHandler, removeHandler, scheduler);
         }
 
         /// <summary>
@@ -295,7 +294,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TSender, TEventArgs>> FromEventPattern<TDelegate, TSender, TEventArgs>(Action<TDelegate> addHandler, Action<TDelegate> removeHandler)
         {
             if (addHandler == null)
@@ -334,7 +333,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TSender, TEventArgs>> FromEventPattern<TDelegate, TSender, TEventArgs>(Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)
@@ -379,7 +378,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TEventArgs>(Action<EventHandler<TEventArgs>> addHandler, Action<EventHandler<TEventArgs>> removeHandler)
         {
             if (addHandler == null)
@@ -387,7 +386,7 @@ namespace System.Reactive.Linq
             if (removeHandler == null)
                 throw new ArgumentNullException(nameof(removeHandler));
 
-            return s_impl.FromEventPattern<TEventArgs>(addHandler, removeHandler);
+            return s_impl.FromEventPattern(addHandler, removeHandler);
         }
 
         /// <summary>
@@ -415,7 +414,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TEventArgs>(Action<EventHandler<TEventArgs>> addHandler, Action<EventHandler<TEventArgs>> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)
@@ -425,7 +424,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.FromEventPattern<TEventArgs>(addHandler, removeHandler, scheduler);
+            return s_impl.FromEventPattern(addHandler, removeHandler, scheduler);
         }
 
         #endregion
@@ -466,7 +465,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<object>> FromEventPattern(object target, string eventName)
         {
             if (target == null)
@@ -504,7 +503,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<object>> FromEventPattern(object target, string eventName, IScheduler scheduler)
         {
             if (target == null)
@@ -548,7 +547,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TEventArgs>(object target, string eventName)
         {
             if (target == null)
@@ -587,7 +586,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TEventArgs>(object target, string eventName, IScheduler scheduler)
         {
             if (target == null)
@@ -632,7 +631,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TSender, TEventArgs>> FromEventPattern<TSender, TEventArgs>(object target, string eventName)
         {
             if (target == null)
@@ -672,7 +671,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TSender, TEventArgs>> FromEventPattern<TSender, TEventArgs>(object target, string eventName, IScheduler scheduler)
         {
             if (target == null)
@@ -719,7 +718,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<object>> FromEventPattern(Type type, string eventName)
         {
             if (type == null)
@@ -757,7 +756,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<object>> FromEventPattern(Type type, string eventName, IScheduler scheduler)
         {
             if (type == null)
@@ -801,7 +800,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TEventArgs>(Type type, string eventName)
         {
             if (type == null)
@@ -840,7 +839,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TEventArgs>(Type type, string eventName, IScheduler scheduler)
         {
             if (type == null)
@@ -885,7 +884,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TSender, TEventArgs>> FromEventPattern<TSender, TEventArgs>(Type type, string eventName)
         {
             if (type == null)
@@ -925,7 +924,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEventPattern"/>
+        /// <seealso cref="ToEventPattern"/>
         public static IObservable<EventPattern<TSender, TEventArgs>> FromEventPattern<TSender, TEventArgs>(Type type, string eventName, IScheduler scheduler)
         {
             if (type == null)
@@ -978,7 +977,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEvent"/>
+        /// <seealso cref="ToEvent"/>
         public static IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Func<Action<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler)
         {
             if (conversion == null)
@@ -988,7 +987,7 @@ namespace System.Reactive.Linq
             if (removeHandler == null)
                 throw new ArgumentNullException(nameof(removeHandler));
 
-            return s_impl.FromEvent<TDelegate, TEventArgs>(conversion, addHandler, removeHandler);
+            return s_impl.FromEvent(conversion, addHandler, removeHandler);
         }
 
         /// <summary>
@@ -1018,7 +1017,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEvent"/>
+        /// <seealso cref="ToEvent"/>
         public static IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Func<Action<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler)
         {
             if (conversion == null)
@@ -1030,7 +1029,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.FromEvent<TDelegate, TEventArgs>(conversion, addHandler, removeHandler, scheduler);
+            return s_impl.FromEvent(conversion, addHandler, removeHandler, scheduler);
         }
 
         /// <summary>
@@ -1062,7 +1061,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEvent"/>
+        /// <seealso cref="ToEvent"/>
         public static IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Action<TDelegate> addHandler, Action<TDelegate> removeHandler)
         {
             if (addHandler == null)
@@ -1099,7 +1098,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEvent"/>
+        /// <seealso cref="ToEvent"/>
         public static IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)
@@ -1144,7 +1143,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEvent"/>
+        /// <seealso cref="ToEvent"/>
         public static IObservable<TEventArgs> FromEvent<TEventArgs>(Action<Action<TEventArgs>> addHandler, Action<Action<TEventArgs>> removeHandler)
         {
             if (addHandler == null)
@@ -1152,7 +1151,7 @@ namespace System.Reactive.Linq
             if (removeHandler == null)
                 throw new ArgumentNullException(nameof(removeHandler));
 
-            return s_impl.FromEvent<TEventArgs>(addHandler, removeHandler);
+            return s_impl.FromEvent(addHandler, removeHandler);
         }
 
         /// <summary>
@@ -1180,7 +1179,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEvent"/>
+        /// <seealso cref="ToEvent"/>
         public static IObservable<TEventArgs> FromEvent<TEventArgs>(Action<Action<TEventArgs>> addHandler, Action<Action<TEventArgs>> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)
@@ -1190,7 +1189,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.FromEvent<TEventArgs>(addHandler, removeHandler, scheduler);
+            return s_impl.FromEvent(addHandler, removeHandler, scheduler);
         }
 
         #endregion
@@ -1224,7 +1223,7 @@ namespace System.Reactive.Linq
         /// more concise and easier to understand.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEvent"/>
+        /// <seealso cref="ToEvent"/>
         public static IObservable<Unit> FromEvent(Action<Action> addHandler, Action<Action> removeHandler)
         {
             if (addHandler == null)
@@ -1259,7 +1258,7 @@ namespace System.Reactive.Linq
         /// parameter. For more information, see the remarks section on those overloads.
         /// </para>
         /// </remarks>
-        /// <seealso cref="Observable.ToEvent"/>
+        /// <seealso cref="ToEvent"/>
         public static IObservable<Unit> FromEvent(Action<Action> addHandler, Action<Action> removeHandler, IScheduler scheduler)
         {
             if (addHandler == null)

+ 14 - 14
Rx.NET/Source/src/System.Reactive/Linq/Observable.Imperative.cs

@@ -29,7 +29,7 @@ namespace System.Reactive.Linq
             if (onNext == null)
                 throw new ArgumentNullException(nameof(onNext));
 
-            return s_impl.ForEachAsync<TSource>(source, onNext);
+            return s_impl.ForEachAsync(source, onNext);
         }
 
         /// <summary>
@@ -50,7 +50,7 @@ namespace System.Reactive.Linq
             if (onNext == null)
                 throw new ArgumentNullException(nameof(onNext));
 
-            return s_impl.ForEachAsync<TSource>(source, onNext, cancellationToken);
+            return s_impl.ForEachAsync(source, onNext, cancellationToken);
         }
 
         /// <summary>
@@ -69,7 +69,7 @@ namespace System.Reactive.Linq
             if (onNext == null)
                 throw new ArgumentNullException(nameof(onNext));
 
-            return s_impl.ForEachAsync<TSource>(source, onNext);
+            return s_impl.ForEachAsync(source, onNext);
         }
 
         /// <summary>
@@ -90,7 +90,7 @@ namespace System.Reactive.Linq
             if (onNext == null)
                 throw new ArgumentNullException(nameof(onNext));
 
-            return s_impl.ForEachAsync<TSource>(source, onNext, cancellationToken);
+            return s_impl.ForEachAsync(source, onNext, cancellationToken);
         }
 
         #endregion
@@ -116,7 +116,7 @@ namespace System.Reactive.Linq
             if (defaultSource == null)
                 throw new ArgumentNullException(nameof(defaultSource));
 
-            return s_impl.Case<TValue, TResult>(selector, sources, defaultSource);
+            return s_impl.Case(selector, sources, defaultSource);
         }
 
         /// <summary>
@@ -138,7 +138,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Case<TValue, TResult>(selector, sources, scheduler);
+            return s_impl.Case(selector, sources, scheduler);
         }
 
         /// <summary>
@@ -157,7 +157,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Case<TValue, TResult>(selector, sources);
+            return s_impl.Case(selector, sources);
         }
 
         #endregion
@@ -179,7 +179,7 @@ namespace System.Reactive.Linq
             if (condition == null)
                 throw new ArgumentNullException(nameof(condition));
 
-            return s_impl.DoWhile<TSource>(source, condition);
+            return s_impl.DoWhile(source, condition);
         }
 
         #endregion
@@ -202,7 +202,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.For<TSource, TResult>(source, resultSelector);
+            return s_impl.For(source, resultSelector);
         }
 
         #endregion
@@ -227,7 +227,7 @@ namespace System.Reactive.Linq
             if (elseSource == null)
                 throw new ArgumentNullException(nameof(elseSource));
 
-            return s_impl.If<TResult>(condition, thenSource, elseSource);
+            return s_impl.If(condition, thenSource, elseSource);
         }
 
         /// <summary>
@@ -245,7 +245,7 @@ namespace System.Reactive.Linq
             if (thenSource == null)
                 throw new ArgumentNullException(nameof(thenSource));
 
-            return s_impl.If<TResult>(condition, thenSource);
+            return s_impl.If(condition, thenSource);
         }
 
         /// <summary>
@@ -266,7 +266,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.If<TResult>(condition, thenSource, scheduler);
+            return s_impl.If(condition, thenSource, scheduler);
         }
 
         #endregion
@@ -288,9 +288,9 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.While<TSource>(condition, source);
+            return s_impl.While(condition, source);
         }
 
         #endregion
     }
-}
+}

+ 4 - 5
Rx.NET/Source/src/System.Reactive/Linq/Observable.Joins.cs

@@ -3,7 +3,6 @@
 // See the LICENSE file in the project root for more information. 
 
 using System.Collections.Generic;
-using System.Reactive.Disposables;
 using System.Reactive.Joins;
 
 namespace System.Reactive.Linq
@@ -28,7 +27,7 @@ namespace System.Reactive.Linq
             if (right == null)
                 throw new ArgumentNullException(nameof(right));
 
-            return s_impl.And<TLeft, TRight>(left, right);
+            return s_impl.And(left, right);
         }
 
         #endregion
@@ -51,7 +50,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Then<TSource, TResult>(source, selector);
+            return s_impl.Then(source, selector);
         }
 
         #endregion
@@ -70,7 +69,7 @@ namespace System.Reactive.Linq
             if (plans == null)
                 throw new ArgumentNullException(nameof(plans));
 
-            return s_impl.When<TResult>(plans);
+            return s_impl.When(plans);
         }
 
         /// <summary>
@@ -85,7 +84,7 @@ namespace System.Reactive.Linq
             if (plans == null)
                 throw new ArgumentNullException(nameof(plans));
 
-            return s_impl.When<TResult>(plans);
+            return s_impl.When(plans);
         }
 
         #endregion

+ 75 - 75
Rx.NET/Source/src/System.Reactive/Linq/Observable.Multiple.cs

@@ -29,7 +29,7 @@ namespace System.Reactive.Linq
             if (second == null)
                 throw new ArgumentNullException(nameof(second));
 
-            return s_impl.Amb<TSource>(first, second);
+            return s_impl.Amb(first, second);
         }
 
         /// <summary>
@@ -45,7 +45,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Amb<TSource>(sources);
+            return s_impl.Amb(sources);
         }
 
         /// <summary>
@@ -61,7 +61,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Amb<TSource>(sources);
+            return s_impl.Amb(sources);
         }
 
         #endregion
@@ -84,7 +84,7 @@ namespace System.Reactive.Linq
             if (bufferClosingSelector == null)
                 throw new ArgumentNullException(nameof(bufferClosingSelector));
 
-            return s_impl.Buffer<TSource, TBufferClosing>(source, bufferClosingSelector);
+            return s_impl.Buffer(source, bufferClosingSelector);
         }
 
         /// <summary>
@@ -107,7 +107,7 @@ namespace System.Reactive.Linq
             if (bufferClosingSelector == null)
                 throw new ArgumentNullException(nameof(bufferClosingSelector));
 
-            return s_impl.Buffer<TSource, TBufferOpening, TBufferClosing>(source, bufferOpenings, bufferClosingSelector);
+            return s_impl.Buffer(source, bufferOpenings, bufferClosingSelector);
         }
 
         /// <summary>
@@ -126,7 +126,7 @@ namespace System.Reactive.Linq
             if (bufferBoundaries == null)
                 throw new ArgumentNullException(nameof(bufferBoundaries));
 
-            return s_impl.Buffer<TSource, TBufferBoundary>(source, bufferBoundaries);
+            return s_impl.Buffer(source, bufferBoundaries);
         }
 
         #endregion
@@ -137,7 +137,7 @@ namespace System.Reactive.Linq
         /// Continues an observable sequence that is terminated by an exception of the specified type with the observable sequence produced by the handler.
         /// </summary>
         /// <typeparam name="TSource">The type of the elements in the source sequence and sequences returned by the exception handler function.</typeparam>
-        /// <typeparam name="TException">The type of the exception to catch and handle. Needs to derive from <see cref="System.Exception"/>.</typeparam>
+        /// <typeparam name="TException">The type of the exception to catch and handle. Needs to derive from <see cref="Exception"/>.</typeparam>
         /// <param name="source">Source sequence.</param>
         /// <param name="handler">Exception handler function, producing another observable sequence.</param>
         /// <returns>An observable sequence containing the source sequence's elements, followed by the elements produced by the handler's resulting observable sequence in case an exception occurred.</returns>
@@ -149,7 +149,7 @@ namespace System.Reactive.Linq
             if (handler == null)
                 throw new ArgumentNullException(nameof(handler));
 
-            return s_impl.Catch<TSource, TException>(source, handler);
+            return s_impl.Catch(source, handler);
         }
 
         /// <summary>
@@ -167,7 +167,7 @@ namespace System.Reactive.Linq
             if (second == null)
                 throw new ArgumentNullException(nameof(second));
 
-            return s_impl.Catch<TSource>(first, second);
+            return s_impl.Catch(first, second);
         }
 
         /// <summary>
@@ -182,7 +182,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Catch<TSource>(sources);
+            return s_impl.Catch(sources);
         }
 
         /// <summary>
@@ -197,7 +197,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Catch<TSource>(sources);
+            return s_impl.Catch(sources);
         }
 
         #endregion
@@ -224,7 +224,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TResult>(first, second, resultSelector);
+            return s_impl.CombineLatest(first, second, resultSelector);
         }
 
         /* The following code is generated by a tool checked in to $/.../Source/Tools/CodeGenerators. */
@@ -255,7 +255,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TResult>(source1, source2, source3, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, resultSelector);
         }
 
         /// <summary>
@@ -286,7 +286,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TResult>(source1, source2, source3, source4, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, resultSelector);
         }
 
         /// <summary>
@@ -321,7 +321,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TResult>(source1, source2, source3, source4, source5, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, resultSelector);
         }
 
         /// <summary>
@@ -360,7 +360,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult>(source1, source2, source3, source4, source5, source6, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, resultSelector);
         }
 
         /// <summary>
@@ -403,7 +403,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult>(source1, source2, source3, source4, source5, source6, source7, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, source7, resultSelector);
         }
 
         /// <summary>
@@ -450,7 +450,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, source7, source8, resultSelector);
         }
 
         /// <summary>
@@ -501,7 +501,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, source7, source8, source9, resultSelector);
         }
 
         /// <summary>
@@ -556,7 +556,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, resultSelector);
         }
 
         /// <summary>
@@ -615,7 +615,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, resultSelector);
         }
 
         /// <summary>
@@ -678,7 +678,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, resultSelector);
         }
 
         /// <summary>
@@ -745,7 +745,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, resultSelector);
         }
 
         /// <summary>
@@ -816,7 +816,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, resultSelector);
         }
 
         /// <summary>
@@ -891,7 +891,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, source15, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, source15, resultSelector);
         }
 
         /// <summary>
@@ -970,7 +970,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, source15, source16, resultSelector);
+            return s_impl.CombineLatest(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, source15, source16, resultSelector);
         }
 
         #endregion
@@ -991,7 +991,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.CombineLatest<TSource, TResult>(sources, resultSelector);
+            return s_impl.CombineLatest(sources, resultSelector);
         }
 
         /// <summary>
@@ -1006,7 +1006,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.CombineLatest<TSource>(sources);
+            return s_impl.CombineLatest(sources);
         }
 
         /// <summary>
@@ -1021,7 +1021,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.CombineLatest<TSource>(sources);
+            return s_impl.CombineLatest(sources);
         }
 
         #endregion
@@ -1043,7 +1043,7 @@ namespace System.Reactive.Linq
             if (second == null)
                 throw new ArgumentNullException(nameof(second));
 
-            return s_impl.Concat<TSource>(first, second);
+            return s_impl.Concat(first, second);
         }
 
         /// <summary>
@@ -1058,7 +1058,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Concat<TSource>(sources);
+            return s_impl.Concat(sources);
         }
 
         /// <summary>
@@ -1073,7 +1073,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Concat<TSource>(sources);
+            return s_impl.Concat(sources);
         }
 
         /// <summary>
@@ -1088,7 +1088,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Concat<TSource>(sources);
+            return s_impl.Concat(sources);
         }
 
         /// <summary>
@@ -1104,7 +1104,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Concat<TSource>(sources);
+            return s_impl.Concat(sources);
         }
 
         #endregion
@@ -1123,7 +1123,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Merge<TSource>(sources);
+            return s_impl.Merge(sources);
         }
 
         /// <summary>
@@ -1139,7 +1139,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Merge<TSource>(sources);
+            return s_impl.Merge(sources);
         }
 
         /// <summary>
@@ -1158,7 +1158,7 @@ namespace System.Reactive.Linq
             if (maxConcurrent <= 0)
                 throw new ArgumentOutOfRangeException(nameof(maxConcurrent));
 
-            return s_impl.Merge<TSource>(sources, maxConcurrent);
+            return s_impl.Merge(sources, maxConcurrent);
         }
 
         /// <summary>
@@ -1177,7 +1177,7 @@ namespace System.Reactive.Linq
             if (maxConcurrent <= 0)
                 throw new ArgumentOutOfRangeException(nameof(maxConcurrent));
 
-            return s_impl.Merge<TSource>(sources, maxConcurrent);
+            return s_impl.Merge(sources, maxConcurrent);
         }
 
         /// <summary>
@@ -1199,7 +1199,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Merge<TSource>(sources, maxConcurrent, scheduler);
+            return s_impl.Merge(sources, maxConcurrent, scheduler);
         }
 
         /// <summary>
@@ -1217,7 +1217,7 @@ namespace System.Reactive.Linq
             if (second == null)
                 throw new ArgumentNullException(nameof(second));
 
-            return s_impl.Merge<TSource>(first, second);
+            return s_impl.Merge(first, second);
         }
 
         /// <summary>
@@ -1238,7 +1238,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Merge<TSource>(first, second, scheduler);
+            return s_impl.Merge(first, second, scheduler);
         }
 
         /// <summary>
@@ -1253,7 +1253,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Merge<TSource>(sources);
+            return s_impl.Merge(sources);
         }
 
         /// <summary>
@@ -1271,7 +1271,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Merge<TSource>(scheduler, sources);
+            return s_impl.Merge(scheduler, sources);
         }
 
         /// <summary>
@@ -1286,7 +1286,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Merge<TSource>(sources);
+            return s_impl.Merge(sources);
         }
 
         /// <summary>
@@ -1304,7 +1304,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Merge<TSource>(sources, scheduler);
+            return s_impl.Merge(sources, scheduler);
         }
 
         #endregion
@@ -1326,7 +1326,7 @@ namespace System.Reactive.Linq
             if (second == null)
                 throw new ArgumentNullException(nameof(second));
 
-            return s_impl.OnErrorResumeNext<TSource>(first, second);
+            return s_impl.OnErrorResumeNext(first, second);
         }
 
         /// <summary>
@@ -1341,7 +1341,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.OnErrorResumeNext<TSource>(sources);
+            return s_impl.OnErrorResumeNext(sources);
         }
 
         /// <summary>
@@ -1356,7 +1356,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.OnErrorResumeNext<TSource>(sources);
+            return s_impl.OnErrorResumeNext(sources);
         }
 
         #endregion
@@ -1381,7 +1381,7 @@ namespace System.Reactive.Linq
             if (other == null)
                 throw new ArgumentNullException(nameof(other));
 
-            return s_impl.SkipUntil<TSource, TOther>(source, other);
+            return s_impl.SkipUntil(source, other);
         }
 
         #endregion
@@ -1403,7 +1403,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Switch<TSource>(sources);
+            return s_impl.Switch(sources);
         }
 
         /// <summary>
@@ -1421,7 +1421,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Switch<TSource>(sources);
+            return s_impl.Switch(sources);
         }
 
         #endregion
@@ -1444,7 +1444,7 @@ namespace System.Reactive.Linq
             if (other == null)
                 throw new ArgumentNullException(nameof(other));
 
-            return s_impl.TakeUntil<TSource, TOther>(source, other);
+            return s_impl.TakeUntil(source, other);
         }
 
         /// <summary>
@@ -1496,7 +1496,7 @@ namespace System.Reactive.Linq
             if (windowClosingSelector == null)
                 throw new ArgumentNullException(nameof(windowClosingSelector));
 
-            return s_impl.Window<TSource, TWindowClosing>(source, windowClosingSelector);
+            return s_impl.Window(source, windowClosingSelector);
         }
 
         /// <summary>
@@ -1519,7 +1519,7 @@ namespace System.Reactive.Linq
             if (windowClosingSelector == null)
                 throw new ArgumentNullException(nameof(windowClosingSelector));
 
-            return s_impl.Window<TSource, TWindowOpening, TWindowClosing>(source, windowOpenings, windowClosingSelector);
+            return s_impl.Window(source, windowOpenings, windowClosingSelector);
         }
 
         /// <summary>
@@ -1538,7 +1538,7 @@ namespace System.Reactive.Linq
             if (windowBoundaries == null)
                 throw new ArgumentNullException(nameof(windowBoundaries));
 
-            return s_impl.Window<TSource, TWindowBoundary>(source, windowBoundaries);
+            return s_impl.Window(source, windowBoundaries);
         }
 
         #endregion
@@ -1567,7 +1567,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.WithLatestFrom<TFirst, TSecond, TResult>(first, second, resultSelector);
+            return s_impl.WithLatestFrom(first, second, resultSelector);
         }
 
         #endregion
@@ -1594,7 +1594,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TResult>(first, second, resultSelector);
+            return s_impl.Zip(first, second, resultSelector);
         }
 
         /* The following code is generated by a tool checked in to $/.../Source/Tools/CodeGenerators. */
@@ -1625,7 +1625,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TResult>(source1, source2, source3, resultSelector);
+            return s_impl.Zip(source1, source2, source3, resultSelector);
         }
 
         /// <summary>
@@ -1656,7 +1656,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TResult>(source1, source2, source3, source4, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, resultSelector);
         }
 
         /// <summary>
@@ -1691,7 +1691,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TResult>(source1, source2, source3, source4, source5, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, resultSelector);
         }
 
         /// <summary>
@@ -1730,7 +1730,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TResult>(source1, source2, source3, source4, source5, source6, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, resultSelector);
         }
 
         /// <summary>
@@ -1773,7 +1773,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TResult>(source1, source2, source3, source4, source5, source6, source7, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, resultSelector);
         }
 
         /// <summary>
@@ -1820,7 +1820,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, resultSelector);
         }
 
         /// <summary>
@@ -1871,7 +1871,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, resultSelector);
         }
 
         /// <summary>
@@ -1926,7 +1926,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, resultSelector);
         }
 
         /// <summary>
@@ -1985,7 +1985,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, resultSelector);
         }
 
         /// <summary>
@@ -2048,7 +2048,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, resultSelector);
         }
 
         /// <summary>
@@ -2115,7 +2115,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, resultSelector);
         }
 
         /// <summary>
@@ -2186,7 +2186,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, resultSelector);
         }
 
         /// <summary>
@@ -2261,7 +2261,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, source15, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, source15, resultSelector);
         }
 
         /// <summary>
@@ -2340,7 +2340,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TSource3, TSource4, TSource5, TSource6, TSource7, TSource8, TSource9, TSource10, TSource11, TSource12, TSource13, TSource14, TSource15, TSource16, TResult>(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, source15, source16, resultSelector);
+            return s_impl.Zip(source1, source2, source3, source4, source5, source6, source7, source8, source9, source10, source11, source12, source13, source14, source15, source16, resultSelector);
         }
 
         #endregion
@@ -2361,7 +2361,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource, TResult>(sources, resultSelector);
+            return s_impl.Zip(sources, resultSelector);
         }
 
         /// <summary>
@@ -2376,7 +2376,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Zip<TSource>(sources);
+            return s_impl.Zip(sources);
         }
 
         /// <summary>
@@ -2391,7 +2391,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.Zip<TSource>(sources);
+            return s_impl.Zip(sources);
         }
 
         /// <summary>
@@ -2414,7 +2414,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Zip<TSource1, TSource2, TResult>(first, second, resultSelector);
+            return s_impl.Zip(first, second, resultSelector);
         }
 
         #endregion

+ 37 - 36
Rx.NET/Source/src/System.Reactive/Linq/Observable.Single.cs

@@ -24,7 +24,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Append<TSource>(source, value);
+            return s_impl.Append(source, value);
         }
 
         /// <summary>
@@ -43,7 +43,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Append<TSource>(source, value, scheduler);
+            return s_impl.Append(source, value, scheduler);
         }
 
         #endregion
@@ -62,7 +62,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.AsObservable<TSource>(source);
+            return s_impl.AsObservable(source);
         }
 
         #endregion
@@ -85,7 +85,7 @@ namespace System.Reactive.Linq
             if (count <= 0)
                 throw new ArgumentOutOfRangeException(nameof(count));
 
-            return s_impl.Buffer<TSource>(source, count);
+            return s_impl.Buffer(source, count);
         }
 
         /// <summary>
@@ -107,7 +107,7 @@ namespace System.Reactive.Linq
             if (skip <= 0)
                 throw new ArgumentOutOfRangeException(nameof(skip));
 
-            return s_impl.Buffer<TSource>(source, count, skip);
+            return s_impl.Buffer(source, count, skip);
         }
 
         #endregion
@@ -126,7 +126,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Dematerialize<TSource>(source);
+            return s_impl.Dematerialize(source);
         }
 
         #endregion
@@ -145,7 +145,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.DistinctUntilChanged<TSource>(source);
+            return s_impl.DistinctUntilChanged(source);
         }
 
         /// <summary>
@@ -163,7 +163,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.DistinctUntilChanged<TSource>(source, comparer);
+            return s_impl.DistinctUntilChanged(source, comparer);
         }
 
         /// <summary>
@@ -182,7 +182,7 @@ namespace System.Reactive.Linq
             if (keySelector == null)
                 throw new ArgumentNullException(nameof(keySelector));
 
-            return s_impl.DistinctUntilChanged<TSource, TKey>(source, keySelector);
+            return s_impl.DistinctUntilChanged(source, keySelector);
         }
 
         /// <summary>
@@ -204,7 +204,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.DistinctUntilChanged<TSource, TKey>(source, keySelector, comparer);
+            return s_impl.DistinctUntilChanged(source, keySelector, comparer);
         }
 
         #endregion
@@ -227,7 +227,7 @@ namespace System.Reactive.Linq
             if (onNext == null)
                 throw new ArgumentNullException(nameof(onNext));
 
-            return s_impl.Do<TSource>(source, onNext);
+            return s_impl.Do(source, onNext);
         }
 
         /// <summary>
@@ -249,7 +249,7 @@ namespace System.Reactive.Linq
             if (onCompleted == null)
                 throw new ArgumentNullException(nameof(onCompleted));
 
-            return s_impl.Do<TSource>(source, onNext, onCompleted);
+            return s_impl.Do(source, onNext, onCompleted);
         }
 
         /// <summary>
@@ -271,7 +271,7 @@ namespace System.Reactive.Linq
             if (onError == null)
                 throw new ArgumentNullException(nameof(onError));
 
-            return s_impl.Do<TSource>(source, onNext, onError);
+            return s_impl.Do(source, onNext, onError);
         }
 
         /// <summary>
@@ -296,7 +296,7 @@ namespace System.Reactive.Linq
             if (onCompleted == null)
                 throw new ArgumentNullException(nameof(onCompleted));
 
-            return s_impl.Do<TSource>(source, onNext, onError, onCompleted);
+            return s_impl.Do(source, onNext, onError, onCompleted);
         }
 
         /// <summary>
@@ -315,7 +315,7 @@ namespace System.Reactive.Linq
             if (observer == null)
                 throw new ArgumentNullException(nameof(observer));
 
-            return s_impl.Do<TSource>(source, observer);
+            return s_impl.Do(source, observer);
         }
 
         #endregion
@@ -337,7 +337,7 @@ namespace System.Reactive.Linq
             if (finallyAction == null)
                 throw new ArgumentNullException(nameof(finallyAction));
 
-            return s_impl.Finally<TSource>(source, finallyAction);
+            return s_impl.Finally(source, finallyAction);
         }
 
         #endregion
@@ -356,7 +356,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.IgnoreElements<TSource>(source);
+            return s_impl.IgnoreElements(source);
         }
 
         #endregion
@@ -375,7 +375,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Materialize<TSource>(source);
+            return s_impl.Materialize(source);
         }
 
         #endregion
@@ -395,7 +395,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Prepend<TSource>(source, value);
+            return s_impl.Prepend(source, value);
         }
 
         /// <summary>
@@ -414,10 +414,11 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Prepend<TSource>(source, value, scheduler);
+            return s_impl.Prepend(source, value, scheduler);
         }
 
         #endregion
+
         #region + Repeat +
 
         /// <summary>
@@ -432,7 +433,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Repeat<TSource>(source);
+            return s_impl.Repeat(source);
         }
 
         /// <summary>
@@ -451,7 +452,7 @@ namespace System.Reactive.Linq
             if (repeatCount < 0)
                 throw new ArgumentOutOfRangeException(nameof(repeatCount));
 
-            return s_impl.Repeat<TSource>(source, repeatCount);
+            return s_impl.Repeat(source, repeatCount);
         }
 
         /// <summary>
@@ -495,7 +496,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Retry<TSource>(source);
+            return s_impl.Retry(source);
         }
 
         /// <summary>
@@ -514,7 +515,7 @@ namespace System.Reactive.Linq
             if (retryCount < 0)
                 throw new ArgumentOutOfRangeException(nameof(retryCount));
 
-            return s_impl.Retry<TSource>(source, retryCount);
+            return s_impl.Retry(source, retryCount);
         }
 
         /// <summary>
@@ -564,7 +565,7 @@ namespace System.Reactive.Linq
             if (accumulator == null)
                 throw new ArgumentNullException(nameof(accumulator));
 
-            return s_impl.Scan<TSource, TAccumulate>(source, seed, accumulator);
+            return s_impl.Scan(source, seed, accumulator);
         }
 
         /// <summary>
@@ -583,7 +584,7 @@ namespace System.Reactive.Linq
             if (accumulator == null)
                 throw new ArgumentNullException(nameof(accumulator));
 
-            return s_impl.Scan<TSource>(source, accumulator);
+            return s_impl.Scan(source, accumulator);
         }
 
         #endregion
@@ -610,7 +611,7 @@ namespace System.Reactive.Linq
             if (count < 0)
                 throw new ArgumentOutOfRangeException(nameof(count));
 
-            return s_impl.SkipLast<TSource>(source, count);
+            return s_impl.SkipLast(source, count);
         }
 
         #endregion
@@ -632,7 +633,7 @@ namespace System.Reactive.Linq
             if (values == null)
                 throw new ArgumentNullException(nameof(values));
 
-            return s_impl.StartWith<TSource>(source, values);
+            return s_impl.StartWith(source, values);
         }
 
         /// <summary>
@@ -650,7 +651,7 @@ namespace System.Reactive.Linq
             if (values == null)
                 throw new ArgumentNullException(nameof(values));
 
-            return s_impl.StartWith<TSource>(source, values);
+            return s_impl.StartWith(source, values);
         }
 
         /// <summary>
@@ -671,7 +672,7 @@ namespace System.Reactive.Linq
             if (values == null)
                 throw new ArgumentNullException(nameof(values));
 
-            return s_impl.StartWith<TSource>(source, scheduler, values);
+            return s_impl.StartWith(source, scheduler, values);
         }
 
         /// <summary>
@@ -697,7 +698,7 @@ namespace System.Reactive.Linq
             if (values == null)
                 throw new ArgumentNullException(nameof(values));
 
-            return s_impl.StartWith<TSource>(source, scheduler, values);
+            return s_impl.StartWith(source, scheduler, values);
         }
 
         #endregion
@@ -724,7 +725,7 @@ namespace System.Reactive.Linq
             if (count < 0)
                 throw new ArgumentOutOfRangeException(nameof(count));
 
-            return s_impl.TakeLast<TSource>(source, count);
+            return s_impl.TakeLast(source, count);
         }
 
         /// <summary>
@@ -750,7 +751,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.TakeLast<TSource>(source, count, scheduler);
+            return s_impl.TakeLast(source, count, scheduler);
         }
 
         #endregion
@@ -777,7 +778,7 @@ namespace System.Reactive.Linq
             if (count < 0)
                 throw new ArgumentOutOfRangeException(nameof(count));
 
-            return s_impl.TakeLastBuffer<TSource>(source, count);
+            return s_impl.TakeLastBuffer(source, count);
         }
 
         #endregion
@@ -800,7 +801,7 @@ namespace System.Reactive.Linq
             if (count <= 0)
                 throw new ArgumentOutOfRangeException(nameof(count));
 
-            return s_impl.Window<TSource>(source, count);
+            return s_impl.Window(source, count);
         }
 
         /// <summary>
@@ -822,7 +823,7 @@ namespace System.Reactive.Linq
             if (skip <= 0)
                 throw new ArgumentOutOfRangeException(nameof(skip));
 
-            return s_impl.Window<TSource>(source, count, skip);
+            return s_impl.Window(source, count, skip);
         }
 
         #endregion

+ 54 - 54
Rx.NET/Source/src/System.Reactive/Linq/Observable.StandardSequenceOperators.cs

@@ -45,7 +45,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.DefaultIfEmpty<TSource>(source);
+            return s_impl.DefaultIfEmpty(source);
         }
 
         /// <summary>
@@ -61,7 +61,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.DefaultIfEmpty<TSource>(source, defaultValue);
+            return s_impl.DefaultIfEmpty(source, defaultValue);
         }
 
         #endregion
@@ -81,7 +81,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Distinct<TSource>(source);
+            return s_impl.Distinct(source);
         }
 
         /// <summary>
@@ -100,7 +100,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.Distinct<TSource>(source, comparer);
+            return s_impl.Distinct(source, comparer);
         }
 
         /// <summary>
@@ -120,7 +120,7 @@ namespace System.Reactive.Linq
             if (keySelector == null)
                 throw new ArgumentNullException(nameof(keySelector));
 
-            return s_impl.Distinct<TSource, TKey>(source, keySelector);
+            return s_impl.Distinct(source, keySelector);
         }
 
         /// <summary>
@@ -143,7 +143,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.Distinct<TSource, TKey>(source, keySelector, comparer);
+            return s_impl.Distinct(source, keySelector, comparer);
         }
 
         #endregion
@@ -166,7 +166,7 @@ namespace System.Reactive.Linq
             if (keySelector == null)
                 throw new ArgumentNullException(nameof(keySelector));
 
-            return s_impl.GroupBy<TSource, TKey>(source, keySelector);
+            return s_impl.GroupBy(source, keySelector);
         }
 
         /// <summary>
@@ -188,7 +188,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.GroupBy<TSource, TKey>(source, keySelector, comparer);
+            return s_impl.GroupBy(source, keySelector, comparer);
         }
 
         /// <summary>
@@ -211,7 +211,7 @@ namespace System.Reactive.Linq
             if (elementSelector == null)
                 throw new ArgumentNullException(nameof(elementSelector));
 
-            return s_impl.GroupBy<TSource, TKey, TElement>(source, keySelector, elementSelector);
+            return s_impl.GroupBy(source, keySelector, elementSelector);
         }
 
         /// <summary>
@@ -237,7 +237,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.GroupBy<TSource, TKey, TElement>(source, keySelector, elementSelector, comparer);
+            return s_impl.GroupBy(source, keySelector, elementSelector, comparer);
         }
 
         /// <summary>
@@ -260,7 +260,7 @@ namespace System.Reactive.Linq
             if (capacity < 0)
                 throw new ArgumentOutOfRangeException(nameof(capacity));
 
-            return s_impl.GroupBy<TSource, TKey>(source, keySelector, capacity);
+            return s_impl.GroupBy(source, keySelector, capacity);
         }
 
         /// <summary>
@@ -286,7 +286,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.GroupBy<TSource, TKey>(source, keySelector, capacity, comparer);
+            return s_impl.GroupBy(source, keySelector, capacity, comparer);
         }
 
         /// <summary>
@@ -313,7 +313,7 @@ namespace System.Reactive.Linq
             if (capacity < 0)
                 throw new ArgumentOutOfRangeException(nameof(capacity));
 
-            return s_impl.GroupBy<TSource, TKey, TElement>(source, keySelector, elementSelector, capacity);
+            return s_impl.GroupBy(source, keySelector, elementSelector, capacity);
         }
 
         /// <summary>
@@ -343,7 +343,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.GroupBy<TSource, TKey, TElement>(source, keySelector, elementSelector, capacity, comparer);
+            return s_impl.GroupBy(source, keySelector, elementSelector, capacity, comparer);
         }
 
         #endregion
@@ -382,7 +382,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.GroupByUntil<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector, comparer);
+            return s_impl.GroupByUntil(source, keySelector, elementSelector, durationSelector, comparer);
         }
 
         /// <summary>
@@ -414,7 +414,7 @@ namespace System.Reactive.Linq
             if (durationSelector == null)
                 throw new ArgumentNullException(nameof(durationSelector));
 
-            return s_impl.GroupByUntil<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector);
+            return s_impl.GroupByUntil(source, keySelector, elementSelector, durationSelector);
         }
 
         /// <summary>
@@ -445,7 +445,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.GroupByUntil<TSource, TKey, TDuration>(source, keySelector, durationSelector, comparer);
+            return s_impl.GroupByUntil(source, keySelector, durationSelector, comparer);
         }
 
         /// <summary>
@@ -473,7 +473,7 @@ namespace System.Reactive.Linq
             if (durationSelector == null)
                 throw new ArgumentNullException(nameof(durationSelector));
 
-            return s_impl.GroupByUntil<TSource, TKey, TDuration>(source, keySelector, durationSelector);
+            return s_impl.GroupByUntil(source, keySelector, durationSelector);
         }
 
         /// <summary>
@@ -512,7 +512,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.GroupByUntil<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector, capacity, comparer);
+            return s_impl.GroupByUntil(source, keySelector, elementSelector, durationSelector, capacity, comparer);
         }
 
         /// <summary>
@@ -548,7 +548,7 @@ namespace System.Reactive.Linq
             if (capacity < 0)
                 throw new ArgumentOutOfRangeException(nameof(capacity));
 
-            return s_impl.GroupByUntil<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector, capacity);
+            return s_impl.GroupByUntil(source, keySelector, elementSelector, durationSelector, capacity);
         }
 
         /// <summary>
@@ -583,7 +583,7 @@ namespace System.Reactive.Linq
             if (comparer == null)
                 throw new ArgumentNullException(nameof(comparer));
 
-            return s_impl.GroupByUntil<TSource, TKey, TDuration>(source, keySelector, durationSelector, capacity, comparer);
+            return s_impl.GroupByUntil(source, keySelector, durationSelector, capacity, comparer);
         }
 
         /// <summary>
@@ -615,7 +615,7 @@ namespace System.Reactive.Linq
             if (capacity < 0)
                 throw new ArgumentOutOfRangeException(nameof(capacity));
 
-            return s_impl.GroupByUntil<TSource, TKey, TDuration>(source, keySelector, durationSelector, capacity);
+            return s_impl.GroupByUntil(source, keySelector, durationSelector, capacity);
         }
 
         #endregion
@@ -650,7 +650,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.GroupJoin<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(left, right, leftDurationSelector, rightDurationSelector, resultSelector);
+            return s_impl.GroupJoin(left, right, leftDurationSelector, rightDurationSelector, resultSelector);
         }
 
         #endregion
@@ -685,7 +685,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.Join<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(left, right, leftDurationSelector, rightDurationSelector, resultSelector);
+            return s_impl.Join(left, right, leftDurationSelector, rightDurationSelector, resultSelector);
         }
 
         #endregion
@@ -727,7 +727,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Select<TSource, TResult>(source, selector);
+            return s_impl.Select(source, selector);
         }
 
         /// <summary>
@@ -746,7 +746,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Select<TSource, TResult>(source, selector);
+            return s_impl.Select(source, selector);
         }
 
         #endregion
@@ -769,7 +769,7 @@ namespace System.Reactive.Linq
             if (other == null)
                 throw new ArgumentNullException(nameof(other));
 
-            return s_impl.SelectMany<TSource, TOther>(source, other);
+            return s_impl.SelectMany(source, other);
         }
 
         /// <summary>
@@ -788,7 +788,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.SelectMany<TSource, TResult>(source, selector);
+            return s_impl.SelectMany(source, selector);
         }
 
         /// <summary>
@@ -807,7 +807,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.SelectMany<TSource, TResult>(source, selector);
+            return s_impl.SelectMany(source, selector);
         }
 
         /// <summary>
@@ -827,7 +827,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.SelectMany<TSource, TResult>(source, selector);
+            return s_impl.SelectMany(source, selector);
         }
 
         /// <summary>
@@ -847,7 +847,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.SelectMany<TSource, TResult>(source, selector);
+            return s_impl.SelectMany(source, selector);
         }
 
         /// <summary>
@@ -867,7 +867,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.SelectMany<TSource, TResult>(source, selector);
+            return s_impl.SelectMany(source, selector);
         }
 
         /// <summary>
@@ -887,7 +887,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.SelectMany<TSource, TResult>(source, selector);
+            return s_impl.SelectMany(source, selector);
         }
 
         /// <summary>
@@ -910,7 +910,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.SelectMany<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
+            return s_impl.SelectMany(source, collectionSelector, resultSelector);
         }
 
         /// <summary>
@@ -933,7 +933,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.SelectMany<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
+            return s_impl.SelectMany(source, collectionSelector, resultSelector);
         }
 
         /// <summary>
@@ -957,7 +957,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.SelectMany<TSource, TTaskResult, TResult>(source, taskSelector, resultSelector);
+            return s_impl.SelectMany(source, taskSelector, resultSelector);
         }
 
         /// <summary>
@@ -981,7 +981,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.SelectMany<TSource, TTaskResult, TResult>(source, taskSelector, resultSelector);
+            return s_impl.SelectMany(source, taskSelector, resultSelector);
         }
 
         /// <summary>
@@ -1005,7 +1005,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.SelectMany<TSource, TTaskResult, TResult>(source, taskSelector, resultSelector);
+            return s_impl.SelectMany(source, taskSelector, resultSelector);
         }
 
         /// <summary>
@@ -1029,7 +1029,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.SelectMany<TSource, TTaskResult, TResult>(source, taskSelector, resultSelector);
+            return s_impl.SelectMany(source, taskSelector, resultSelector);
         }
 
         /// <summary>
@@ -1054,7 +1054,7 @@ namespace System.Reactive.Linq
             if (onCompleted == null)
                 throw new ArgumentNullException(nameof(onCompleted));
 
-            return s_impl.SelectMany<TSource, TResult>(source, onNext, onError, onCompleted);
+            return s_impl.SelectMany(source, onNext, onError, onCompleted);
         }
 
         /// <summary>
@@ -1079,7 +1079,7 @@ namespace System.Reactive.Linq
             if (onCompleted == null)
                 throw new ArgumentNullException(nameof(onCompleted));
 
-            return s_impl.SelectMany<TSource, TResult>(source, onNext, onError, onCompleted);
+            return s_impl.SelectMany(source, onNext, onError, onCompleted);
         }
 
         /// <summary>
@@ -1099,7 +1099,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.SelectMany<TSource, TResult>(source, selector);
+            return s_impl.SelectMany(source, selector);
         }
 
         /// <summary>
@@ -1119,7 +1119,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.SelectMany<TSource, TResult>(source, selector);
+            return s_impl.SelectMany(source, selector);
         }
 
         /// <summary>
@@ -1143,7 +1143,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.SelectMany<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
+            return s_impl.SelectMany(source, collectionSelector, resultSelector);
         }
 
         /// <summary>
@@ -1167,7 +1167,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.SelectMany<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
+            return s_impl.SelectMany(source, collectionSelector, resultSelector);
         }
 
         #endregion
@@ -1190,7 +1190,7 @@ namespace System.Reactive.Linq
             if (count < 0)
                 throw new ArgumentOutOfRangeException(nameof(count));
 
-            return s_impl.Skip<TSource>(source, count);
+            return s_impl.Skip(source, count);
         }
 
         #endregion
@@ -1212,7 +1212,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.SkipWhile<TSource>(source, predicate);
+            return s_impl.SkipWhile(source, predicate);
         }
 
         /// <summary>
@@ -1231,7 +1231,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.SkipWhile<TSource>(source, predicate);
+            return s_impl.SkipWhile(source, predicate);
         }
 
         #endregion
@@ -1254,7 +1254,7 @@ namespace System.Reactive.Linq
             if (count < 0)
                 throw new ArgumentOutOfRangeException(nameof(count));
 
-            return s_impl.Take<TSource>(source, count);
+            return s_impl.Take(source, count);
         }
 
         /// <summary>
@@ -1276,7 +1276,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Take<TSource>(source, count, scheduler);
+            return s_impl.Take(source, count, scheduler);
         }
 
         #endregion
@@ -1298,7 +1298,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.TakeWhile<TSource>(source, predicate);
+            return s_impl.TakeWhile(source, predicate);
         }
 
         /// <summary>
@@ -1317,7 +1317,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.TakeWhile<TSource>(source, predicate);
+            return s_impl.TakeWhile(source, predicate);
         }
 
         #endregion
@@ -1339,7 +1339,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.Where<TSource>(source, predicate);
+            return s_impl.Where(source, predicate);
         }
 
         /// <summary>
@@ -1357,7 +1357,7 @@ namespace System.Reactive.Linq
             if (predicate == null)
                 throw new ArgumentNullException(nameof(predicate));
 
-            return s_impl.Where<TSource>(source, predicate);
+            return s_impl.Where(source, predicate);
         }
 
         #endregion

+ 67 - 67
Rx.NET/Source/src/System.Reactive/Linq/Observable.Time.cs

@@ -34,7 +34,7 @@ namespace System.Reactive.Linq
             if (timeSpan < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(timeSpan));
 
-            return s_impl.Buffer<TSource>(source, timeSpan);
+            return s_impl.Buffer(source, timeSpan);
         }
 
         /// <summary>
@@ -61,7 +61,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Buffer<TSource>(source, timeSpan, scheduler);
+            return s_impl.Buffer(source, timeSpan, scheduler);
         }
 
         /// <summary>
@@ -95,7 +95,7 @@ namespace System.Reactive.Linq
             if (timeShift < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(timeShift));
 
-            return s_impl.Buffer<TSource>(source, timeSpan, timeShift);
+            return s_impl.Buffer(source, timeSpan, timeShift);
         }
 
         /// <summary>
@@ -132,7 +132,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Buffer<TSource>(source, timeSpan, timeShift, scheduler);
+            return s_impl.Buffer(source, timeSpan, timeShift, scheduler);
         }
 
         #endregion
@@ -164,7 +164,7 @@ namespace System.Reactive.Linq
             if (count <= 0)
                 throw new ArgumentOutOfRangeException(nameof(count));
 
-            return s_impl.Buffer<TSource>(source, timeSpan, count);
+            return s_impl.Buffer(source, timeSpan, count);
         }
 
         /// <summary>
@@ -195,7 +195,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Buffer<TSource>(source, timeSpan, count, scheduler);
+            return s_impl.Buffer(source, timeSpan, count, scheduler);
         }
 
         #endregion
@@ -225,7 +225,7 @@ namespace System.Reactive.Linq
         /// </para>
         /// <para>
         /// Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped.
-        /// In order to delay error propagation, consider using the <see cref="Observable.Materialize">Observable.Materialize</see> and <see cref="Observable.Dematerialize">Observable.Dematerialize</see> operators, or use <see cref="Observable.DelaySubscription{T}(IObservable{T}, TimeSpan)">DelaySubscription</see>.
+        /// In order to delay error propagation, consider using the <see cref="Materialize">Observable.Materialize</see> and <see cref="Dematerialize">Observable.Dematerialize</see> operators, or use <see cref="Observable.DelaySubscription{T}(IObservable{T}, TimeSpan)">DelaySubscription</see>.
         /// </para>
         /// </remarks>
         public static IObservable<TSource> Delay<TSource>(this IObservable<TSource> source, TimeSpan dueTime)
@@ -235,7 +235,7 @@ namespace System.Reactive.Linq
             if (dueTime < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(dueTime));
 
-            return s_impl.Delay<TSource>(source, dueTime);
+            return s_impl.Delay(source, dueTime);
         }
 
         /// <summary>
@@ -261,7 +261,7 @@ namespace System.Reactive.Linq
         /// </para>
         /// <para>
         /// Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped.
-        /// In order to delay error propagation, consider using the <see cref="Observable.Materialize">Observable.Materialize</see> and <see cref="Observable.Dematerialize">Observable.Dematerialize</see> operators, or use <see cref="Observable.DelaySubscription{T}(IObservable{T}, TimeSpan, IScheduler)">DelaySubscription</see>.
+        /// In order to delay error propagation, consider using the <see cref="Materialize">Observable.Materialize</see> and <see cref="Dematerialize">Observable.Dematerialize</see> operators, or use <see cref="Observable.DelaySubscription{T}(IObservable{T}, TimeSpan, IScheduler)">DelaySubscription</see>.
         /// </para>
         /// </remarks>
         public static IObservable<TSource> Delay<TSource>(this IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
@@ -273,7 +273,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Delay<TSource>(source, dueTime, scheduler);
+            return s_impl.Delay(source, dueTime, scheduler);
         }
 
         #endregion
@@ -298,7 +298,7 @@ namespace System.Reactive.Linq
         /// </para>
         /// <para>
         /// Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped.
-        /// In order to delay error propagation, consider using the <see cref="Observable.Materialize">Observable.Materialize</see> and <see cref="Observable.Dematerialize">Observable.Dematerialize</see> operators, or use <see cref="Observable.DelaySubscription{T}(IObservable{T}, DateTimeOffset)">DelaySubscription</see>.
+        /// In order to delay error propagation, consider using the <see cref="Materialize">Observable.Materialize</see> and <see cref="Dematerialize">Observable.Dematerialize</see> operators, or use <see cref="Observable.DelaySubscription{T}(IObservable{T}, DateTimeOffset)">DelaySubscription</see>.
         /// </para>
         /// </remarks>
         public static IObservable<TSource> Delay<TSource>(this IObservable<TSource> source, DateTimeOffset dueTime)
@@ -306,7 +306,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Delay<TSource>(source, dueTime);
+            return s_impl.Delay(source, dueTime);
         }
 
         /// <summary>
@@ -328,7 +328,7 @@ namespace System.Reactive.Linq
         /// </para>
         /// <para>
         /// Exceptions signaled by the source sequence through an OnError callback are forwarded immediately to the result sequence. Any OnNext notifications that were in the queue at the point of the OnError callback will be dropped.
-        /// In order to delay error propagation, consider using the <see cref="Observable.Materialize">Observable.Materialize</see> and <see cref="Observable.Dematerialize">Observable.Dematerialize</see> operators, or use <see cref="Observable.DelaySubscription{T}(IObservable{T}, DateTimeOffset, IScheduler)">DelaySubscription</see>.
+        /// In order to delay error propagation, consider using the <see cref="Materialize">Observable.Materialize</see> and <see cref="Dematerialize">Observable.Dematerialize</see> operators, or use <see cref="Observable.DelaySubscription{T}(IObservable{T}, DateTimeOffset, IScheduler)">DelaySubscription</see>.
         /// </para>
         /// </remarks>
         public static IObservable<TSource> Delay<TSource>(this IObservable<TSource> source, DateTimeOffset dueTime, IScheduler scheduler)
@@ -338,7 +338,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Delay<TSource>(source, dueTime, scheduler);
+            return s_impl.Delay(source, dueTime, scheduler);
         }
 
         #endregion
@@ -361,7 +361,7 @@ namespace System.Reactive.Linq
             if (delayDurationSelector == null)
                 throw new ArgumentNullException(nameof(delayDurationSelector));
 
-            return s_impl.Delay<TSource, TDelay>(source, delayDurationSelector);
+            return s_impl.Delay(source, delayDurationSelector);
         }
 
         /// <summary>
@@ -383,7 +383,7 @@ namespace System.Reactive.Linq
             if (delayDurationSelector == null)
                 throw new ArgumentNullException(nameof(delayDurationSelector));
 
-            return s_impl.Delay<TSource, TDelay>(source, subscriptionDelay, delayDurationSelector);
+            return s_impl.Delay(source, subscriptionDelay, delayDurationSelector);
         }
 
         #endregion
@@ -416,7 +416,7 @@ namespace System.Reactive.Linq
             if (dueTime < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(dueTime));
 
-            return s_impl.DelaySubscription<TSource>(source, dueTime);
+            return s_impl.DelaySubscription(source, dueTime);
         }
 
         /// <summary>
@@ -446,7 +446,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.DelaySubscription<TSource>(source, dueTime, scheduler);
+            return s_impl.DelaySubscription(source, dueTime, scheduler);
         }
 
         /// <summary>
@@ -470,7 +470,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.DelaySubscription<TSource>(source, dueTime);
+            return s_impl.DelaySubscription(source, dueTime);
         }
 
         /// <summary>
@@ -497,7 +497,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.DelaySubscription<TSource>(source, dueTime, scheduler);
+            return s_impl.DelaySubscription(source, dueTime, scheduler);
         }
 
         #endregion
@@ -527,7 +527,7 @@ namespace System.Reactive.Linq
             if (timeSelector == null)
                 throw new ArgumentNullException(nameof(timeSelector));
 
-            return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector);
+            return s_impl.Generate(initialState, condition, iterate, resultSelector, timeSelector);
         }
 
         /// <summary>
@@ -556,7 +556,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector, scheduler);
+            return s_impl.Generate(initialState, condition, iterate, resultSelector, timeSelector, scheduler);
         }
 
         /// <summary>
@@ -582,7 +582,7 @@ namespace System.Reactive.Linq
             if (timeSelector == null)
                 throw new ArgumentNullException(nameof(timeSelector));
 
-            return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector);
+            return s_impl.Generate(initialState, condition, iterate, resultSelector, timeSelector);
         }
 
         /// <summary>
@@ -611,7 +611,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Generate<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector, scheduler);
+            return s_impl.Generate(initialState, condition, iterate, resultSelector, timeSelector, scheduler);
         }
 
         #endregion
@@ -689,7 +689,7 @@ namespace System.Reactive.Linq
             if (interval < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(interval));
 
-            return s_impl.Sample<TSource>(source, interval);
+            return s_impl.Sample(source, interval);
         }
 
         /// <summary>
@@ -716,7 +716,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Sample<TSource>(source, interval, scheduler);
+            return s_impl.Sample(source, interval, scheduler);
         }
 
         /// <summary>
@@ -736,7 +736,7 @@ namespace System.Reactive.Linq
             if (sampler == null)
                 throw new ArgumentNullException(nameof(sampler));
 
-            return s_impl.Sample<TSource, TSample>(source, sampler);
+            return s_impl.Sample(source, sampler);
         }
 
         #endregion
@@ -769,7 +769,7 @@ namespace System.Reactive.Linq
             if (duration < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(duration));
 
-            return s_impl.Skip<TSource>(source, duration);
+            return s_impl.Skip(source, duration);
         }
 
         /// <summary>
@@ -801,7 +801,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Skip<TSource>(source, duration, scheduler);
+            return s_impl.Skip(source, duration, scheduler);
         }
 
         #endregion
@@ -829,7 +829,7 @@ namespace System.Reactive.Linq
             if (duration < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(duration));
 
-            return s_impl.SkipLast<TSource>(source, duration);
+            return s_impl.SkipLast(source, duration);
         }
 
         /// <summary>
@@ -856,7 +856,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.SkipLast<TSource>(source, duration, scheduler);
+            return s_impl.SkipLast(source, duration, scheduler);
         }
 
         #endregion
@@ -879,7 +879,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.SkipUntil<TSource>(source, startTime);
+            return s_impl.SkipUntil(source, startTime);
         }
 
         /// <summary>
@@ -901,7 +901,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.SkipUntil<TSource>(source, startTime, scheduler);
+            return s_impl.SkipUntil(source, startTime, scheduler);
         }
 
         #endregion
@@ -929,7 +929,7 @@ namespace System.Reactive.Linq
             if (duration < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(duration));
 
-            return s_impl.Take<TSource>(source, duration);
+            return s_impl.Take(source, duration);
         }
 
         /// <summary>
@@ -956,7 +956,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Take<TSource>(source, duration, scheduler);
+            return s_impl.Take(source, duration, scheduler);
         }
 
         #endregion
@@ -984,7 +984,7 @@ namespace System.Reactive.Linq
             if (duration < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(duration));
 
-            return s_impl.TakeLast<TSource>(source, duration);
+            return s_impl.TakeLast(source, duration);
         }
 
         /// <summary>
@@ -1011,7 +1011,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.TakeLast<TSource>(source, duration, scheduler);
+            return s_impl.TakeLast(source, duration, scheduler);
         }
 
         /// <summary>
@@ -1041,7 +1041,7 @@ namespace System.Reactive.Linq
             if (loopScheduler == null)
                 throw new ArgumentNullException(nameof(loopScheduler));
 
-            return s_impl.TakeLast<TSource>(source, duration, timerScheduler, loopScheduler);
+            return s_impl.TakeLast(source, duration, timerScheduler, loopScheduler);
         }
 
         #endregion
@@ -1068,7 +1068,7 @@ namespace System.Reactive.Linq
             if (duration < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(duration));
 
-            return s_impl.TakeLastBuffer<TSource>(source, duration);
+            return s_impl.TakeLastBuffer(source, duration);
         }
 
         /// <summary>
@@ -1094,7 +1094,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.TakeLastBuffer<TSource>(source, duration, scheduler);
+            return s_impl.TakeLastBuffer(source, duration, scheduler);
         }
 
         #endregion
@@ -1114,7 +1114,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.TakeUntil<TSource>(source, endTime);
+            return s_impl.TakeUntil(source, endTime);
         }
 
         /// <summary>
@@ -1133,7 +1133,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.TakeUntil<TSource>(source, endTime, scheduler);
+            return s_impl.TakeUntil(source, endTime, scheduler);
         }
 
         #endregion
@@ -1171,7 +1171,7 @@ namespace System.Reactive.Linq
             if (dueTime < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(dueTime));
 
-            return s_impl.Throttle<TSource>(source, dueTime);
+            return s_impl.Throttle(source, dueTime);
         }
 
         /// <summary>
@@ -1208,7 +1208,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Throttle<TSource>(source, dueTime, scheduler);
+            return s_impl.Throttle(source, dueTime, scheduler);
         }
 
         /// <summary>
@@ -1234,7 +1234,7 @@ namespace System.Reactive.Linq
             if (throttleDurationSelector == null)
                 throw new ArgumentNullException(nameof(throttleDurationSelector));
 
-            return s_impl.Throttle<TSource, TThrottle>(source, throttleDurationSelector);
+            return s_impl.Throttle(source, throttleDurationSelector);
         }
 
         #endregion
@@ -1253,7 +1253,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.TimeInterval<TSource>(source);
+            return s_impl.TimeInterval(source);
         }
 
         /// <summary>
@@ -1271,7 +1271,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.TimeInterval<TSource>(source, scheduler);
+            return s_impl.TimeInterval(source, scheduler);
         }
 
         #endregion
@@ -1311,7 +1311,7 @@ namespace System.Reactive.Linq
             if (dueTime < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(dueTime));
 
-            return s_impl.Timeout<TSource>(source, dueTime);
+            return s_impl.Timeout(source, dueTime);
         }
 
         /// <summary>
@@ -1348,7 +1348,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Timeout<TSource>(source, dueTime, scheduler);
+            return s_impl.Timeout(source, dueTime, scheduler);
         }
 
         /// <summary>
@@ -1384,7 +1384,7 @@ namespace System.Reactive.Linq
             if (other == null)
                 throw new ArgumentNullException(nameof(other));
 
-            return s_impl.Timeout<TSource>(source, dueTime, other);
+            return s_impl.Timeout(source, dueTime, other);
         }
 
         /// <summary>
@@ -1423,7 +1423,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Timeout<TSource>(source, dueTime, other, scheduler);
+            return s_impl.Timeout(source, dueTime, other, scheduler);
         }
 
         #endregion
@@ -1450,7 +1450,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Timeout<TSource>(source, dueTime);
+            return s_impl.Timeout(source, dueTime);
         }
 
         /// <summary>
@@ -1476,7 +1476,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Timeout<TSource>(source, dueTime, scheduler);
+            return s_impl.Timeout(source, dueTime, scheduler);
         }
 
         /// <summary>
@@ -1501,7 +1501,7 @@ namespace System.Reactive.Linq
             if (other == null)
                 throw new ArgumentNullException(nameof(other));
 
-            return s_impl.Timeout<TSource>(source, dueTime, other);
+            return s_impl.Timeout(source, dueTime, other);
         }
 
         /// <summary>
@@ -1529,7 +1529,7 @@ namespace System.Reactive.Linq
             if (other == null)
                 throw new ArgumentNullException(nameof(other));
 
-            return s_impl.Timeout<TSource>(source, dueTime, other, scheduler);
+            return s_impl.Timeout(source, dueTime, other, scheduler);
         }
 
         #endregion
@@ -1553,7 +1553,7 @@ namespace System.Reactive.Linq
             if (timeoutDurationSelector == null)
                 throw new ArgumentNullException(nameof(timeoutDurationSelector));
 
-            return s_impl.Timeout<TSource, TTimeout>(source, timeoutDurationSelector);
+            return s_impl.Timeout(source, timeoutDurationSelector);
         }
 
         /// <summary>
@@ -1576,7 +1576,7 @@ namespace System.Reactive.Linq
             if (other == null)
                 throw new ArgumentNullException(nameof(other));
 
-            return s_impl.Timeout<TSource, TTimeout>(source, timeoutDurationSelector, other);
+            return s_impl.Timeout(source, timeoutDurationSelector, other);
         }
 
         /// <summary>
@@ -1599,7 +1599,7 @@ namespace System.Reactive.Linq
             if (timeoutDurationSelector == null)
                 throw new ArgumentNullException(nameof(timeoutDurationSelector));
 
-            return s_impl.Timeout<TSource, TTimeout>(source, firstTimeout, timeoutDurationSelector);
+            return s_impl.Timeout(source, firstTimeout, timeoutDurationSelector);
         }
 
         /// <summary>
@@ -1625,7 +1625,7 @@ namespace System.Reactive.Linq
             if (other == null)
                 throw new ArgumentNullException(nameof(other));
 
-            return s_impl.Timeout<TSource, TTimeout>(source, firstTimeout, timeoutDurationSelector, other);
+            return s_impl.Timeout(source, firstTimeout, timeoutDurationSelector, other);
         }
 
         #endregion
@@ -1768,7 +1768,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.Timestamp<TSource>(source);
+            return s_impl.Timestamp(source);
         }
 
         /// <summary>
@@ -1786,7 +1786,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Timestamp<TSource>(source, scheduler);
+            return s_impl.Timestamp(source, scheduler);
         }
 
         #endregion
@@ -1816,7 +1816,7 @@ namespace System.Reactive.Linq
             if (timeSpan < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(timeSpan));
 
-            return s_impl.Window<TSource>(source, timeSpan);
+            return s_impl.Window(source, timeSpan);
         }
 
         /// <summary>
@@ -1843,7 +1843,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Window<TSource>(source, timeSpan, scheduler);
+            return s_impl.Window(source, timeSpan, scheduler);
         }
 
         /// <summary>
@@ -1877,7 +1877,7 @@ namespace System.Reactive.Linq
             if (timeShift < TimeSpan.Zero)
                 throw new ArgumentOutOfRangeException(nameof(timeShift));
 
-            return s_impl.Window<TSource>(source, timeSpan, timeShift);
+            return s_impl.Window(source, timeSpan, timeShift);
         }
 
         /// <summary>
@@ -1914,7 +1914,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Window<TSource>(source, timeSpan, timeShift, scheduler);
+            return s_impl.Window(source, timeSpan, timeShift, scheduler);
         }
 
         #endregion
@@ -1946,7 +1946,7 @@ namespace System.Reactive.Linq
             if (count <= 0)
                 throw new ArgumentOutOfRangeException(nameof(count));
 
-            return s_impl.Window<TSource>(source, timeSpan, count);
+            return s_impl.Window(source, timeSpan, count);
         }
 
         /// <summary>
@@ -1977,7 +1977,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Window<TSource>(source, timeSpan, count, scheduler);
+            return s_impl.Window(source, timeSpan, count, scheduler);
         }
 
         #endregion

+ 0 - 2
Rx.NET/Source/src/System.Reactive/Linq/Observable/AmbMany.cs

@@ -2,10 +2,8 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System;
 using System.Collections.Generic;
 using System.Reactive.Disposables;
-using System.Text;
 using System.Threading;
 using System.Linq;
 

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/Case.cs

@@ -3,7 +3,6 @@
 // See the LICENSE file in the project root for more information. 
 
 using System.Collections.Generic;
-using System.Reactive.Disposables;
 
 namespace System.Reactive.Linq.ObservableImpl
 {

+ 1 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/CombineLatest.cs

@@ -422,7 +422,7 @@ namespace System.Reactive.Linq.ObservableImpl
 
                 _values = new List<TSource>(N);
                 for (var i = 0; i < N; i++)
-                    _values.Add(default(TSource));
+                    _values.Add(default);
 
                 _isDone = new bool[N];
 

+ 0 - 2
Rx.NET/Source/src/System.Reactive/Linq/Observable/Defer.cs

@@ -2,8 +2,6 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System.Reactive.Disposables;
-
 namespace System.Reactive.Linq.ObservableImpl
 {
     internal sealed class Defer<TValue> : Producer<TValue, Defer<TValue>._>, IEvaluatableObservable<TValue>

+ 4 - 4
Rx.NET/Source/src/System.Reactive/Linq/Observable/Delay.cs

@@ -60,7 +60,7 @@ namespace System.Reactive.Linq.ObservableImpl
                 protected bool _ready;
                 protected bool _active;
                 protected bool _running;
-                protected Queue<System.Reactive.TimeInterval<TSource>> _queue = new Queue<Reactive.TimeInterval<TSource>>();
+                protected Queue<Reactive.TimeInterval<TSource>> _queue = new Queue<Reactive.TimeInterval<TSource>>();
 
                 private bool _hasCompleted;
                 private TimeSpan _completeAt;
@@ -85,7 +85,7 @@ namespace System.Reactive.Linq.ObservableImpl
                     {
                         var next = _watch.Elapsed.Add(_delay);
 
-                        _queue.Enqueue(new System.Reactive.TimeInterval<TSource>(value, next));
+                        _queue.Enqueue(new Reactive.TimeInterval<TSource>(value, next));
 
                         shouldRun = _ready && !_active;
                         _active = true;
@@ -261,7 +261,7 @@ namespace System.Reactive.Linq.ObservableImpl
                 }
 
                 protected TimeSpan _delay;
-                protected Queue<System.Reactive.TimeInterval<TSource>> _queue = new Queue<System.Reactive.TimeInterval<TSource>>();
+                protected Queue<Reactive.TimeInterval<TSource>> _queue = new Queue<Reactive.TimeInterval<TSource>>();
 
                 private CancellationTokenSource _stop;
                 private bool _hasCompleted;
@@ -293,7 +293,7 @@ namespace System.Reactive.Linq.ObservableImpl
                     {
                         var next = _watch.Elapsed.Add(_delay);
 
-                        _queue.Enqueue(new System.Reactive.TimeInterval<TSource>(value, next));
+                        _queue.Enqueue(new Reactive.TimeInterval<TSource>(value, next));
 
                         _evt.Release();
                     }

+ 1 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/ElementAtOrDefault.cs

@@ -42,7 +42,7 @@ namespace System.Reactive.Linq.ObservableImpl
 
             public override void OnCompleted()
             {
-                ForwardOnNext(default(TSource));
+                ForwardOnNext(default);
                 ForwardOnCompleted();
             }
         }

+ 0 - 3
Rx.NET/Source/src/System.Reactive/Linq/Observable/FirstLastBlocking.cs

@@ -2,10 +2,7 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System;
-using System.Collections.Generic;
 using System.Reactive.Disposables;
-using System.Text;
 using System.Threading;
 
 namespace System.Reactive.Linq.ObservableImpl

+ 1 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/FirstOrDefaultAsync.cs

@@ -34,7 +34,7 @@ namespace System.Reactive.Linq.ObservableImpl
 
                 public override void OnCompleted()
                 {
-                    ForwardOnNext(default(TSource));
+                    ForwardOnNext(default);
                     ForwardOnCompleted();
                 }
             }

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/FromEventPattern.cs

@@ -3,7 +3,6 @@
 // See the LICENSE file in the project root for more information. 
 
 using System.Reactive.Concurrency;
-using System.Reactive.Disposables;
 using System.Reflection;
 using System.Threading;
 

+ 0 - 2
Rx.NET/Source/src/System.Reactive/Linq/Observable/If.cs

@@ -2,8 +2,6 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System.Reactive.Disposables;
-
 namespace System.Reactive.Linq.ObservableImpl
 {
     internal sealed class If<TResult> : Producer<TResult, If<TResult>._>, IEvaluatableObservable<TResult>

+ 1 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/Materialize.cs

@@ -28,7 +28,7 @@ namespace System.Reactive.Linq.ObservableImpl
 
             public override void OnNext(TSource value)
             {
-                ForwardOnNext(Notification.CreateOnNext<TSource>(value));
+                ForwardOnNext(Notification.CreateOnNext(value));
             }
 
             public override void OnError(Exception error)

+ 0 - 4
Rx.NET/Source/src/System.Reactive/Linq/Observable/RepeatWhen.cs

@@ -2,12 +2,8 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
 using System.Reactive.Disposables;
 using System.Reactive.Subjects;
-using System.Text;
 using System.Threading;
 
 namespace System.Reactive.Linq.ObservableImpl

+ 0 - 3
Rx.NET/Source/src/System.Reactive/Linq/Observable/RetryWhen.cs

@@ -2,12 +2,9 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System;
 using System.Collections.Concurrent;
-using System.Collections.Generic;
 using System.Reactive.Disposables;
 using System.Reactive.Subjects;
-using System.Text;
 using System.Threading;
 
 namespace System.Reactive.Linq.ObservableImpl

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/Return.cs

@@ -3,7 +3,6 @@
 // See the LICENSE file in the project root for more information. 
 
 using System.Reactive.Concurrency;
-using System.Reactive.Disposables;
 
 namespace System.Reactive.Linq.ObservableImpl
 {

+ 3 - 3
Rx.NET/Source/src/System.Reactive/Linq/Observable/SkipLast.cs

@@ -65,13 +65,13 @@ namespace System.Reactive.Linq.ObservableImpl
             internal sealed class _ : IdentitySink<TSource>
             {
                 private readonly TimeSpan _duration;
-                private Queue<System.Reactive.TimeInterval<TSource>> _queue;
+                private Queue<Reactive.TimeInterval<TSource>> _queue;
 
                 public _(TimeSpan duration, IObserver<TSource> observer)
                     : base(observer)
                 {
                     _duration = duration;
-                    _queue = new Queue<System.Reactive.TimeInterval<TSource>>();
+                    _queue = new Queue<Reactive.TimeInterval<TSource>>();
                 }
 
                 private IStopwatch _watch;
@@ -86,7 +86,7 @@ namespace System.Reactive.Linq.ObservableImpl
                 public override void OnNext(TSource value)
                 {
                     var now = _watch.Elapsed;
-                    _queue.Enqueue(new System.Reactive.TimeInterval<TSource>(value, now));
+                    _queue.Enqueue(new Reactive.TimeInterval<TSource>(value, now));
                     while (_queue.Count > 0 && now - _queue.Peek().Interval >= _duration)
                         ForwardOnNext(_queue.Dequeue().Value);
                 }

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/SkipUntil.cs

@@ -4,7 +4,6 @@
 
 using System.Reactive.Concurrency;
 using System.Reactive.Disposables;
-using System.Threading;
 
 namespace System.Reactive.Linq.ObservableImpl
 {

+ 3 - 3
Rx.NET/Source/src/System.Reactive/Linq/Observable/TakeLastBuffer.cs

@@ -75,13 +75,13 @@ namespace System.Reactive.Linq.ObservableImpl
             internal sealed class _ : Sink<TSource, IList<TSource>> 
             {
                 private readonly TimeSpan _duration;
-                private Queue<System.Reactive.TimeInterval<TSource>> _queue;
+                private Queue<Reactive.TimeInterval<TSource>> _queue;
 
                 public _(TimeSpan duration, IObserver<IList<TSource>> observer)
                     : base(observer)
                 {
                     _duration = duration;
-                    _queue = new Queue<System.Reactive.TimeInterval<TSource>>();
+                    _queue = new Queue<Reactive.TimeInterval<TSource>>();
                 }
 
                 private IStopwatch _watch;
@@ -96,7 +96,7 @@ namespace System.Reactive.Linq.ObservableImpl
                 public override void OnNext(TSource value)
                 {
                     var now = _watch.Elapsed;
-                    _queue.Enqueue(new System.Reactive.TimeInterval<TSource>(value, now));
+                    _queue.Enqueue(new Reactive.TimeInterval<TSource>(value, now));
                     Trim(now);
                 }
 

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/TakeUntil.cs

@@ -4,7 +4,6 @@
 
 using System.Reactive.Concurrency;
 using System.Reactive.Disposables;
-using System.Threading;
 
 namespace System.Reactive.Linq.ObservableImpl
 {

+ 0 - 4
Rx.NET/Source/src/System.Reactive/Linq/Observable/TakeUntilPredicate.cs

@@ -2,10 +2,6 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System;
-using System.Collections.Generic;
-using System.Text;
-
 namespace System.Reactive.Linq.ObservableImpl
 {
     /// <summary>

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Linq/Observable/Throw.cs

@@ -3,7 +3,6 @@
 // See the LICENSE file in the project root for more information. 
 
 using System.Reactive.Concurrency;
-using System.Reactive.Disposables;
 
 namespace System.Reactive.Linq.ObservableImpl
 {

+ 4 - 4
Rx.NET/Source/src/System.Reactive/Linq/Observable/TimeInterval.cs

@@ -6,7 +6,7 @@ using System.Reactive.Concurrency;
 
 namespace System.Reactive.Linq.ObservableImpl
 {
-    internal sealed class TimeInterval<TSource> : Producer<System.Reactive.TimeInterval<TSource>, TimeInterval<TSource>._>
+    internal sealed class TimeInterval<TSource> : Producer<Reactive.TimeInterval<TSource>, TimeInterval<TSource>._>
     {
         private readonly IObservable<TSource> _source;
         private readonly IScheduler _scheduler;
@@ -21,9 +21,9 @@ namespace System.Reactive.Linq.ObservableImpl
 
         protected override void Run(_ sink) => sink.Run(this);
 
-        internal sealed class _ : Sink<TSource, System.Reactive.TimeInterval<TSource>> 
+        internal sealed class _ : Sink<TSource, Reactive.TimeInterval<TSource>> 
         {
-            public _(IObserver<System.Reactive.TimeInterval<TSource>> observer)
+            public _(IObserver<Reactive.TimeInterval<TSource>> observer)
                 : base(observer)
             {
             }
@@ -44,7 +44,7 @@ namespace System.Reactive.Linq.ObservableImpl
                 var now = _watch.Elapsed;
                 var span = now.Subtract(_last);
                 _last = now;
-                ForwardOnNext(new System.Reactive.TimeInterval<TSource>(value, span));
+                ForwardOnNext(new Reactive.TimeInterval<TSource>(value, span));
             }
         }
     }

+ 10 - 10
Rx.NET/Source/src/System.Reactive/Linq/ObservableEx.cs

@@ -29,7 +29,7 @@ namespace System.Reactive.Linq
             if (iteratorMethod == null)
                 throw new ArgumentNullException(nameof(iteratorMethod));
 
-            return s_impl.Create<TResult>(iteratorMethod);
+            return s_impl.Create(iteratorMethod);
         }
 
         /// <summary>
@@ -70,7 +70,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.Expand<TSource>(source, selector, scheduler);
+            return s_impl.Expand(source, selector, scheduler);
         }
 
         /// <summary>
@@ -89,7 +89,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Expand<TSource>(source, selector);
+            return s_impl.Expand(source, selector);
         }
 
         #endregion
@@ -117,7 +117,7 @@ namespace System.Reactive.Linq
             if (resultSelector == null)
                 throw new ArgumentNullException(nameof(resultSelector));
 
-            return s_impl.ForkJoin<TSource1, TSource2, TResult>(first, second, resultSelector);
+            return s_impl.ForkJoin(first, second, resultSelector);
         }
 
         /// <summary>
@@ -133,7 +133,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.ForkJoin<TSource>(sources);
+            return s_impl.ForkJoin(sources);
         }
 
         /// <summary>
@@ -149,7 +149,7 @@ namespace System.Reactive.Linq
             if (sources == null)
                 throw new ArgumentNullException(nameof(sources));
 
-            return s_impl.ForkJoin<TSource>(sources);
+            return s_impl.ForkJoin(sources);
         }
 
         #endregion
@@ -174,7 +174,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.Let<TSource, TResult>(source, selector);
+            return s_impl.Let(source, selector);
         }
 
         #endregion
@@ -194,7 +194,7 @@ namespace System.Reactive.Linq
             if (scheduler == null)
                 throw new ArgumentNullException(nameof(scheduler));
 
-            return s_impl.ManySelect<TSource, TResult>(source, selector, scheduler);
+            return s_impl.ManySelect(source, selector, scheduler);
         }
 
         /// <summary>
@@ -208,7 +208,7 @@ namespace System.Reactive.Linq
             if (selector == null)
                 throw new ArgumentNullException(nameof(selector));
 
-            return s_impl.ManySelect<TSource, TResult>(source, selector);
+            return s_impl.ManySelect(source, selector);
         }
 
         #endregion
@@ -228,7 +228,7 @@ namespace System.Reactive.Linq
             if (source == null)
                 throw new ArgumentNullException(nameof(source));
 
-            return s_impl.ToListObservable<TSource>(source);
+            return s_impl.ToListObservable(source);
         }
 
         #endregion

+ 0 - 3
Rx.NET/Source/src/System.Reactive/Linq/Qbservable.Generated.cs

@@ -5,17 +5,14 @@
 
 #pragma warning disable 1591
 
-using System;
 using System.Reactive.Concurrency;
 using System.Collections.Generic;
 using System.Diagnostics.CodeAnalysis;
-using System.Reactive.Joins;
 using System.Linq;
 using System.Linq.Expressions;
 using System.Reflection;
 using System.Threading;
 using System.Threading.Tasks;
-using System.Reactive;
 using System.Reactive.Subjects;
 
 namespace System.Reactive.Linq

+ 0 - 7
Rx.NET/Source/src/System.Reactive/Linq/QbservableEx.Generated.cs

@@ -5,17 +5,10 @@
 
 #pragma warning disable 1591
 
-using System;
 using System.Reactive.Concurrency;
 using System.Collections.Generic;
-using System.Reactive.Joins;
-using System.Linq;
 using System.Linq.Expressions;
 using System.Reflection;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Reactive;
-using System.Reactive.Subjects;
 
 namespace System.Reactive.Linq
 {

+ 3 - 3
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Awaiter.cs

@@ -12,12 +12,12 @@ namespace System.Reactive.Linq
     {
         public virtual AsyncSubject<TSource> GetAwaiter<TSource>(IObservable<TSource> source)
         {
-            return RunAsync<TSource>(source, CancellationToken.None);
+            return RunAsync(source, CancellationToken.None);
         }
 
         public virtual AsyncSubject<TSource> GetAwaiter<TSource>(IConnectableObservable<TSource> source)
         {
-            return RunAsync<TSource>(source, CancellationToken.None);
+            return RunAsync(source, CancellationToken.None);
         }
 
         public virtual AsyncSubject<TSource> RunAsync<TSource>(IObservable<TSource> source, CancellationToken cancellationToken)
@@ -87,4 +87,4 @@ namespace System.Reactive.Linq
             subject.Subscribe(Stubs<T>.Ignore, _ => ctr.Dispose(), ctr.Dispose);
         }
     }
-}
+}

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Binding.cs

@@ -3,7 +3,6 @@
 // See the LICENSE file in the project root for more information. 
 
 using System.Reactive.Concurrency;
-using System.Reactive.Disposables;
 using System.Reactive.Subjects;
 
 namespace System.Reactive.Linq

+ 2 - 2
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Blocking.cs

@@ -24,12 +24,12 @@ namespace System.Reactive.Linq
 
         public virtual IEnumerable<TResult> Collect<TSource, TResult>(IObservable<TSource> source, Func<TResult> newCollector, Func<TResult, TSource, TResult> merge)
         {
-            return Collect_<TSource, TResult>(source, newCollector, merge, _ => newCollector());
+            return Collect_(source, newCollector, merge, _ => newCollector());
         }
 
         public virtual IEnumerable<TResult> Collect<TSource, TResult>(IObservable<TSource> source, Func<TResult> getInitialCollector, Func<TResult, TSource, TResult> merge, Func<TResult, TResult> getNewCollector)
         {
-            return Collect_<TSource, TResult>(source, getInitialCollector, merge, getNewCollector);
+            return Collect_(source, getInitialCollector, merge, getNewCollector);
         }
 
         private static IEnumerable<TResult> Collect_<TSource, TResult>(IObservable<TSource> source, Func<TResult> getInitialCollector, Func<TResult, TSource, TResult> merge, Func<TResult, TResult> getNewCollector)

+ 4 - 4
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Concurrency.cs

@@ -13,12 +13,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> ObserveOn<TSource>(IObservable<TSource> source, IScheduler scheduler)
         {
-            return Synchronization.ObserveOn<TSource>(source, scheduler);
+            return Synchronization.ObserveOn(source, scheduler);
         }
 
         public virtual IObservable<TSource> ObserveOn<TSource>(IObservable<TSource> source, SynchronizationContext context)
         {
-            return Synchronization.ObserveOn<TSource>(source, context);
+            return Synchronization.ObserveOn(source, context);
         }
 
         #endregion
@@ -27,12 +27,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> SubscribeOn<TSource>(IObservable<TSource> source, IScheduler scheduler)
         {
-            return Synchronization.SubscribeOn<TSource>(source, scheduler);
+            return Synchronization.SubscribeOn(source, scheduler);
         }
 
         public virtual IObservable<TSource> SubscribeOn<TSource>(IObservable<TSource> source, SynchronizationContext context)
         {
-            return Synchronization.SubscribeOn<TSource>(source, context);
+            return Synchronization.SubscribeOn(source, context);
         }
 
         #endregion

+ 2 - 3
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Conversions.cs

@@ -4,7 +4,6 @@
 
 using System.Collections.Generic;
 using System.Reactive.Concurrency;
-using System.Reactive.Disposables;
 
 namespace System.Reactive.Linq
 {
@@ -16,12 +15,12 @@ namespace System.Reactive.Linq
 
         public virtual IDisposable Subscribe<TSource>(IEnumerable<TSource> source, IObserver<TSource> observer)
         {
-            return Subscribe_<TSource>(source, observer, SchedulerDefaults.Iteration);
+            return Subscribe_(source, observer, SchedulerDefaults.Iteration);
         }
 
         public virtual IDisposable Subscribe<TSource>(IEnumerable<TSource> source, IObserver<TSource> observer, IScheduler scheduler)
         {
-            return Subscribe_<TSource>(source, observer, scheduler);
+            return Subscribe_(source, observer, scheduler);
         }
 
         private static IDisposable Subscribe_<TSource>(IEnumerable<TSource> source, IObserver<TSource> observer, IScheduler scheduler)

+ 3 - 5
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Creation.cs

@@ -2,8 +2,6 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System.Collections.Generic;
-using System.Linq;
 using System.Reactive.Concurrency;
 using System.Reactive.Disposables;
 using System.Reactive.Threading.Tasks;
@@ -413,11 +411,11 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Using<TSource, TResource>(Func<CancellationToken, Task<TResource>> resourceFactoryAsync, Func<TResource, CancellationToken, Task<IObservable<TSource>>> observableFactoryAsync) where TResource : IDisposable
         {
-            return Observable.FromAsync<TResource>(resourceFactoryAsync)
+            return Observable.FromAsync(resourceFactoryAsync)
                 .SelectMany(resource =>
-                    Observable.Using<TSource, TResource>(
+                    Observable.Using(
                         () => resource,
-                        resource_ => Observable.FromAsync<IObservable<TSource>>(ct => observableFactoryAsync(resource_, ct)).Merge()
+                        resource_ => Observable.FromAsync(ct => observableFactoryAsync(resource_, ct)).Merge()
                     )
                 );
         }

+ 8 - 11
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Events.cs

@@ -2,10 +2,7 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System.Globalization;
 using System.Reactive.Concurrency;
-using System.Reactive.Disposables;
-using System.Reflection;
 using System.Threading;
 
 #if HAS_WINRT
@@ -73,12 +70,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<EventPattern<TEventArgs>> FromEventPattern<TDelegate, TEventArgs>(Func<EventHandler<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler)
         {
-            return FromEventPattern_<TDelegate, TEventArgs>(conversion, addHandler, removeHandler, GetSchedulerForCurrentContext());
+            return FromEventPattern_(conversion, addHandler, removeHandler, GetSchedulerForCurrentContext());
         }
 
         public virtual IObservable<EventPattern<TEventArgs>> FromEventPattern<TDelegate, TEventArgs>(Func<EventHandler<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler)
         {
-            return FromEventPattern_<TDelegate, TEventArgs>(conversion, addHandler, removeHandler, scheduler);
+            return FromEventPattern_(conversion, addHandler, removeHandler, scheduler);
         }
 
         #region Implementation
@@ -115,12 +112,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<EventPattern<TEventArgs>> FromEventPattern<TEventArgs>(Action<EventHandler<TEventArgs>> addHandler, Action<EventHandler<TEventArgs>> removeHandler)
         {
-            return FromEventPattern_<TEventArgs>(addHandler, removeHandler, GetSchedulerForCurrentContext());
+            return FromEventPattern_(addHandler, removeHandler, GetSchedulerForCurrentContext());
         }
 
         public virtual IObservable<EventPattern<TEventArgs>> FromEventPattern<TEventArgs>(Action<EventHandler<TEventArgs>> addHandler, Action<EventHandler<TEventArgs>> removeHandler, IScheduler scheduler)
         {
-            return FromEventPattern_<TEventArgs>(addHandler, removeHandler, scheduler);
+            return FromEventPattern_(addHandler, removeHandler, scheduler);
         }
 
         #region Implementation
@@ -286,12 +283,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Func<Action<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler)
         {
-            return FromEvent_<TDelegate, TEventArgs>(conversion, addHandler, removeHandler, GetSchedulerForCurrentContext());
+            return FromEvent_(conversion, addHandler, removeHandler, GetSchedulerForCurrentContext());
         }
 
         public virtual IObservable<TEventArgs> FromEvent<TDelegate, TEventArgs>(Func<Action<TEventArgs>, TDelegate> conversion, Action<TDelegate> addHandler, Action<TDelegate> removeHandler, IScheduler scheduler)
         {
-            return FromEvent_<TDelegate, TEventArgs>(conversion, addHandler, removeHandler, scheduler);
+            return FromEvent_(conversion, addHandler, removeHandler, scheduler);
         }
 
         #region Implementation
@@ -324,12 +321,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TEventArgs> FromEvent<TEventArgs>(Action<Action<TEventArgs>> addHandler, Action<Action<TEventArgs>> removeHandler)
         {
-            return FromEvent_<TEventArgs>(addHandler, removeHandler, GetSchedulerForCurrentContext());
+            return FromEvent_(addHandler, removeHandler, GetSchedulerForCurrentContext());
         }
 
         public virtual IObservable<TEventArgs> FromEvent<TEventArgs>(Action<Action<TEventArgs>> addHandler, Action<Action<TEventArgs>> removeHandler, IScheduler scheduler)
         {
-            return FromEvent_<TEventArgs>(addHandler, removeHandler, scheduler);
+            return FromEvent_(addHandler, removeHandler, scheduler);
         }
 
         #region Implementation

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Imperative.cs

@@ -5,7 +5,6 @@
 using System.Collections.Generic;
 using System.Reactive.Concurrency;
 using System.Reactive.Disposables;
-using System.Reactive.Subjects;
 using System.Threading;
 using System.Threading.Tasks;
 

+ 29 - 29
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Multiple.cs

@@ -61,17 +61,17 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Catch<TSource>(IObservable<TSource> first, IObservable<TSource> second)
         {
-            return Catch_<TSource>(new[] { first, second });
+            return Catch_(new[] { first, second });
         }
 
         public virtual IObservable<TSource> Catch<TSource>(params IObservable<TSource>[] sources)
         {
-            return Catch_<TSource>(sources);
+            return Catch_(sources);
         }
 
         public virtual IObservable<TSource> Catch<TSource>(IEnumerable<IObservable<TSource>> sources)
         {
-            return Catch_<TSource>(sources);
+            return Catch_(sources);
         }
 
         private static IObservable<TSource> Catch_<TSource>(IEnumerable<IObservable<TSource>> sources)
@@ -166,17 +166,17 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TResult> CombineLatest<TSource, TResult>(IEnumerable<IObservable<TSource>> sources, Func<IList<TSource>, TResult> resultSelector)
         {
-            return CombineLatest_<TSource, TResult>(sources, resultSelector);
+            return CombineLatest_(sources, resultSelector);
         }
 
         public virtual IObservable<IList<TSource>> CombineLatest<TSource>(IEnumerable<IObservable<TSource>> sources)
         {
-            return CombineLatest_<TSource, IList<TSource>>(sources, res => res.ToList());
+            return CombineLatest_(sources, res => res.ToList());
         }
 
         public virtual IObservable<IList<TSource>> CombineLatest<TSource>(params IObservable<TSource>[] sources)
         {
-            return CombineLatest_<TSource, IList<TSource>>(sources, res => res.ToList());
+            return CombineLatest_(sources, res => res.ToList());
         }
 
         private static IObservable<TResult> CombineLatest_<TSource, TResult>(IEnumerable<IObservable<TSource>> sources, Func<IList<TSource>, TResult> resultSelector)
@@ -190,17 +190,17 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Concat<TSource>(IObservable<TSource> first, IObservable<TSource> second)
         {
-            return Concat_<TSource>(new[] { first, second });
+            return Concat_(new[] { first, second });
         }
 
         public virtual IObservable<TSource> Concat<TSource>(params IObservable<TSource>[] sources)
         {
-            return Concat_<TSource>(sources);
+            return Concat_(sources);
         }
 
         public virtual IObservable<TSource> Concat<TSource>(IEnumerable<IObservable<TSource>> sources)
         {
-            return Concat_<TSource>(sources);
+            return Concat_(sources);
         }
 
         private static IObservable<TSource> Concat_<TSource>(IEnumerable<IObservable<TSource>> sources)
@@ -210,12 +210,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Concat<TSource>(IObservable<IObservable<TSource>> sources)
         {
-            return Concat_<TSource>(sources);
+            return Concat_(sources);
         }
 
         public virtual IObservable<TSource> Concat<TSource>(IObservable<Task<TSource>> sources)
         {
-            return Concat_<TSource>(Select(sources, TaskObservableExtensions.ToObservable));
+            return Concat_(Select(sources, TaskObservableExtensions.ToObservable));
         }
 
         private IObservable<TSource> Concat_<TSource>(IObservable<IObservable<TSource>> sources)
@@ -229,7 +229,7 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Merge<TSource>(IObservable<IObservable<TSource>> sources)
         {
-            return Merge_<TSource>(sources);
+            return Merge_(sources);
         }
 
         public virtual IObservable<TSource> Merge<TSource>(IObservable<Task<TSource>> sources)
@@ -239,47 +239,47 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Merge<TSource>(IObservable<IObservable<TSource>> sources, int maxConcurrent)
         {
-            return Merge_<TSource>(sources, maxConcurrent);
+            return Merge_(sources, maxConcurrent);
         }
 
         public virtual IObservable<TSource> Merge<TSource>(IEnumerable<IObservable<TSource>> sources, int maxConcurrent)
         {
-            return Merge_<TSource>(sources.ToObservable(SchedulerDefaults.ConstantTimeOperations), maxConcurrent);
+            return Merge_(sources.ToObservable(SchedulerDefaults.ConstantTimeOperations), maxConcurrent);
         }
 
         public virtual IObservable<TSource> Merge<TSource>(IEnumerable<IObservable<TSource>> sources, int maxConcurrent, IScheduler scheduler)
         {
-            return Merge_<TSource>(sources.ToObservable(scheduler), maxConcurrent);
+            return Merge_(sources.ToObservable(scheduler), maxConcurrent);
         }
 
         public virtual IObservable<TSource> Merge<TSource>(IObservable<TSource> first, IObservable<TSource> second)
         {
-            return Merge_<TSource>(new[] { first, second }.ToObservable(SchedulerDefaults.ConstantTimeOperations));
+            return Merge_(new[] { first, second }.ToObservable(SchedulerDefaults.ConstantTimeOperations));
         }
 
         public virtual IObservable<TSource> Merge<TSource>(IObservable<TSource> first, IObservable<TSource> second, IScheduler scheduler)
         {
-            return Merge_<TSource>(new[] { first, second }.ToObservable(scheduler));
+            return Merge_(new[] { first, second }.ToObservable(scheduler));
         }
 
         public virtual IObservable<TSource> Merge<TSource>(params IObservable<TSource>[] sources)
         {
-            return Merge_<TSource>(sources.ToObservable(SchedulerDefaults.ConstantTimeOperations));
+            return Merge_(sources.ToObservable(SchedulerDefaults.ConstantTimeOperations));
         }
 
         public virtual IObservable<TSource> Merge<TSource>(IScheduler scheduler, params IObservable<TSource>[] sources)
         {
-            return Merge_<TSource>(sources.ToObservable(scheduler));
+            return Merge_(sources.ToObservable(scheduler));
         }
 
         public virtual IObservable<TSource> Merge<TSource>(IEnumerable<IObservable<TSource>> sources)
         {
-            return Merge_<TSource>(sources.ToObservable(SchedulerDefaults.ConstantTimeOperations));
+            return Merge_(sources.ToObservable(SchedulerDefaults.ConstantTimeOperations));
         }
 
         public virtual IObservable<TSource> Merge<TSource>(IEnumerable<IObservable<TSource>> sources, IScheduler scheduler)
         {
-            return Merge_<TSource>(sources.ToObservable(scheduler));
+            return Merge_(sources.ToObservable(scheduler));
         }
 
         private static IObservable<TSource> Merge_<TSource>(IObservable<IObservable<TSource>> sources)
@@ -298,17 +298,17 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> OnErrorResumeNext<TSource>(IObservable<TSource> first, IObservable<TSource> second)
         {
-            return OnErrorResumeNext_<TSource>(new[] { first, second });
+            return OnErrorResumeNext_(new[] { first, second });
         }
 
         public virtual IObservable<TSource> OnErrorResumeNext<TSource>(params IObservable<TSource>[] sources)
         {
-            return OnErrorResumeNext_<TSource>(sources);
+            return OnErrorResumeNext_(sources);
         }
 
         public virtual IObservable<TSource> OnErrorResumeNext<TSource>(IEnumerable<IObservable<TSource>> sources)
         {
-            return OnErrorResumeNext_<TSource>(sources);
+            return OnErrorResumeNext_(sources);
         }
 
         private static IObservable<TSource> OnErrorResumeNext_<TSource>(IEnumerable<IObservable<TSource>> sources)
@@ -331,12 +331,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Switch<TSource>(IObservable<IObservable<TSource>> sources)
         {
-            return Switch_<TSource>(sources);
+            return Switch_(sources);
         }
 
         public virtual IObservable<TSource> Switch<TSource>(IObservable<Task<TSource>> sources)
         {
-            return Switch_<TSource>(Select(sources, TaskObservableExtensions.ToObservable));
+            return Switch_(Select(sources, TaskObservableExtensions.ToObservable));
         }
 
         private IObservable<TSource> Switch_<TSource>(IObservable<IObservable<TSource>> sources)
@@ -397,17 +397,17 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TResult> Zip<TSource, TResult>(IEnumerable<IObservable<TSource>> sources, Func<IList<TSource>, TResult> resultSelector)
         {
-            return Zip_<TSource>(sources).Select(resultSelector);
+            return Zip_(sources).Select(resultSelector);
         }
 
         public virtual IObservable<IList<TSource>> Zip<TSource>(IEnumerable<IObservable<TSource>> sources)
         {
-            return Zip_<TSource>(sources);
+            return Zip_(sources);
         }
 
         public virtual IObservable<IList<TSource>> Zip<TSource>(params IObservable<TSource>[] sources)
         {
-            return Zip_<TSource>(sources);
+            return Zip_(sources);
         }
 
         private static IObservable<IList<TSource>> Zip_<TSource>(IEnumerable<IObservable<TSource>> sources)

+ 12 - 13
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Single.cs

@@ -16,12 +16,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Append<TSource>(IObservable<TSource> source, TSource value)
         {
-            return Append_<TSource>(source, value, SchedulerDefaults.ConstantTimeOperations);
+            return Append_(source, value, SchedulerDefaults.ConstantTimeOperations);
         }
 
         public virtual IObservable<TSource> Append<TSource>(IObservable<TSource> source, TSource value, IScheduler scheduler)
         {
-            return Append_<TSource>(source, value, scheduler);
+            return Append_(source, value, scheduler);
         }
 
         private static IObservable<TSource> Append_<TSource>(IObservable<TSource> source, TSource value, IScheduler scheduler)
@@ -119,12 +119,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Do<TSource>(IObservable<TSource> source, Action<TSource> onNext, Action onCompleted)
         {
-            return Do_<TSource>(source, onNext, Stubs<Exception>.Ignore, onCompleted);
+            return Do_(source, onNext, Stubs<Exception>.Ignore, onCompleted);
         }
 
         public virtual IObservable<TSource> Do<TSource>(IObservable<TSource> source, Action<TSource> onNext, Action<Exception> onError)
         {
-            return Do_<TSource>(source, onNext, onError, Stubs.Nop);
+            return Do_(source, onNext, onError, Stubs.Nop);
         }
 
         public virtual IObservable<TSource> Do<TSource>(IObservable<TSource> source, Action<TSource> onNext, Action<Exception> onError, Action onCompleted)
@@ -184,12 +184,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Prepend<TSource>(IObservable<TSource> source, TSource value)
         {
-            return Prepend_<TSource>(source, value, SchedulerDefaults.ConstantTimeOperations);
+            return Prepend_(source, value, SchedulerDefaults.ConstantTimeOperations);
         }
 
         public virtual IObservable<TSource> Prepend<TSource>(IObservable<TSource> source, TSource value, IScheduler scheduler)
         {
-            return Prepend_<TSource>(source, value, scheduler);
+            return Prepend_(source, value, scheduler);
         }
 
         private static IObservable<TSource> Prepend_<TSource>(IObservable<TSource> source, TSource value, IScheduler scheduler)
@@ -274,12 +274,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> StartWith<TSource>(IObservable<TSource> source, params TSource[] values)
         {
-            return StartWith_<TSource>(source, SchedulerDefaults.ConstantTimeOperations, values);
+            return StartWith_(source, SchedulerDefaults.ConstantTimeOperations, values);
         }
 
         public virtual IObservable<TSource> StartWith<TSource>(IObservable<TSource> source, IScheduler scheduler, params TSource[] values)
         {
-            return StartWith_<TSource>(source, scheduler, values);
+            return StartWith_(source, scheduler, values);
         }
 
         public virtual IObservable<TSource> StartWith<TSource>(IObservable<TSource> source, IEnumerable<TSource> values)
@@ -295,14 +295,13 @@ namespace System.Reactive.Linq
             //       IQueryLanguage interface, we went for consistency with the public API, hence the odd position of the IScheduler.
             //
 
-            var valueArray = values as TSource[];
-            if (valueArray == null)
+            if (!(values is TSource[] valueArray))
             {
                 var valueList = new List<TSource>(values);
                 valueArray = valueList.ToArray();
             }
 
-            return StartWith_<TSource>(source, scheduler, valueArray);
+            return StartWith_(source, scheduler, valueArray);
         }
 
         private static IObservable<TSource> StartWith_<TSource>(IObservable<TSource> source, IScheduler scheduler, params TSource[] values)
@@ -340,12 +339,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<IObservable<TSource>> Window<TSource>(IObservable<TSource> source, int count, int skip)
         {
-            return Window_<TSource>(source, count, skip);
+            return Window_(source, count, skip);
         }
 
         public virtual IObservable<IObservable<TSource>> Window<TSource>(IObservable<TSource> source, int count)
         {
-            return Window_<TSource>(source, count, count);
+            return Window_(source, count, count);
         }
 
         private static IObservable<IObservable<TSource>> Window_<TSource>(IObservable<TSource> source, int count, int skip)

+ 26 - 26
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.StandardSequenceOperators.cs

@@ -26,7 +26,7 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> DefaultIfEmpty<TSource>(IObservable<TSource> source)
         {
-            return new DefaultIfEmpty<TSource>(source, default(TSource));
+            return new DefaultIfEmpty<TSource>(source, default);
         }
 
         public virtual IObservable<TSource> DefaultIfEmpty<TSource>(IObservable<TSource> source, TSource defaultValue)
@@ -64,42 +64,42 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<IGroupedObservable<TKey, TElement>> GroupBy<TSource, TKey, TElement>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector)
         {
-            return GroupBy_<TSource, TKey, TElement>(source, keySelector, elementSelector, null, EqualityComparer<TKey>.Default);
+            return GroupBy_(source, keySelector, elementSelector, null, EqualityComparer<TKey>.Default);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TSource>> GroupBy<TSource, TKey>(IObservable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer)
         {
-            return GroupBy_<TSource, TKey, TSource>(source, keySelector, x => x, null, comparer);
+            return GroupBy_(source, keySelector, x => x, null, comparer);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TSource>> GroupBy<TSource, TKey>(IObservable<TSource> source, Func<TSource, TKey> keySelector)
         {
-            return GroupBy_<TSource, TKey, TSource>(source, keySelector, x => x, null, EqualityComparer<TKey>.Default);
+            return GroupBy_(source, keySelector, x => x, null, EqualityComparer<TKey>.Default);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TElement>> GroupBy<TSource, TKey, TElement>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer)
         {
-            return GroupBy_<TSource, TKey, TElement>(source, keySelector, elementSelector, null, comparer);
+            return GroupBy_(source, keySelector, elementSelector, null, comparer);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TElement>> GroupBy<TSource, TKey, TElement>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, int capacity)
         {
-            return GroupBy_<TSource, TKey, TElement>(source, keySelector, elementSelector, capacity, EqualityComparer<TKey>.Default);
+            return GroupBy_(source, keySelector, elementSelector, capacity, EqualityComparer<TKey>.Default);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TSource>> GroupBy<TSource, TKey>(IObservable<TSource> source, Func<TSource, TKey> keySelector, int capacity, IEqualityComparer<TKey> comparer)
         {
-            return GroupBy_<TSource, TKey, TSource>(source, keySelector, x => x, capacity, comparer);
+            return GroupBy_(source, keySelector, x => x, capacity, comparer);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TSource>> GroupBy<TSource, TKey>(IObservable<TSource> source, Func<TSource, TKey> keySelector, int capacity)
         {
-            return GroupBy_<TSource, TKey, TSource>(source, keySelector, x => x, capacity, EqualityComparer<TKey>.Default);
+            return GroupBy_(source, keySelector, x => x, capacity, EqualityComparer<TKey>.Default);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TElement>> GroupBy<TSource, TKey, TElement>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, int capacity, IEqualityComparer<TKey> comparer)
         {
-            return GroupBy_<TSource, TKey, TElement>(source, keySelector, elementSelector, capacity, comparer);
+            return GroupBy_(source, keySelector, elementSelector, capacity, comparer);
         }
 
         private static IObservable<IGroupedObservable<TKey, TElement>> GroupBy_<TSource, TKey, TElement>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, int? capacity, IEqualityComparer<TKey> comparer)
@@ -113,42 +113,42 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<IGroupedObservable<TKey, TElement>> GroupByUntil<TSource, TKey, TElement, TDuration>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>> durationSelector, IEqualityComparer<TKey> comparer)
         {
-            return GroupByUntil_<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector, null, comparer);
+            return GroupByUntil_(source, keySelector, elementSelector, durationSelector, null, comparer);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TElement>> GroupByUntil<TSource, TKey, TElement, TDuration>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>> durationSelector)
         {
-            return GroupByUntil_<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector, null, EqualityComparer<TKey>.Default);
+            return GroupByUntil_(source, keySelector, elementSelector, durationSelector, null, EqualityComparer<TKey>.Default);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TSource>> GroupByUntil<TSource, TKey, TDuration>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<IGroupedObservable<TKey, TSource>, IObservable<TDuration>> durationSelector, IEqualityComparer<TKey> comparer)
         {
-            return GroupByUntil_<TSource, TKey, TSource, TDuration>(source, keySelector, x => x, durationSelector, null, comparer);
+            return GroupByUntil_(source, keySelector, x => x, durationSelector, null, comparer);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TSource>> GroupByUntil<TSource, TKey, TDuration>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<IGroupedObservable<TKey, TSource>, IObservable<TDuration>> durationSelector)
         {
-            return GroupByUntil_<TSource, TKey, TSource, TDuration>(source, keySelector, x => x, durationSelector, null, EqualityComparer<TKey>.Default);
+            return GroupByUntil_(source, keySelector, x => x, durationSelector, null, EqualityComparer<TKey>.Default);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TElement>> GroupByUntil<TSource, TKey, TElement, TDuration>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>> durationSelector, int capacity, IEqualityComparer<TKey> comparer)
         {
-            return GroupByUntil_<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector, capacity, comparer);
+            return GroupByUntil_(source, keySelector, elementSelector, durationSelector, capacity, comparer);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TElement>> GroupByUntil<TSource, TKey, TElement, TDuration>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>> durationSelector, int capacity)
         {
-            return GroupByUntil_<TSource, TKey, TElement, TDuration>(source, keySelector, elementSelector, durationSelector, capacity, EqualityComparer<TKey>.Default);
+            return GroupByUntil_(source, keySelector, elementSelector, durationSelector, capacity, EqualityComparer<TKey>.Default);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TSource>> GroupByUntil<TSource, TKey, TDuration>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<IGroupedObservable<TKey, TSource>, IObservable<TDuration>> durationSelector, int capacity, IEqualityComparer<TKey> comparer)
         {
-            return GroupByUntil_<TSource, TKey, TSource, TDuration>(source, keySelector, x => x, durationSelector, capacity, comparer);
+            return GroupByUntil_(source, keySelector, x => x, durationSelector, capacity, comparer);
         }
 
         public virtual IObservable<IGroupedObservable<TKey, TSource>> GroupByUntil<TSource, TKey, TDuration>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<IGroupedObservable<TKey, TSource>, IObservable<TDuration>> durationSelector, int capacity)
         {
-            return GroupByUntil_<TSource, TKey, TSource, TDuration>(source, keySelector, x => x, durationSelector, capacity, EqualityComparer<TKey>.Default);
+            return GroupByUntil_(source, keySelector, x => x, durationSelector, capacity, EqualityComparer<TKey>.Default);
         }
 
         private static IObservable<IGroupedObservable<TKey, TElement>> GroupByUntil_<TSource, TKey, TElement, TDuration>(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>> durationSelector, int? capacity, IEqualityComparer<TKey> comparer)
@@ -162,7 +162,7 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TResult> GroupJoin<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(IObservable<TLeft> left, IObservable<TRight> right, Func<TLeft, IObservable<TLeftDuration>> leftDurationSelector, Func<TRight, IObservable<TRightDuration>> rightDurationSelector, Func<TLeft, IObservable<TRight>, TResult> resultSelector)
         {
-            return GroupJoin_<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(left, right, leftDurationSelector, rightDurationSelector, resultSelector);
+            return GroupJoin_(left, right, leftDurationSelector, rightDurationSelector, resultSelector);
         }
 
         private static IObservable<TResult> GroupJoin_<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(IObservable<TLeft> left, IObservable<TRight> right, Func<TLeft, IObservable<TLeftDuration>> leftDurationSelector, Func<TRight, IObservable<TRightDuration>> rightDurationSelector, Func<TLeft, IObservable<TRight>, TResult> resultSelector)
@@ -176,7 +176,7 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TResult> Join<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(IObservable<TLeft> left, IObservable<TRight> right, Func<TLeft, IObservable<TLeftDuration>> leftDurationSelector, Func<TRight, IObservable<TRightDuration>> rightDurationSelector, Func<TLeft, TRight, TResult> resultSelector)
         {
-            return Join_<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(left, right, leftDurationSelector, rightDurationSelector, resultSelector);
+            return Join_(left, right, leftDurationSelector, rightDurationSelector, resultSelector);
         }
 
         private static IObservable<TResult> Join_<TLeft, TRight, TLeftDuration, TRightDuration, TResult>(IObservable<TLeft> left, IObservable<TRight> right, Func<TLeft, IObservable<TLeftDuration>> leftDurationSelector, Func<TRight, IObservable<TRightDuration>> rightDurationSelector, Func<TLeft, TRight, TResult> resultSelector)
@@ -215,17 +215,17 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TOther> SelectMany<TSource, TOther>(IObservable<TSource> source, IObservable<TOther> other)
         {
-            return SelectMany_<TSource, TOther>(source, _ => other);
+            return SelectMany_(source, _ => other);
         }
 
         public virtual IObservable<TResult> SelectMany<TSource, TResult>(IObservable<TSource> source, Func<TSource, IObservable<TResult>> selector)
         {
-            return SelectMany_<TSource, TResult>(source, selector);
+            return SelectMany_(source, selector);
         }
 
         public virtual IObservable<TResult> SelectMany<TSource, TResult>(IObservable<TSource> source, Func<TSource, int, IObservable<TResult>> selector)
         {
-            return SelectMany_<TSource, TResult>(source, selector);
+            return SelectMany_(source, selector);
         }
 
         public virtual IObservable<TResult> SelectMany<TSource, TResult>(IObservable<TSource> source, Func<TSource, Task<TResult>> selector)
@@ -250,12 +250,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TResult> SelectMany<TSource, TCollection, TResult>(IObservable<TSource> source, Func<TSource, IObservable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector)
         {
-            return SelectMany_<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
+            return SelectMany_(source, collectionSelector, resultSelector);
         }
 
         public virtual IObservable<TResult> SelectMany<TSource, TCollection, TResult>(IObservable<TSource> source, Func<TSource, int, IObservable<TCollection>> collectionSelector, Func<TSource, int, TCollection, int, TResult> resultSelector)
         {
-            return SelectMany_<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
+            return SelectMany_(source, collectionSelector, resultSelector);
         }
 
         public virtual IObservable<TResult> SelectMany<TSource, TTaskResult, TResult>(IObservable<TSource> source, Func<TSource, Task<TTaskResult>> taskSelector, Func<TSource, TTaskResult, TResult> resultSelector)
@@ -320,12 +320,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TResult> SelectMany<TSource, TCollection, TResult>(IObservable<TSource> source, Func<TSource, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector)
         {
-            return SelectMany_<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
+            return SelectMany_(source, collectionSelector, resultSelector);
         }
 
         public virtual IObservable<TResult> SelectMany<TSource, TCollection, TResult>(IObservable<TSource> source, Func<TSource, int, IEnumerable<TCollection>> collectionSelector, Func<TSource, int, TCollection, int, TResult> resultSelector)
         {
-            return SelectMany_<TSource, TCollection, TResult>(source, collectionSelector, resultSelector);
+            return SelectMany_(source, collectionSelector, resultSelector);
         }
 
         private static IObservable<TResult> SelectMany_<TSource, TCollection, TResult>(IObservable<TSource> source, Func<TSource, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector)

+ 63 - 65
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguage.Time.cs

@@ -4,8 +4,6 @@
 
 using System.Collections.Generic;
 using System.Reactive.Concurrency;
-using System.Reactive.Disposables;
-using System.Reactive.Subjects;
 
 namespace System.Reactive.Linq
 {
@@ -19,12 +17,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<IList<TSource>> Buffer<TSource>(IObservable<TSource> source, TimeSpan timeSpan)
         {
-            return Buffer_<TSource>(source, timeSpan, SchedulerDefaults.TimeBasedOperations);
+            return Buffer_(source, timeSpan, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<IList<TSource>> Buffer<TSource>(IObservable<TSource> source, TimeSpan timeSpan, IScheduler scheduler)
         {
-            return Buffer_<TSource>(source, timeSpan, scheduler);
+            return Buffer_(source, timeSpan, scheduler);
         }
 
         private static IObservable<IList<TSource>> Buffer_<TSource>(IObservable<TSource> source, TimeSpan timeSpan, IScheduler scheduler)
@@ -34,12 +32,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<IList<TSource>> Buffer<TSource>(IObservable<TSource> source, TimeSpan timeSpan, TimeSpan timeShift)
         {
-            return Buffer_<TSource>(source, timeSpan, timeShift, SchedulerDefaults.TimeBasedOperations);
+            return Buffer_(source, timeSpan, timeShift, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<IList<TSource>> Buffer<TSource>(IObservable<TSource> source, TimeSpan timeSpan, TimeSpan timeShift, IScheduler scheduler)
         {
-            return Buffer_<TSource>(source, timeSpan, timeShift, scheduler);
+            return Buffer_(source, timeSpan, timeShift, scheduler);
         }
 
         private static IObservable<IList<TSource>> Buffer_<TSource>(IObservable<TSource> source, TimeSpan timeSpan, TimeSpan timeShift, IScheduler scheduler)
@@ -53,12 +51,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<IList<TSource>> Buffer<TSource>(IObservable<TSource> source, TimeSpan timeSpan, int count)
         {
-            return Buffer_<TSource>(source, timeSpan, count, SchedulerDefaults.TimeBasedOperations);
+            return Buffer_(source, timeSpan, count, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<IList<TSource>> Buffer<TSource>(IObservable<TSource> source, TimeSpan timeSpan, int count, IScheduler scheduler)
         {
-            return Buffer_<TSource>(source, timeSpan, count, scheduler);
+            return Buffer_(source, timeSpan, count, scheduler);
         }
 
         private static IObservable<IList<TSource>> Buffer_<TSource>(IObservable<TSource> source, TimeSpan timeSpan, int count, IScheduler scheduler)
@@ -76,12 +74,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Delay<TSource>(IObservable<TSource> source, TimeSpan dueTime)
         {
-            return Delay_<TSource>(source, dueTime, SchedulerDefaults.TimeBasedOperations);
+            return Delay_(source, dueTime, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> Delay<TSource>(IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
         {
-            return Delay_<TSource>(source, dueTime, scheduler);
+            return Delay_(source, dueTime, scheduler);
         }
 
         private static IObservable<TSource> Delay_<TSource>(IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
@@ -95,12 +93,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Delay<TSource>(IObservable<TSource> source, DateTimeOffset dueTime)
         {
-            return Delay_<TSource>(source, dueTime, SchedulerDefaults.TimeBasedOperations);
+            return Delay_(source, dueTime, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> Delay<TSource>(IObservable<TSource> source, DateTimeOffset dueTime, IScheduler scheduler)
         {
-            return Delay_<TSource>(source, dueTime, scheduler);
+            return Delay_(source, dueTime, scheduler);
         }
 
         private static IObservable<TSource> Delay_<TSource>(IObservable<TSource> source, DateTimeOffset dueTime, IScheduler scheduler)
@@ -130,12 +128,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> DelaySubscription<TSource>(IObservable<TSource> source, TimeSpan dueTime)
         {
-            return DelaySubscription_<TSource>(source, dueTime, SchedulerDefaults.TimeBasedOperations);
+            return DelaySubscription_(source, dueTime, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> DelaySubscription<TSource>(IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
         {
-            return DelaySubscription_<TSource>(source, dueTime, scheduler);
+            return DelaySubscription_(source, dueTime, scheduler);
         }
 
         private static IObservable<TSource> DelaySubscription_<TSource>(IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
@@ -145,12 +143,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> DelaySubscription<TSource>(IObservable<TSource> source, DateTimeOffset dueTime)
         {
-            return DelaySubscription_<TSource>(source, dueTime, SchedulerDefaults.TimeBasedOperations);
+            return DelaySubscription_(source, dueTime, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> DelaySubscription<TSource>(IObservable<TSource> source, DateTimeOffset dueTime, IScheduler scheduler)
         {
-            return DelaySubscription_<TSource>(source, dueTime, scheduler);
+            return DelaySubscription_(source, dueTime, scheduler);
         }
 
         private static IObservable<TSource> DelaySubscription_<TSource>(IObservable<TSource> source, DateTimeOffset dueTime, IScheduler scheduler)
@@ -164,12 +162,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TResult> Generate<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, Func<TState, TimeSpan> timeSelector)
         {
-            return Generate_<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector, SchedulerDefaults.TimeBasedOperations);
+            return Generate_(initialState, condition, iterate, resultSelector, timeSelector, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TResult> Generate<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, Func<TState, TimeSpan> timeSelector, IScheduler scheduler)
         {
-            return Generate_<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector, scheduler);
+            return Generate_(initialState, condition, iterate, resultSelector, timeSelector, scheduler);
         }
 
         private static IObservable<TResult> Generate_<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, Func<TState, TimeSpan> timeSelector, IScheduler scheduler)
@@ -179,12 +177,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TResult> Generate<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, Func<TState, DateTimeOffset> timeSelector)
         {
-            return Generate_<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector, SchedulerDefaults.TimeBasedOperations);
+            return Generate_(initialState, condition, iterate, resultSelector, timeSelector, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TResult> Generate<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, Func<TState, DateTimeOffset> timeSelector, IScheduler scheduler)
         {
-            return Generate_<TState, TResult>(initialState, condition, iterate, resultSelector, timeSelector, scheduler);
+            return Generate_(initialState, condition, iterate, resultSelector, timeSelector, scheduler);
         }
 
         private static IObservable<TResult> Generate_<TState, TResult>(TState initialState, Func<TState, bool> condition, Func<TState, TState> iterate, Func<TState, TResult> resultSelector, Func<TState, DateTimeOffset> timeSelector, IScheduler scheduler)
@@ -212,12 +210,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Sample<TSource>(IObservable<TSource> source, TimeSpan interval)
         {
-            return Sample_<TSource>(source, interval, SchedulerDefaults.TimeBasedOperations);
+            return Sample_(source, interval, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> Sample<TSource>(IObservable<TSource> source, TimeSpan interval, IScheduler scheduler)
         {
-            return Sample_<TSource>(source, interval, scheduler);
+            return Sample_(source, interval, scheduler);
         }
 
         private static IObservable<TSource> Sample_<TSource>(IObservable<TSource> source, TimeSpan interval, IScheduler scheduler)
@@ -227,7 +225,7 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Sample<TSource, TSample>(IObservable<TSource> source, IObservable<TSample> sampler)
         {
-            return Sample_<TSource, TSample>(source, sampler);
+            return Sample_(source, sampler);
         }
 
         private static IObservable<TSource> Sample_<TSource, TSample>(IObservable<TSource> source, IObservable<TSample> sampler)
@@ -241,12 +239,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Skip<TSource>(IObservable<TSource> source, TimeSpan duration)
         {
-            return Skip_<TSource>(source, duration, SchedulerDefaults.TimeBasedOperations);
+            return Skip_(source, duration, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> Skip<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
         {
-            return Skip_<TSource>(source, duration, scheduler);
+            return Skip_(source, duration, scheduler);
         }
 
         private static IObservable<TSource> Skip_<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
@@ -263,12 +261,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> SkipLast<TSource>(IObservable<TSource> source, TimeSpan duration)
         {
-            return SkipLast_<TSource>(source, duration, SchedulerDefaults.TimeBasedOperations);
+            return SkipLast_(source, duration, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> SkipLast<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
         {
-            return SkipLast_<TSource>(source, duration, scheduler);
+            return SkipLast_(source, duration, scheduler);
         }
 
         private static IObservable<TSource> SkipLast_<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
@@ -282,12 +280,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> SkipUntil<TSource>(IObservable<TSource> source, DateTimeOffset startTime)
         {
-            return SkipUntil_<TSource>(source, startTime, SchedulerDefaults.TimeBasedOperations);
+            return SkipUntil_(source, startTime, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> SkipUntil<TSource>(IObservable<TSource> source, DateTimeOffset startTime, IScheduler scheduler)
         {
-            return SkipUntil_<TSource>(source, startTime, scheduler);
+            return SkipUntil_(source, startTime, scheduler);
         }
 
         private static IObservable<TSource> SkipUntil_<TSource>(IObservable<TSource> source, DateTimeOffset startTime, IScheduler scheduler)
@@ -304,12 +302,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Take<TSource>(IObservable<TSource> source, TimeSpan duration)
         {
-            return Take_<TSource>(source, duration, SchedulerDefaults.TimeBasedOperations);
+            return Take_(source, duration, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> Take<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
         {
-            return Take_<TSource>(source, duration, scheduler);
+            return Take_(source, duration, scheduler);
         }
 
         private static IObservable<TSource> Take_<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
@@ -326,17 +324,17 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> TakeLast<TSource>(IObservable<TSource> source, TimeSpan duration)
         {
-            return TakeLast_<TSource>(source, duration, SchedulerDefaults.TimeBasedOperations, SchedulerDefaults.Iteration);
+            return TakeLast_(source, duration, SchedulerDefaults.TimeBasedOperations, SchedulerDefaults.Iteration);
         }
 
         public virtual IObservable<TSource> TakeLast<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
         {
-            return TakeLast_<TSource>(source, duration, scheduler, SchedulerDefaults.Iteration);
+            return TakeLast_(source, duration, scheduler, SchedulerDefaults.Iteration);
         }
 
         public virtual IObservable<TSource> TakeLast<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler timerScheduler, IScheduler loopScheduler)
         {
-            return TakeLast_<TSource>(source, duration, timerScheduler, loopScheduler);
+            return TakeLast_(source, duration, timerScheduler, loopScheduler);
         }
 
         private static IObservable<TSource> TakeLast_<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler timerScheduler, IScheduler loopScheduler)
@@ -346,12 +344,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<IList<TSource>> TakeLastBuffer<TSource>(IObservable<TSource> source, TimeSpan duration)
         {
-            return TakeLastBuffer_<TSource>(source, duration, SchedulerDefaults.TimeBasedOperations);
+            return TakeLastBuffer_(source, duration, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<IList<TSource>> TakeLastBuffer<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
         {
-            return TakeLastBuffer_<TSource>(source, duration, scheduler);
+            return TakeLastBuffer_(source, duration, scheduler);
         }
 
         private static IObservable<IList<TSource>> TakeLastBuffer_<TSource>(IObservable<TSource> source, TimeSpan duration, IScheduler scheduler)
@@ -365,12 +363,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> TakeUntil<TSource>(IObservable<TSource> source, DateTimeOffset endTime)
         {
-            return TakeUntil_<TSource>(source, endTime, SchedulerDefaults.TimeBasedOperations);
+            return TakeUntil_(source, endTime, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> TakeUntil<TSource>(IObservable<TSource> source, DateTimeOffset endTime, IScheduler scheduler)
         {
-            return TakeUntil_<TSource>(source, endTime, scheduler);
+            return TakeUntil_(source, endTime, scheduler);
         }
 
         private static IObservable<TSource> TakeUntil_<TSource>(IObservable<TSource> source, DateTimeOffset endTime, IScheduler scheduler)
@@ -387,12 +385,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Throttle<TSource>(IObservable<TSource> source, TimeSpan dueTime)
         {
-            return Throttle_<TSource>(source, dueTime, SchedulerDefaults.TimeBasedOperations);
+            return Throttle_(source, dueTime, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> Throttle<TSource>(IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
         {
-            return Throttle_<TSource>(source, dueTime, scheduler);
+            return Throttle_(source, dueTime, scheduler);
         }
 
         private static IObservable<TSource> Throttle_<TSource>(IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
@@ -409,17 +407,17 @@ namespace System.Reactive.Linq
 
         #region + TimeInterval +
 
-        public virtual IObservable<System.Reactive.TimeInterval<TSource>> TimeInterval<TSource>(IObservable<TSource> source)
+        public virtual IObservable<Reactive.TimeInterval<TSource>> TimeInterval<TSource>(IObservable<TSource> source)
         {
-            return TimeInterval_<TSource>(source, SchedulerDefaults.TimeBasedOperations);
+            return TimeInterval_(source, SchedulerDefaults.TimeBasedOperations);
         }
 
-        public virtual IObservable<System.Reactive.TimeInterval<TSource>> TimeInterval<TSource>(IObservable<TSource> source, IScheduler scheduler)
+        public virtual IObservable<Reactive.TimeInterval<TSource>> TimeInterval<TSource>(IObservable<TSource> source, IScheduler scheduler)
         {
-            return TimeInterval_<TSource>(source, scheduler);
+            return TimeInterval_(source, scheduler);
         }
 
-        private static IObservable<System.Reactive.TimeInterval<TSource>> TimeInterval_<TSource>(IObservable<TSource> source, IScheduler scheduler)
+        private static IObservable<Reactive.TimeInterval<TSource>> TimeInterval_<TSource>(IObservable<TSource> source, IScheduler scheduler)
         {
             return new TimeInterval<TSource>(source, scheduler);
         }
@@ -432,22 +430,22 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Timeout<TSource>(IObservable<TSource> source, TimeSpan dueTime)
         {
-            return Timeout_<TSource>(source, dueTime, Observable.Throw<TSource>(new TimeoutException()), SchedulerDefaults.TimeBasedOperations);
+            return Timeout_(source, dueTime, Observable.Throw<TSource>(new TimeoutException()), SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> Timeout<TSource>(IObservable<TSource> source, TimeSpan dueTime, IScheduler scheduler)
         {
-            return Timeout_<TSource>(source, dueTime, Observable.Throw<TSource>(new TimeoutException()), scheduler);
+            return Timeout_(source, dueTime, Observable.Throw<TSource>(new TimeoutException()), scheduler);
         }
 
         public virtual IObservable<TSource> Timeout<TSource>(IObservable<TSource> source, TimeSpan dueTime, IObservable<TSource> other)
         {
-            return Timeout_<TSource>(source, dueTime, other, SchedulerDefaults.TimeBasedOperations);
+            return Timeout_(source, dueTime, other, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> Timeout<TSource>(IObservable<TSource> source, TimeSpan dueTime, IObservable<TSource> other, IScheduler scheduler)
         {
-            return Timeout_<TSource>(source, dueTime, other, scheduler);
+            return Timeout_(source, dueTime, other, scheduler);
         }
 
         private static IObservable<TSource> Timeout_<TSource>(IObservable<TSource> source, TimeSpan dueTime, IObservable<TSource> other, IScheduler scheduler)
@@ -461,22 +459,22 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Timeout<TSource>(IObservable<TSource> source, DateTimeOffset dueTime)
         {
-            return Timeout_<TSource>(source, dueTime, Observable.Throw<TSource>(new TimeoutException()), SchedulerDefaults.TimeBasedOperations);
+            return Timeout_(source, dueTime, Observable.Throw<TSource>(new TimeoutException()), SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> Timeout<TSource>(IObservable<TSource> source, DateTimeOffset dueTime, IScheduler scheduler)
         {
-            return Timeout_<TSource>(source, dueTime, Observable.Throw<TSource>(new TimeoutException()), scheduler);
+            return Timeout_(source, dueTime, Observable.Throw<TSource>(new TimeoutException()), scheduler);
         }
 
         public virtual IObservable<TSource> Timeout<TSource>(IObservable<TSource> source, DateTimeOffset dueTime, IObservable<TSource> other)
         {
-            return Timeout_<TSource>(source, dueTime, other, SchedulerDefaults.TimeBasedOperations);
+            return Timeout_(source, dueTime, other, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<TSource> Timeout<TSource>(IObservable<TSource> source, DateTimeOffset dueTime, IObservable<TSource> other, IScheduler scheduler)
         {
-            return Timeout_<TSource>(source, dueTime, other, scheduler);
+            return Timeout_(source, dueTime, other, scheduler);
         }
 
         private static IObservable<TSource> Timeout_<TSource>(IObservable<TSource> source, DateTimeOffset dueTime, IObservable<TSource> other, IScheduler scheduler)
@@ -490,22 +488,22 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TSource> Timeout<TSource, TTimeout>(IObservable<TSource> source, Func<TSource, IObservable<TTimeout>> timeoutDurationSelector)
         {
-            return Timeout_<TSource, TTimeout>(source, Observable.Never<TTimeout>(), timeoutDurationSelector, Observable.Throw<TSource>(new TimeoutException()));
+            return Timeout_(source, Observable.Never<TTimeout>(), timeoutDurationSelector, Observable.Throw<TSource>(new TimeoutException()));
         }
 
         public virtual IObservable<TSource> Timeout<TSource, TTimeout>(IObservable<TSource> source, Func<TSource, IObservable<TTimeout>> timeoutDurationSelector, IObservable<TSource> other)
         {
-            return Timeout_<TSource, TTimeout>(source, Observable.Never<TTimeout>(), timeoutDurationSelector, other);
+            return Timeout_(source, Observable.Never<TTimeout>(), timeoutDurationSelector, other);
         }
 
         public virtual IObservable<TSource> Timeout<TSource, TTimeout>(IObservable<TSource> source, IObservable<TTimeout> firstTimeout, Func<TSource, IObservable<TTimeout>> timeoutDurationSelector)
         {
-            return Timeout_<TSource, TTimeout>(source, firstTimeout, timeoutDurationSelector, Observable.Throw<TSource>(new TimeoutException()));
+            return Timeout_(source, firstTimeout, timeoutDurationSelector, Observable.Throw<TSource>(new TimeoutException()));
         }
 
         public virtual IObservable<TSource> Timeout<TSource, TTimeout>(IObservable<TSource> source, IObservable<TTimeout> firstTimeout, Func<TSource, IObservable<TTimeout>> timeoutDurationSelector, IObservable<TSource> other)
         {
-            return Timeout_<TSource, TTimeout>(source, firstTimeout, timeoutDurationSelector, other);
+            return Timeout_(source, firstTimeout, timeoutDurationSelector, other);
         }
 
         private static IObservable<TSource> Timeout_<TSource, TTimeout>(IObservable<TSource> source, IObservable<TTimeout> firstTimeout, Func<TSource, IObservable<TTimeout>> timeoutDurationSelector, IObservable<TSource> other)
@@ -585,12 +583,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<Timestamped<TSource>> Timestamp<TSource>(IObservable<TSource> source)
         {
-            return Timestamp_<TSource>(source, SchedulerDefaults.TimeBasedOperations);
+            return Timestamp_(source, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<Timestamped<TSource>> Timestamp<TSource>(IObservable<TSource> source, IScheduler scheduler)
         {
-            return Timestamp_<TSource>(source, scheduler);
+            return Timestamp_(source, scheduler);
         }
 
         private static IObservable<Timestamped<TSource>> Timestamp_<TSource>(IObservable<TSource> source, IScheduler scheduler)
@@ -606,12 +604,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<IObservable<TSource>> Window<TSource>(IObservable<TSource> source, TimeSpan timeSpan)
         {
-            return Window_<TSource>(source, timeSpan, SchedulerDefaults.TimeBasedOperations);
+            return Window_(source, timeSpan, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<IObservable<TSource>> Window<TSource>(IObservable<TSource> source, TimeSpan timeSpan, IScheduler scheduler)
         {
-            return Window_<TSource>(source, timeSpan, scheduler);
+            return Window_(source, timeSpan, scheduler);
         }
 
         private static IObservable<IObservable<TSource>> Window_<TSource>(IObservable<TSource> source, TimeSpan timeSpan, IScheduler scheduler)
@@ -621,12 +619,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<IObservable<TSource>> Window<TSource>(IObservable<TSource> source, TimeSpan timeSpan, TimeSpan timeShift)
         {
-            return Window_<TSource>(source, timeSpan, timeShift, SchedulerDefaults.TimeBasedOperations);
+            return Window_(source, timeSpan, timeShift, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<IObservable<TSource>> Window<TSource>(IObservable<TSource> source, TimeSpan timeSpan, TimeSpan timeShift, IScheduler scheduler)
         {
-            return Window_<TSource>(source, timeSpan, timeShift, scheduler);
+            return Window_(source, timeSpan, timeShift, scheduler);
         }
 
         private static IObservable<IObservable<TSource>> Window_<TSource>(IObservable<TSource> source, TimeSpan timeSpan, TimeSpan timeShift, IScheduler scheduler)
@@ -640,12 +638,12 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<IObservable<TSource>> Window<TSource>(IObservable<TSource> source, TimeSpan timeSpan, int count)
         {
-            return Window_<TSource>(source, timeSpan, count, SchedulerDefaults.TimeBasedOperations);
+            return Window_(source, timeSpan, count, SchedulerDefaults.TimeBasedOperations);
         }
 
         public virtual IObservable<IObservable<TSource>> Window<TSource>(IObservable<TSource> source, TimeSpan timeSpan, int count, IScheduler scheduler)
         {
-            return Window_<TSource>(source, timeSpan, count, scheduler);
+            return Window_(source, timeSpan, count, scheduler);
         }
 
         private static IObservable<IObservable<TSource>> Window_<TSource>(IObservable<TSource> source, TimeSpan timeSpan, int count, IScheduler scheduler)

+ 2 - 2
Rx.NET/Source/src/System.Reactive/Linq/QueryLanguageEx.cs

@@ -355,7 +355,7 @@ namespace System.Reactive.Linq
                     {
                         var currentIndex = index;
                         var source = allSources[index];
-                        results.Add(default(TSource));
+                        results.Add(default);
                         group.Add(source.Subscribe(
                             value =>
                             {
@@ -426,7 +426,7 @@ namespace System.Reactive.Linq
 
         public virtual IObservable<TResult> ManySelect<TSource, TResult>(IObservable<TSource> source, Func<IObservable<TSource>, TResult> selector, IScheduler scheduler)
         {
-            return Observable.Defer<TResult>(() =>
+            return Observable.Defer(() =>
             {
                 var chain = default(ChainObservable<TSource>);
 

+ 2 - 3
Rx.NET/Source/src/System.Reactive/ObservableQuery.cs

@@ -37,8 +37,7 @@ namespace System.Reactive
             //
             //   observable.AsQbservable().<operators>.ToEnumerable().AsQueryable()
             //
-            var call = expression as MethodCallExpression;
-            if (call == null || call.Method.DeclaringType != typeof(Qbservable) || call.Method.Name != nameof(Qbservable.ToQueryable))
+            if (!(expression is MethodCallExpression call) || call.Method.DeclaringType != typeof(Qbservable) || call.Method.Name != nameof(Qbservable.ToQueryable))
                 throw new ArgumentException(Strings_Providers.EXPECTED_TOQUERYABLE_METHODCALL, nameof(expression));
 
             //
@@ -494,4 +493,4 @@ namespace System.Reactive
             }
         }
     }
-}
+}

+ 5 - 5
Rx.NET/Source/src/System.Reactive/Observer.Extensions.cs

@@ -25,7 +25,7 @@ namespace System.Reactive
                 throw new ArgumentNullException(nameof(handler));
 
             return new AnonymousObserver<T>(
-                x => handler(Notification.CreateOnNext<T>(x)),
+                x => handler(Notification.CreateOnNext(x)),
                 exception => handler(Notification.CreateOnError<T>(exception)),
                 () => handler(Notification.CreateOnCompleted<T>())
             );
@@ -159,7 +159,7 @@ namespace System.Reactive
         /// <returns>An observer that delivers callbacks to the specified observer in a synchronized manner.</returns>
         /// <exception cref="ArgumentNullException"><paramref name="observer"/> is null.</exception>
         /// <remarks>
-        /// Because a <see cref="System.Threading.Monitor">Monitor</see> is used to perform the synchronization, there's no protection against reentrancy from the same thread.
+        /// Because a <see cref="Monitor">Monitor</see> is used to perform the synchronization, there's no protection against reentrancy from the same thread.
         /// Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as
         /// well, use the <see cref="Synchronize{T}(IObserver{T}, bool)"/> overload, passing true for the second parameter.
         /// </remarks>
@@ -182,7 +182,7 @@ namespace System.Reactive
         /// <exception cref="ArgumentNullException"><paramref name="observer"/> is null.</exception>
         /// <remarks>
         /// When the <paramref name="preventReentrancy"/> parameter is set to false, behavior is identical to the <see cref="Synchronize{T}(IObserver{T})"/> overload which uses
-        /// a <see cref="System.Threading.Monitor">Monitor</see> for synchronization. When the <paramref name="preventReentrancy"/> parameter is set to true, an <see cref="AsyncLock"/>
+        /// a <see cref="Monitor">Monitor</see> for synchronization. When the <paramref name="preventReentrancy"/> parameter is set to true, an <see cref="AsyncLock"/>
         /// is used to queue up callbacks to the specified observer if a reentrant call is made.
         /// </remarks>
         public static IObserver<T> Synchronize<T>(IObserver<T> observer, bool preventReentrancy)
@@ -197,7 +197,7 @@ namespace System.Reactive
         }
 
         /// <summary>
-        /// Synchronizes access to the observer such that its callback methods cannot be called concurrently by multiple threads, using the specified gate object for use by a <see cref="System.Threading.Monitor">Monitor</see>-based lock.
+        /// Synchronizes access to the observer such that its callback methods cannot be called concurrently by multiple threads, using the specified gate object for use by a <see cref="Monitor">Monitor</see>-based lock.
         /// This overload is useful when coordinating multiple observers that access shared state by synchronizing on a common gate object.
         /// Notice reentrant observer callbacks on the same thread are still possible.
         /// </summary>
@@ -207,7 +207,7 @@ namespace System.Reactive
         /// <returns>An observer that delivers callbacks to the specified observer in a synchronized manner.</returns>
         /// <exception cref="ArgumentNullException"><paramref name="observer"/> or <paramref name="gate"/> is null.</exception>
         /// <remarks>
-        /// Because a <see cref="System.Threading.Monitor">Monitor</see> is used to perform the synchronization, there's no protection against reentrancy from the same thread.
+        /// Because a <see cref="Monitor">Monitor</see> is used to perform the synchronization, there's no protection against reentrancy from the same thread.
         /// Hence, overlapped observer callbacks are still possible, which is invalid behavior according to the observer grammar. In order to protect against this behavior as
         /// well, use the <see cref="Synchronize{T}(IObserver{T}, AsyncLock)"/> overload.
         /// </remarks>

+ 3 - 5
Rx.NET/Source/src/System.Reactive/Platforms/UWP/Linq/AsyncInfoObservable.cs

@@ -4,8 +4,6 @@
 
 #if HAS_WINRT
 using System.Reactive.Disposables;
-using System.Reactive.Linq;
-using System.Reactive.Subjects;
 using System.Reactive.Threading.Tasks;
 using System.Runtime.InteropServices.WindowsRuntime;
 using System.Threading.Tasks;
@@ -55,7 +53,7 @@ namespace System.Reactive.Linq
             return AsyncInfo.Run<int>((ct, progress) =>
             {
                 var i = 0;
-                return (Task)source.Do(_ => progress.Report(i++)).DefaultIfEmpty().ToTask(ct);
+                return source.Do(_ => progress.Report(i++)).DefaultIfEmpty().ToTask(ct);
             });
         }
 
@@ -78,7 +76,7 @@ namespace System.Reactive.Linq
 
             return AsyncInfo.Run<TProgress>((ct, progress) =>
             {
-                return (Task)Observable.Create<TSource>(observer =>
+                return Observable.Create<TSource>(observer =>
                 {
                     var obs = Observer.Synchronize(observer);
 
@@ -204,4 +202,4 @@ namespace System.Reactive.Linq
         #endregion
     }
 }
-#endif
+#endif

+ 0 - 1
Rx.NET/Source/src/System.Reactive/Subjects/ConnectableObservable.cs

@@ -2,7 +2,6 @@
 // The .NET Foundation licenses this file to you under the Apache 2.0 License.
 // See the LICENSE file in the project root for more information. 
 
-using System.Reactive.Disposables;
 using System.Reactive.Linq;
 
 namespace System.Reactive.Subjects

+ 1 - 1
Rx.NET/Source/src/System.Reactive/Unit.cs

@@ -59,6 +59,6 @@ namespace System.Reactive
         /// <summary>
         /// Gets the single <see cref="Unit"/> value.
         /// </summary>
-        public static Unit Default => default(Unit);
+        public static Unit Default => default;
     }
 }

+ 6 - 7
Rx.NET/Source/tests/Tests.System.Reactive/Tests/ArgumentValidationTest.cs

@@ -308,7 +308,7 @@ namespace ReactiveTests.Tests
                     var targs = new Type[ga.Length];
 
                     // fill in the type arguments
-                    for (int k = 0; k < targs.Length; k++)
+                    for (var k = 0; k < targs.Length; k++)
                     {
                         // watch out for type constrains
                         // the default typeof(int) will not work when
@@ -353,7 +353,7 @@ namespace ReactiveTests.Tests
                 var args = m.GetParameters();
 
                 // for each parameter of the (generic) method
-                for (int i = 0; i < args.Length; i++)
+                for (var i = 0; i < args.Length; i++)
                 {
                     // prepare a pattern for the method invocation
                     var margs = new object[args.Length];
@@ -364,7 +364,7 @@ namespace ReactiveTests.Tests
 
                     // for each argument index
                     // with the loop i, this creates an N x N matrix where in each row, one argument is null
-                    for (int j = 0; j < args.Length; j++)
+                    for (var j = 0; j < args.Length; j++)
                     {
                         // figure out the type of the argument
                         var pt = args[j].ParameterType;
@@ -443,7 +443,7 @@ namespace ReactiveTests.Tests
                     // prepare method arguments
                     var margs = new object[args.Length];
 
-                    for (int j = 0; j < args.Length; j++)
+                    for (var j = 0; j < args.Length; j++)
                     {
                         var pt = args[j].ParameterType;
                         var paramTypeName = TypeNameOf(pt);
@@ -469,11 +469,10 @@ namespace ReactiveTests.Tests
                     var thrown = true;
                     try
                     {
-                        var o = m.Invoke(null, margs) as IObservable<int>;
-
                         // Should not return null, but would be mistaken for
                         // throwing because of Subscribe(null)
-                        if (o != null) {
+                        if (m.Invoke(null, margs) is IObservable<int> o)
+                        {
                             o.Subscribe(null);
 
                             thrown = false;

+ 4 - 5
Rx.NET/Source/tests/Tests.System.Reactive/Tests/Linq/Observable/TimerTest.cs

@@ -792,21 +792,21 @@ namespace ReactiveTests.Tests
 
         public IDisposable SchedulePeriodic<TState>(TState state, TimeSpan period, Func<TState, TState> action)
         {
-            var run = new TimerRun(this.Clock);
+            var run = new TimerRun(Clock);
             _timers.Add(run);
 
             var x = state;
 
             var d = this.Schedule(period, self =>
             {
-                run.Add(this.Clock);
+                run.Add(Clock);
 
                 x = action(x);
                 self(period);
             });
 
             return new CompositeDisposable(
-                Disposable.Create(() => { run.Stop(this.Clock); }),
+                Disposable.Create(() => { run.Stop(Clock); }),
                 d
             );
         }
@@ -853,8 +853,7 @@ namespace ReactiveTests.Tests
 
         public override bool Equals(object obj)
         {
-            var other = obj as TimerRun;
-            if (other == null)
+            if (!(obj is TimerRun other))
                 return false;
 
             return _started == other._started && _stopped == other._stopped && _ticks.SequenceEqual(other._ticks);