[swift-evolution] SE-0025: Scoped Access Level, next steps
brent at architechies.com
Tue Mar 29 19:47:15 CDT 2016
> If Scala style access modifiers were adopted for Swift then a private(file) modifier would also be necessary to give the current private functionality.
I could imagine having these options:
public // visible to all everyone
private(scope-name, scope-name, …) // visible to specified scopes (plus current scope)
private // visible only to current scope
scope-name could perhaps be:
* A type name (or Self, which would mimic C++-style private, or perhaps even C++-style protected depending on how we treat inheritance)
* A module name (or #module for the current module)
* A file name string (or #file for the current file)
And then the default would simply be `private(#module)`.
Alternatively, the parameterized level could be given a different name, like `internal` or `shared`. If that were the case, then `#module` might simply be the default.
More information about the swift-evolution