You’re not really missing an other access modifier here. I assume you’re 
speaking about a macOS/iOS app, right? Therefore the thing you’re really 
missing is a full integration of SPM in Xcode macOS/iOS projects and 
submodules. Then, and only then `internal` would really seem like the right 
choice, because the rest of the app won’t be able to access all the type 
members you’re trying to hide (assuming that part is moved to it’s own 
submodule). Right now `public` and `open` doesn’t make any sense in such 
projects, which is a pity.


Am 29. Oktober 2017 um 15:37:38, Mike Kluev via swift-evolution 
(swift-evolution@swift.org) schrieb:

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
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