I don't think submodules would solve it nicely. Each module/submodule will require it's own namespace + it feels like an overkill to create submodules for a few types. `internal(xyz)` seems to me like a better solution. And yes this is purely additional and nothing for phase 1.
-- Adrian Zubarev Sent with Airmail Am 9. September 2016 um 19:09:12, Xiaodi Wu ([email protected](mailto:[email protected])) schrieb: > > Isn't the general solution to this problem submodules? In any case, seems > like it'd be out of scope for Swift 4 phase 1. > > > On Fri, Sep 9, 2016 at 11:34 AM, Adrian Zubarev via swift-evolution > <[email protected](mailto:[email protected])> wrote: > > 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 > > ([email protected](mailto:[email protected])) 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 > > > [email protected](mailto:[email protected]) > > > https://lists.swift.org/mailman/listinfo/swift-evolution > > > > _______________________________________________ > > swift-evolution mailing list > > [email protected](mailto:[email protected]) > > https://lists.swift.org/mailman/listinfo/swift-evolution > > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
