Commits

Doug Gregor committed 71882c6516f
[API Notes] Use API notes rather than overlays to make error enums bridge. The Clang attribute allows one to state that a particular enumeration type describes an error, and associates it with a particular domain constant. However, due to lack of API notes support, this attribute wasn't actually getting used. Instead, we had a number of explicit extensions to enum types to make them conform to the _BridgedNSError protocol explicitly. Now that we have API notes, use them to make these enums into error enums with the appropriate domain, so that the Clang importer will synthesize the _BridgedNSError conformances. Then, remove all of the explicit conformances---and with them, the overlays for 12 frameworks. There is a small fix to more eagerly consider these conformances as "used" if an expression is formed with the error enum as a value type. This better ensures that the conformances will be available at runtime when needed. This cleanup is needed to implement SE-0112 (NSError bridging), although it is useful by itself.