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