Add GroupJoin overload returning IGrouping#121999
Conversation
src/libraries/System.Linq.Queryable/ref/System.Linq.Queryable.cs
Outdated
Show resolved
Hide resolved
eiriktsarpalis
left a comment
There was a problem hiding this comment.
@copilot you forgot to add the corresponding IAsyncEnumerable overloads in the System.Linq.AsyncEnumerable project.
|
Tagging subscribers to this area: @dotnet/area-system-linq |
|
@copilot please invoke the code-review skill and post your analysis/results as comment on this PR |
🤖 Copilot Code ReviewHolistic AssessmentMotivation: The PR implements an approved API (issue #120587, Approach: The implementation follows the existing patterns in each project ( Summary: Detailed Findings
|
Fixed in commit 5302dce. The doc errors were |
|
@copilot revert the test change in your last commit - VariousValues_WithoutResultSelector_MatchesEnumerable is explicitly about calling the overload without the result selector, as the name suggests. |
…f NET guard Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/b663f7d6-0dca-41da-ba81-1e3b9f775323 Co-authored-by: roji <[email protected]>
Restored the original test form in commit 488b542. Wrapped the body in |
🤖 Copilot Code Review — PR #121999Note This review was generated by Copilot. Holistic AssessmentMotivation: Justified — the existing Approach: Good — the implementation closely mirrors the existing Summary: ✅ LGTM. The implementation matches the approved API shape from #120587 (including the v2 with Detailed Findings✅ API Approval Verification — Matches approved shapeIssue #120587 has the
Ref assembly entries are present for all three libraries. No unapproved public API surface detected. ✅ Implementation Correctness — Follows existing patterns
The new ✅ Test Coverage — ComprehensiveTests cover:
✅ XML Documentation — CorrectThe 💡 Suggestion — Minor:
|
|
@copilot Please fix the merge conflicts. |
Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/3c8768a0-ae9d-4fd7-a701-1bae8afd5817 Co-authored-by: eiriktsarpalis <[email protected]>
Head branch was pushed to by a user without write access
|
@copilot you did not fix the merge conflicts. Please try again. |
…urn-overload Co-authored-by: eiriktsarpalis <[email protected]>
Fixed in merge commit 72dae6c. The conflict was in |
|
/ba-g tests are passing |
Implements the approved API from #120587 — a simplified
GroupJoinoverload that removes the need for an explicit result selector, returningIGrouping<TOuter, TInner>where the outer element is the key and the correlated inner elements are the grouping contents.Description
API
Changes
GroupJoin<TOuter,TInner,TKey>overload with optionalIEqualityComparer<TKey>?parameter + internalGroupJoinGrouping<TKey, TElement>wrapper class. XML doc comments with correct<see cref="IGrouping{TOuter, TInner}"/>references added to the new public API.IEqualityComparer<TKey>?parameter and[DynamicDependency]onEnumerable.GroupJoin3`. XML doc comments added.IEqualityComparer<TKey>?parameter + internalAsyncGroupJoinGrouping<TKey, TElement>wrapper class. XML doc comments added.#if NETguards in the async enumerable tests for net481 compatibility (the newEnumerable.GroupJoinoverload and tuple-returningZipare unavailable on .NET Framework 4.8.1).