<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Actually, I think this is this way only as a relic from the original <font face="Menlo" class="">private/fileprivate</font> proposal. Swift 3’s <font face="Menlo" class="">private</font> has no meaning as an extension modifier, so it was made to alias to <font face="Menlo" class="">fileprivate</font>. But since&nbsp;SE-0169 modified <font face="Menlo" class="">private</font>’s meaning so that it would make sense as an extension modifier, I think we should fix this.<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 9 Aug 2017, at 23:22, David Hart via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">That behaviour was never explicitly mentioned in SE-0169 but I agree its confusing. But I’m also fairly sure the only window to do anything about it is Swift 4. Everybody is really worn down by those access level discussions.<div class=""><br class=""></div><div class="">For illustration, Vladimir is confused that:</div><div class=""><br class=""></div><div class=""><font face="Menlo" class="">private extension Foo {</font></div><div class=""><font face="Menlo" class="">&nbsp; &nbsp; func foo() {}</font></div><div class=""><font face="Menlo" class="">}</font></div><div class=""><br class=""></div><div class="">is equivalent to:</div><div class=""><br class=""></div><div class=""><div class=""><font face="Menlo" class="">fileprivate extension Foo {</font></div><div class=""><font face="Menlo" class="">&nbsp; &nbsp; func foo() {}</font></div><div class=""><font face="Menlo" class="">}</font></div><div class=""><br class=""></div><div class="">making it accessible to another type in the same file:</div><div class=""><br class=""></div><div class=""><font face="Menlo" class="">struct&nbsp;Bar {<br class="">&nbsp; &nbsp;&nbsp;func&nbsp;bar(foo:&nbsp;Foo) {<br class="">&nbsp; &nbsp; &nbsp; &nbsp; foo.foo()<br class="">&nbsp; &nbsp;&nbsp;}<br class="">}</font></div><div class=""><br class=""></div><div class="">Aren't access levels on extensions supposed to define the default access level of the members of the extension?Is this a bug then?</div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On 9 Aug 2017, at 21:18, Vladimir.S via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Could someone remind please, was it decided to stick with 'private extension' means actually fileprivate access level for members declared in such extension or this could be discussed for Swift5?<br class=""><br class="">Currently, when private members are visible in type/extensions of that type in the same file, IMO there is no sense to treat 'private extension' as 'fileprivate extension', it is reasonable to group some private members of type into extension without making them fileprivate, and such members can be used from the type/other extensions.<br class=""><br class="">And also this is a huge inconsistency in my opinion: all other access modifiers 'work' as expected for extensions, but only 'private extension' means not what written, very surprising for one who don't expect this.<br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></div></blockquote></div><br class=""></div></div></div>_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></div></body></html>