Skip to content

Conversation

@idg10
Copy link
Collaborator

@idg10 idg10 commented Nov 18, 2025

We missed this earlier. Similar to AverageAsync, the set of SumAsync overloads available in .NET 10's new System.Linq.AsyncEnumerable package is a subset of the overloads previously available in System.Linq.Async. Ix.NET always offered various projection-based overloads, but the new System.Linq.AsyncEnumerable package does not.

The general pattern is that whereas System.Linq.Async was intended for core 'standard' LINQ features, we put Ix-specific operators in System.Interactive.Async. Since System.Linq.AsyncEnumerable doesn'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 into System.Interactive.Async. (They remain in System.Linq.Async in '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.Async and System.Linq.AsyncEnumerable, so this closes #2279

… 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
@idg10 idg10 added this to the Ix 7.0 milestone Nov 18, 2025
@idg10 idg10 self-assigned this Nov 18, 2025
@idg10 idg10 merged commit 8da4d2a into main Nov 18, 2025
6 checks passed
@idg10 idg10 deleted the feature/syslinqasync-hide-sumlambda branch November 18, 2025 13:20
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

System.Interactive.Async collides with System.Linq.AsyncEnumerable

3 participants