<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">You’re not really missing an other access modifier here. I assume you’re speaking about a macOS/iOS app, right? Therefore the thing you’re really missing is a full integration of SPM in Xcode macOS/iOS projects and submodules. Then, and only then `internal` would really seem like the right choice, because the rest of the app won’t be able to access all the type members you’re trying to hide (assuming that part is moved to it’s own submodule). Right now `public` and `open` doesn’t make any sense in such projects, which is a pity.</div> <br> <div id="bloop_sign_1509305445755353088" class="bloop_sign"></div> <br><p class="airmail_on">Am 29. Oktober 2017 um 15:37:38, Mike Kluev via swift-evolution (<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>) schrieb:</p> <blockquote type="cite" class="clean_bq"><span><div><div></div><div>


<title></title>


<div dir="ltr">i am missing some protection level, which can be
called "classprivate" or "structprivate" / "enumprivate" (names
could be better). here is an example:
<div><br></div>
<div>--- file Some.swift ---</div>
<div>
<p style="margin:0px;font-stretch:normal;font-size:12px;line-height:normal;font-family:Helvetica;min-height:14px">
<br></p>
<p style="margin:0px;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)">
<span style="color:rgb(4,51,255)">class</span> Some {</p>
<p style="margin:0px;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(4,51,255)">
private func <span style="color:rgb(0,0,0)">foo() {</span></p>
<p style="margin:0px;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,143,0)">
<span style="text-decoration:underline;color:rgb(0,0,0)">b</span><span style="color:rgb(0,0,0)">ar()</span> // error: inaccessible due to
'private'</p>
<p style="margin:0px;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)">
}</p>
<p style="margin:0px;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)">
}</p>
</div>
<div><br></div>
<div>
<div>--- file Some+Bar.swift ---</div>
</div>
<div><br></div>
<div>
<p style="margin:0px;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(4,51,255)">
extension <span style="color:rgb(52,149,175)">Some</span>
<span style="color:rgb(0,0,0)">{</span></p>
<p style="margin:0px;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(4,51,255)">
private func <span style="color:rgb(0,0,0)">bar() {</span></p>
<p style="margin:0px;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,143,0)">
<span style="text-decoration:underline;color:rgb(0,0,0)">f</span><span style="color:rgb(0,0,0)">oo()</span> // error: inaccessible due to
'private'</p>
<p style="margin:0px;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)">
}</p>
<p style="margin:0px;font-stretch:normal;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,0,0)">
}</p>
</div>
<div><br></div>
<div>1) i want to have this extension in a different file (to keep
file sizes manageable).</div>
<div><br></div>
<div>2) i can't use either private or fileprivate due to
compilation errors</div>
<div><br></div>
<div>3) i do not want to have neither "foo" nor "bar" public</div>
<div><br></div>
<div>4) "internal" doesn't help as "foo" and "bar" will be
available to my app (which is unwanted).</div>
<div><br></div>
<div>is there some "classprivate" to help here? if not so far,
shall there be one? opinions?</div>
<div><br></div>
<div>Mike</div>
<div><br></div>
</div>


_______________________________________________<br>swift-evolution mailing list<br>swift-evolution@swift.org<br>https://lists.swift.org/mailman/listinfo/swift-evolution<br></div></div></span></blockquote></body></html>