Show all overloads in QuickInfo for overloaded CE custom operators#19865
Open
T-Gro wants to merge 4 commits into
Open
Show all overloads in QuickInfo for overloaded CE custom operators#19865T-Gro wants to merge 4 commits into
T-Gro wants to merge 4 commits into
Conversation
) Captures issue #11612: when a CE builder defines multiple [<CustomOperation>] overloads, FCS GetToolTip always returns the generic 'custom operation: NAME (bool)' description from the last registered overload rather than the resolved overload's parameter types. Current failures (RED): - CE custom operator QuickInfo shows resolved overload: tooltip is 'custom operation: whereOp (bool)\nCalls Builder.Wh...' - missing 'int' from resolved WhereInt overload - CE custom operator with three overloads shows resolved float overload: tooltip is 'custom operation: filterOp (bool)\nCalls Builder.F...' - missing 'float' - GetSymbolUse resolves correct CE operator overload: tooltip is 'custom operation: pickOne (bool)\nCalls Builder.Pi...' - missing 'int' Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…11612) Aggregate sibling [<CustomOperation>] methods on the builder type when rendering Item.CustomOperation tooltips, placing the resolved overload first. When there is more than one overload, also append the first parameter's type so that distinct overloads are visibly distinguished. Fixes #11612. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
❗ Release notes required
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
brianrourkeboll
left a comment
There was a problem hiding this comment.
Why show all of them instead of the resolved overload? (#15206 (comment))
In my opinion, the behavior would ideally be the same for overloaded custom operations as it is for overloaded methods.
auduchinok
reviewed
May 29, 2026
| let result = b { for x in [1.0;2.0] do filterO{caret}p (x > 0.0) } | ||
| """ | ||
| |> renderAllGroups | ||
| |> fun text -> Assert.Contains("float", text) |
Member
There was a problem hiding this comment.
Can we dump all the overloads instead?
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.
Summary
Fixes #11612
When hovering over an overloaded [] keyword in a computation expression, QuickInfo now shows all overloads instead of only the last one.
Changes
Testing