Skip to content

Re-export symbols using type aliases, instead#477

Draft
stephencelis wants to merge 6 commits into
mainfrom
export-fixes
Draft

Re-export symbols using type aliases, instead#477
stephencelis wants to merge 6 commits into
mainfrom
export-fixes

Conversation

@stephencelis

Copy link
Copy Markdown
Member

We've relied on fine-grained GRDB exports via, e.g.:

@_exported import class GRDB.Database

This underscored feature unfortunately doesn't always seem to play nicely with Swift's upcoming features around member visibility and internal imports. While I can't always reproduce the issue, I have been able to do so in the Reminders app, which had some explicit imports to work around the issue.

This commit updates things to use public typealias for aliasing instead, which does not appear to cause ambiguity when an import GRDB is done in the same file. This is also how some of Apple's packages handle the same problem.

We've relied on fine-grained GRDB exports via, e.g.:

```swift
@_exported import class GRDB.Database
```

This underscored feature unfortunately doesn't always seem to play
nicely with Swift's upcoming features around member visibility and
internal imports. While I can't always reproduce the issue, I have been
able to do so in the Reminders app, which had some explicit imports to
work around the issue.

This commit updates things to use `public typealias` for aliasing
instead, which does not appear to cause ambiguity when an `import GRDB`
is done in the same file. This is also how some of Apple's packages
handle the same problem.
@stephencelis stephencelis marked this pull request as draft June 9, 2026 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants