Commits
Doug Gregor committed 53b2bbbea4a
[Protocol conformance] Reimplement matching of witnesses to non-type requirements.
Reimplement the matching of witnesses for function, variable, and
subscript requirements. Provide more detailed diagnostics for
mismatches, and introduce a simplistic framework for deciding among
possible alternatives. This introduces two semantic differences:
- A witness for which the parameter names match is considered better
than one for which the parameter names do not match, allowing some
additional disambiguation (e.g., for <rdar://problem/14210345>,
which is not yet complete).
- The witnesses for an [objc] protocol must themselves be
[objc]. Otherwise, we can't invoke them via objc_msgSend.
Swift SVN r5786