> On Feb 14, 2017, at 3:20 AM, David Hart <da...@hartbit.com> wrote: > > > On 14 Feb 2017, at 09:25, Goffredo Marocchi <pana...@gmail.com > <mailto:pana...@gmail.com>> wrote: > >> I disagree with that as well as I still think we are damaging the language >> each time we take a known concept (like access levels) and give new meanings >> to the same keywords. I still look baffled at the redefinition of do and the >> addition of repeat for example... >> >> Private, the way it was before, was an admittedly curious take on how most >> languages mean by private and we have jumped through a lot of hoops to >> justify why we did not start with Java/C++/C# like access control and >> augmented it instead of redefining things, omitting others, and then >> constantly pulling the language left and right with not a lot of permanent >> consensus either way as this discussion and others before show. > > It's a curious take, but it is a curious take is perfectly coherent with > Swift extensions. How else would you access private implementation details > from an extension? But putting it in the same file, instead of having to > resort to an internal access level.
Right. Swift is its own language distinct from Java/C++/etc. While it is intentionally designed to remain familiar (and thus reuses many keywords across the language family), it often does so with slightly different meaning / behavior. Consider ‘throw’ for example. Keeping with the spirit of Swift and staying consistent with its design, I see two plausible meanings for private: Private could mean either: 1) private to the file (Swift 2 semantics) 2) accessible only to the current type/scope and to extensions to that type that are in the current file. I don’t think we’ve ever evaluated and debated approach #2 systematically. -Chris
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution