Internal is the right choice here. If it gives too much access then you might 
consider pulling this code into a separate module.

If “private” gave access to every extension then any code outside your module 
could make a new extension and access that method. That would make it 
effectively public in that you wouldn’t have any ability to limit who can call 
it.

> On Oct 29, 2017, at 7:37 AM, Mike Kluev via swift-evolution 
> <[email protected]> wrote:
> 
> i am missing some protection level, which can be called "classprivate" or 
> "structprivate" / "enumprivate" (names could be better). here is an example:
> 
> --- file Some.swift ---
> 
> class Some {
>       private func foo() {
>               bar() // error: inaccessible due to 'private'
>       }
> }
> 
> --- file Some+Bar.swift ---
> 
> extension Some {
>       private func bar() {
>               foo() // error: inaccessible due to 'private'
>       }
> }
> 
> 1) i want to have this extension in a different file (to keep file sizes 
> manageable).
> 
> 2) i can't use either private or fileprivate due to compilation errors
> 
> 3) i do not want to have neither "foo" nor "bar" public
> 
> 4) "internal" doesn't help as "foo" and "bar" will be available to my app 
> (which is unwanted).
> 
> is there some "classprivate" to help here? if not so far, shall there be one? 
> opinions?
> 
> Mike
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to