Do not write user type annotation for const param value path #138284
Merged
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.
As I noted in the code comment,
DefKind::ConstParam
isn't actually generic over its own args, we just use the identity args from the body when lowering the value path so we have something to plug into theEarlyBinder
we get back fromtype_of
for the const param. So skip over it inwrite_user_type_annotation_from_args
.Somewhat unrelated, but I left an explanation for a somewhat mysterious quirk in the THIR lowering of user type annotations for patterns having to do with ctors and their
type_of
not actually being the type of the pattern node it's ascribing.Fixes #138048
r? @BoxyUwU