-
Notifications
You must be signed in to change notification settings - Fork 227
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Swift 6/Xcode 16 #828
base: main
Are you sure you want to change the base?
Conversation
3de1e58
to
6b42169
Compare
8d16e9a
to
d3fa1ed
Compare
d3fa1ed
to
e00993e
Compare
e00993e
to
1f2f87e
Compare
Hey @johnfairh! I'd appreciate your feedback on this PR and the other PRs building on top of it. 🙏 |
All the attribute / version / fixtures stuff looks good - the way I handled the WinSDK issue before is to shim them enough to make macOS SourceKit happy with the types. In hindsight I ought to have added a comment to the failing test as well... I think this a bit more future-proof than rummaging through the json & keeping track of which / how many errors we expect - if the windows people do get interested in sourcekitten again then maybe they can centralise the shims or figure out a better approach. This at the top of WindowsError.swift means the #if !os(Windows)
// Shims for !windows SourceKit - see LibraryWrapperGeneratorTests.testLibraryWrappersAreUpToDate
private typealias WORD = UInt
private typealias DWORD = WORD
private typealias WCHAR = WORD
private let FORMAT_MESSAGE_ALLOCATE_BUFFER = 0
private let FORMAT_MESSAGE_FROM_SYSTEM = 0
private let FORMAT_MESSAGE_IGNORE_INSERTS = 0
private func FormatMessageW(_ a: DWORD, _ b: Int?, _ c: DWORD, _ d: DWORD, _ e: Any?, _ f: Int, _ g: Int?) -> DWORD { 0 }
#endif |
Thank you for the tip. That works without changes in the test. |
001bd13
to
d897c75
Compare
d897c75
to
7e40065
Compare
14.x versions are no longer available on macOS 14 images as can be seen in a recent PR build.
Building successfully with Xcode 16 requires to update a few test dependencies. It especially seems to have issues parsing files with unknown dependencies now.