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
