Hello, everyone. I have a question about
Foundation in apple/swift-corelibs-foundation uses
@_implementationOnly to import
CoreFoundation. At the same time,
RunLoop.swift is still importing CoreFoundation without the attribute.
The import in
RunLoop.swift causes warnings that say
'CoreFoundation' inconsistently imported as implementation-only. But if the warnings are resolved by adding
@_implementationOnly for all imports, there will be a problem with the static auto-linking mechanism, I think.
AFAIU, if Foundation imports CoreFoundation without
@_implementationOnly, a client of Foundation doesn't need to import CoreFoundation and also doesn't need to link libCoreFoundation explicitly, thanks to the auto-linking mechanism.
But if Foundation imports CoreFoundation with
@_implementationOnly, CoreFoundation wouldn't be linked to the client automatically. So when a client code uses a Foundation API, that depends on CoreFoundation implementation, linking will be failed with
undefined symbol: _CFXXXX as long as the client doesn't import CoreFoundation explicitly.
So I want to confirm that the explicit import is the expected behavior of
@_implementationOnly or not.