Commits

Doug Gregor committed 88e4d436005
Make optionality checking more lenient in requirement/witness matching. When comparing a requirement to a witness for @objc protocols, strip optionality out of the types and keep track of the optionality differences separately. When we have actually matched a witness, diagnose any unsafe (via an error) or ill-advised (via a warning) differences, providing Fix-Its to update the optionality. This change addresses a usable problem introduced by the fix to rdar://problem/18383574: witnesses for optional requirements of @objc protocols could previously have completely wrong optionality, and we would "allow" it by not actually matching the witness to the requirement. Then it would happen to work at runtime because it's @objc. Now, we match those witnesses and diagnose issues, with Fix-Its to clean up the user's code. Addresses rdar://problem/19656106. Swift SVN r24939