[4.0] [Type checker] Check type equality even for argument tuples in Swift 4. #10447
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.
Explanation: In Swift 4 mode, comparisons of single-parameter, unlabeled functions could fail when the parameter types were different spellings of the same type. This manifested in nonsensical failures with protocol conformance checking, but could happen in a number of places.
Scope: Obviously-correct code that works in Swift 3.2 mode would fail (or produce weird results) in Swift 4 mode. We've only pinned a single SR/radar on this bug, but I highly suspect that there are others.
Radar: SR-5166 / rdar://problem/32666189.
Risk: Fairly low; the change is localized to Swift 4 mode and "obviously" an improvement of what we previously had.
Testing: New test + normal compiler regression testing.