Move projection SumAsync to System.Interactive.Async#2289
Merged
Conversation
… System.Interactive.Async Also introduced a INCLUDE_RELOCATED_TO_INTERACTIVE_ASYNC constant that is set during reference assembly build. This behaves identically to INCLUDE_SYSTEM_LINQ_ASYNCENUMERABLE_DUPLICATES, but enables the source code to distinguish between methods hidden because they are now in System.Linq.AsyncEumerable, and methods hidden because we moved them to System.Interactive.Async
mwadams
approved these changes
Nov 18, 2025
hmawhoob-dot
pushed a commit
to hmawhoob-dot/reactive
that referenced
this pull request
Dec 1, 2025
Also introduced a INCLUDE_RELOCATED_TO_INTERACTIVE_ASYNC constant that is set during reference assembly build. This behaves identically to INCLUDE_SYSTEM_LINQ_ASYNCENUMERABLE_DUPLICATES, but enables the source code to distinguish between methods hidden because they are now in System.Linq.AsyncEumerable, and methods hidden because we moved them to System.Interactive.Async
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
We missed this earlier. Similar to
AverageAsync, the set ofSumAsyncoverloads available in .NET 10's newSystem.Linq.AsyncEnumerablepackage is a subset of the overloads previously available inSystem.Linq.Async. Ix.NET always offered various projection-based overloads, but the newSystem.Linq.AsyncEnumerablepackage does not.The general pattern is that whereas
System.Linq.Asyncwas intended for core 'standard' LINQ features, we put Ix-specific operators inSystem.Interactive.Async. SinceSystem.Linq.AsyncEnumerabledoesn't provide these overloads, that pretty much means they aren't standard operators.We are aiming to deprecated Ix's
System.Linq.Async, so we can't just leave these overloads in there. So instead, we move them intoSystem.Interactive.Async. (They remain inSystem.Linq.Asyncin 'hidden' form, only present in the runtime assemblies to provide backwards compatibility.)We think this is the last of the work required to deal with potential conflicts between
System.Interactive.AsyncandSystem.Linq.AsyncEnumerable, so this closes #2279