Use error hints for convert and (::Type)(args...) MethodErrors
#60188
+12
−11
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.
Currently, we have some special-cased logic in the printing of
MethodErrorthat combines the method candidates of(::Type)(args...)with the method candidates forconvert(::Type, args...). This is because these things are frequently confused with eachother, but IMO it's a bit misleading because those are not actually candidates!i.e.
Foo(::Int)andFoo(::Any)weren't actually dispatch candidates here and it's kinda weird to list them.The current implementation preceeds us having error hints, but I think this is a good use-case for those hints. This PR uses hints to turn the error messages into
and likewise, when the user calls a type on arguments, if there's an applicable
convertmethod, we also suggest it: