[swift-evolution] Class scoped access level
Adrian Zubarev
adrian.zubarev at devandartist.com
Fri Sep 9 11:34:08 CDT 2016
There must be a better solution to this problem, because you might also extend value types from different files. That would mean, we'd need `structprivate` `protocolprivate` etc.
How about: `internal(class)` etc. ? Or something like `internal(private)` to rule them all (I don't like the last name, but something that would rule them all would be nice to have)!
--
Adrian Zubarev
Sent with Airmail
Am 9. September 2016 um 17:49:29, Tom Bates via swift-evolution (swift-evolution at swift.org(mailto:swift-evolution at swift.org)) schrieb:
>
> There is currently no way of accessing "shared code" from extensions declared outside the base .swift file
>
> I would love to see along side the new fileprivate access level a classprivate access level that would allow any extension declared outside of the original .swift file to access these properties and functions in an attempt to reuse code.
>
> an example is below...
>
> =================
> //MyClass.swift
> public class MyClass {
>
> classprivate func sharedFunction() {
> self.function1()
> self.function2()
> }
>
> fileprivate func function1() {}
> fileprivate func function2() {}
> }
> =================
>
> =================
> //MyClass+Save.swift
> extension MyClass {
>
> public func save() {
> self.someFunction()
> self.sharedFunction()
> }
>
> fileprivate func someFunction() {}
> }
> =================
>
> Currently to achieve anything like this you would have to make the "core" functions public or internal or write the whole thing in a single file which as I understand it is not optimal for the compile speed and can get unmanageable for large classes. This would allow a more managed file structure and the separation of related functions from the core declaration.
>
> There would be no migration needed I don't think as the impact on current code would be zero until the developer adopts the new access level
>
> Regards,
> Tom
>
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160909/403f2803/attachment.html>
More information about the swift-evolution
mailing list