Commit Graph

3 Commits

Author SHA1 Message Date
Karoy Lorentey
1d1205d669 [Foundation] Work around name resolution in Swift 5.3
In 5.3, if an Objective-C method declared in a header shares the same name as an inaccessible Swift method, then the compiler considers the method to be inaccessible. As a workaround, rename the Swift method and stop emitting a symbol for it.

This is not a problem on the trunk, but there is no reason to expose this symbol there, either.
2020-07-14 12:06:31 -07:00
Karoy Lorentey
505d87ca26 [Foundation] Extract logging details to a standalone function 2020-07-08 19:57:04 -07:00
Karoy Lorentey
f44cbe4697 [Foundation] Update & simplify class name stability check
Move the ObjC class name stability check logic to the Swift runtime, exposing it as a new SPI called _swift_isObjCTypeNameSerializable.

Update the reporting logic. The ObjC names of generic classes are considered stable now, but private classes and classes defined in function bodies or other anonymous contexts are unstable by design.

On the overlay side, rewrite the check’s implementation in Swift and considerably simplify it.

rdar://57809977
2020-07-02 19:32:22 -07:00