checker: optimize option and result typ check, add more typinfo to error details #21105
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.
The main change of the PR is improving error messages to provide more details on return types. The changes serve as a base for a bugfix in a followup but take up their own scope so they are submitted separately.
The PR intentionally makes minimal changes to the error messages, keeping it similar to the current state. Imho the error messages can generally be optimized here by using error details to split things up into showing an expressive error message and providing a recommendation for action. But that's a scope for a separate PR as well.
There are also minor optimization to the codeblock of the check. It moves variables assignments deeper into the block scope where they are used and removes a duplicate conditional check. Modern compilers should be smart enough to optimize such variable assignments, so the optimization likely mainly helps with read-/maintainability.