Disfavor overloads of __checkFunctionCall() with variadic generics.
#1389
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.
This works around rdar://122011759 which appears to have been exacerbated by swiftlang/swift#84907.
For example:
The third parameter of
fmemopen()is of typeconst char *(AKAUnsafePointer<CChar>) and we're passing the string literal"wb+"which is implicitly cast to a C string by the compiler. However, overload resolution of the expansion function used by#require()is now preferring an overload that uses variadic generics, and that overload is impacted by a compiler issue (rdar://122011759) that causes it to pass a garbage pointer as the temporary C string. Previously, the type checker would pick an overload with a concrete, finite set of generic arguments (<T, Arg0, Arg1, Arg2, R>instead of<T, each U, R>.)Checklist: