[Property Wrappers] Adjust composed property wrapper constraint generation #31876
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.
When generating constraints for composed property wrappers, equate the former wrappedValue type with the current wrapper type rather than generating value member constraints.
Without connecting a wrappedValue type with the subsequent wrapper type, the constraint system couldn't infer types in some cases where the
wrappedValue
argument to the outermost wrapper init is defaulted.This change also makes another step toward unifying how property wrapper backing types are computed. The code in
generateWrappedPropertyTypeConstraints
is now very similar to the computation of the property wrapper backing type in the absence of an initial value/default initialization inPropertyWrapperBackingPropertyTypeRequest
. I intend to remove the duplication in a follow-up refactoring, which will also improve some diagnostics when the wrapped property has an incompatible type.Resolves: rdar://problem/59740181
Resolves: SR-12250