How about

- “public” -> symbol visible outside the current module.
- “package or module” -> symbol visible within the current module.
- internal -> symbol visible within the current file.
- “private” -> symbol visible within the current declaration (class, extension, 
etc).

?

Sent from my iPhone

> On 15 Mar 2016, at 00:49, James Berry via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> 
>> On Mar 14, 2016, at 5:18 PM, Chris Lattner via swift-evolution 
>> <swift-evolution@swift.org> wrote:
>> 
>> Per Doug’s email, the core team agrees we should make a change here, but 
>> would like some bikeshedding to happen on the replacement name for private.
>> 
>> To summarize the place we’d like to end up:
>> 
>> - “public” -> symbol visible outside the current module.
>> - “internal” -> symbol visible within the current module.
>> - unknown -> symbol visible within the current file.
>> - “private” -> symbol visible within the current declaration (class, 
>> extension, etc).
>> 
>> The rationale here is that this aligns Swift with common art seen in other 
>> languages, and that many people using private today don’t *want* visibility 
>> out of their current declaration.  It also encourages “extension oriented 
>> programming”, at least it will when some of the other restrictions on 
>> extensions are lifted.  We discussed dropping the third one entirely, but 
>> think it *is* a useful and important level of access control, and when/if we 
>> ever get the ability to write unit tests inside of the file that defines the 
>> functionality, they will be a nicer solution to @testable.
>> 
>> The thing we need to know is what the spelling should be for the third one.  
>> Off hand, perhaps:
>> 
>> fileprivate
>> private(file)
>> internal(file)
>> fileaccessible
>> etc
>> 
>> Some other thoughts on the choice: 
>> - this will be a declaration modifier, so it will not “burn” a keyword.
>> - if will be a uniquely Swift thing, so there is virtue in it being a 
>> googlable keyword.
>> 
>> Thoughts appreciated.
> 
> 
> I like fileprivate, if that’s the only change. On the other hand, if we want 
> to consider a broader change, what about:
> 
>    private            symbol visible within the current declaration (class, 
> extension, etc).
>    private(module)    symbol visible within the current module.
>    private(file)        symbol visible within the current file.
> 
> James
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to