> Le 20 févr. 2017 à 17:25, Vladimir.S <sva...@gmail.com> a écrit : > > Well, in general I support your opinion, but there is one question not > answered by your 'extensible' modifier. > It is common to have access to type's internals in the same file from inside > just other types("friend" types), not extending types. > So, in this case we want something like fileprivate+extensible if we want > also share details for extending types in other files. > And so, IMO, 'extensible' should means 'accessible as for private but also in > extending types AND INSIDE CURRENT FILE", or we need one more access modifier.
I think that was what I was intending. If 'extensible' was type-based, then, surely, whether the 'friend' was in the same file/module or whatever, the accessibility would be the same? > Also, there is a common(IMO) opinion in the list that we should rename > fileprivate to private as in Swift2. I'm not sure why ; with 'extensible' available to code within the same file, why would you still need fileprivate anywy? > So, I believe this will be optimal minimum of access modifiers set: > > public: outside of module > internal: anywhere inside module > private: anywhere in current file > scoped(hidden,*or other keyword*): as current 'private', only inside declared > type > extensible : in current file and in subtypes/extensions in other files Otherwise known in my language as : public - anywhere internal - anywhere inside the module private - only inside current type extensible - in current file and in subtypes/extensions in other files The only other option that might be useful is something like 'internal extensible' to limit visibility for extensible members to the current module. Sorry, I would still like to see a waterproof argument for what is presently called fileprivate ; with the above scopes, I simply can't see the need. Unless you can convince me, that is ;-) -- Joanna Carter Carter Consulting _______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution