Add a Swift API to read an IndexStore #258
Draft
+1,447
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Reading an index store using the APIs provided by
libIndexStore.dylibis pretty tedious and error-prone due to its manual memory management. Add a Swift wrapper around that API. With the use of non-copyable types and lifetime annotations, this nice Swift interface has no performance overhead compared to accessing the raw C APIs.I’ve tested the library manually so far but want to add tests before merging this.
Apart from being a nice API for any tool that needs to read an index store and doesn’t want to build on top of indexstore-db, this could the the basis for rewriting indexstore-db in Swift, should we want to one day.