[SE-0025] Adapt accessibility for fileprivate
#124
Closed
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.
The standard migration path for SE-0025 is to find-and-replace all uses of
private
withfileprivate
. However, this expands accessibility beyond the necessary minimum. This commit uses compiler errors to determine the minimum set of changes.This should only be tested/merged once apple/swift#3000 has landed in apple/swift. Thanks to @CodaFi for making it easy to enable the new
fileprivate
errors -- to discover the necessary changes I applied the following change to apple/swift#3000 (since that pull request now aliasesprivate
tofileprivate
for migration purposes):We could probably refactor a bit after this pull request, to reduce API from
fileprivate
toprivate
where possible.