瀏覽代碼

Update visibility on AsyncEnumberableExtensions to hideit from the ref on .NET Standard 2.1

Oren Novotny 6 年之前
父節點
當前提交
791d078ff8
共有 1 個文件被更改,包括 11 次插入32 次删除
  1. 11 32
      Ix.NET/Source/System.Linq.Async/System/Threading/Tasks/AsyncEnumerableExtensions.cs

+ 11 - 32
Ix.NET/Source/System.Linq.Async/System/Threading/Tasks/AsyncEnumerableExtensions.cs

@@ -7,7 +7,14 @@ using System.Runtime.CompilerServices;
 
 namespace System.Threading.Tasks
 {
-    public static class AsyncEnumerableExtensions
+
+    // This type is only public for ref assms < .NET Standard 2.1 and implementations    
+#if !BCL_HAS_CONFIGUREAWAIT || !REFERENCE_ASSEMBLY
+    public
+#else
+    internal
+#endif
+        static class AsyncEnumerableExtensions
     {
 #if !BCL_HAS_CONFIGUREAWAIT // https://github.com/dotnet/coreclr/pull/21939
 
@@ -37,8 +44,9 @@ namespace System.Threading.Tasks
             new ConfiguredCancelableAsyncEnumerable<T>(source, continueOnCapturedContext: true, cancellationToken);
 
 
-#elif !REFERENCE_ASSEMBLY
-        // we need to carry an impl that delegates to the BCL version of these
+#else
+        // we need to carry an impl that delegates to the BCL version of these in the lib
+        // They won't be in the ref
 
         /// <summary>Configures how awaits on the tasks returned from an async disposable will be performed.</summary>
         /// <param name="source">The source async disposable.</param>
@@ -65,35 +73,6 @@ namespace System.Threading.Tasks
         [MethodImpl(MethodImplOptions.AggressiveInlining)]
         public static ConfiguredCancelableAsyncEnumerable<T> WithCancellation<T>(
             this IAsyncEnumerable<T> source, CancellationToken cancellationToken) => TaskExtensions.WithCancellation(source, cancellationToken);
-
-#else
-        // Reference assembly, these won't be emitted, but keep these internal so we can compile
-
-        /// <summary>Configures how awaits on the tasks returned from an async disposable will be performed.</summary>
-        /// <param name="source">The source async disposable.</param>
-        /// <param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
-        /// <returns>The configured async disposable.</returns>
-        [MethodImpl(MethodImplOptions.AggressiveInlining)]
-        internal static ConfiguredAsyncDisposable ConfigureAwait(this IAsyncDisposable source, bool continueOnCapturedContext) =>
-            TaskExtensions.ConfigureAwait(source, continueOnCapturedContext);
-
-        /// <summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
-        /// <typeparam name="T">The type of the objects being iterated.</typeparam>
-        /// <param name="source">The source enumerable being iterated.</param>
-        /// <param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
-        /// <returns>The configured enumerable.</returns>
-        [MethodImpl(MethodImplOptions.AggressiveInlining)]
-        internal static ConfiguredCancelableAsyncEnumerable<T> ConfigureAwait<T>(
-            this IAsyncEnumerable<T> source, bool continueOnCapturedContext) => TaskExtensions.ConfigureAwait(source, continueOnCapturedContext);
-
-        /// <summary>Sets the <see cref="CancellationToken"/> to be passed to <see cref="IAsyncEnumerable{T}.GetAsyncEnumerator(CancellationToken)"/> when iterating.</summary>
-        /// <typeparam name="T">The type of the objects being iterated.</typeparam>
-        /// <param name="source">The source enumerable being iterated.</param>
-        /// <param name="cancellationToken">The <see cref="CancellationToken"/> to use.</param>
-        /// <returns>The configured enumerable.</returns>
-        [MethodImpl(MethodImplOptions.AggressiveInlining)]
-        internal static ConfiguredCancelableAsyncEnumerable<T> WithCancellation<T>(
-            this IAsyncEnumerable<T> source, CancellationToken cancellationToken) => TaskExtensions.WithCancellation(source, cancellationToken);
 #endif
     }
 }