mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
This is a workaround to fix weak linking of frameworks that define types with availability, but then define extensions of those types without availability. This can come up if the framework itself is built with a newer deployment target than the client that uses the framework. Since the type checker only enforces that an extension has availability if the extension is less available than the deployment target, we were failing to weak link the members of the extension in this case. This is not a perfect fix; ideally such frameworks should be built with -require-explicit-availability, and all reported warnings fixed by adding explicit availability. However, it allows clients to weak link when using existing swiftinterface files that have already shipped in the mean time, and it should not cause any problems once the frameworks are properly annotated in the future. Fixes <rdar://problem/58490723>.
9 lines
122 B
Swift
9 lines
122 B
Swift
@available(macOS 10.60, *)
|
|
public struct Foo {
|
|
public init() {}
|
|
}
|
|
|
|
extension Foo {
|
|
public func extensionMethod() {}
|
|
}
|