<html><body><div>+1 for your proposed changes to private(set) etc.<br></div><div><br data-mce-bogus="1"></div><div>-Thorsten<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div><br>Am 15. März 2016 um 05:38 schrieb Shawn Erickson via swift-evolution &lt;swift-evolution@swift.org&gt;:<br><br><div><blockquote type="cite"><div class="msg-quote"><div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Mon, Mar 14, 2016 at 5:18 PM Chris Lattner via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" data-mce-href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin: 0 0 0 0.8ex; border-left: 1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 0.8ex; border-left: 1px #ccc solid; padding-left: 1ex;">Per Doug’s email, the core team agrees we should make a change here, but would like some bikeshedding to happen on the replacement name for private.<br> <br> To summarize the place we’d like to end up:<br> <br> - “public” -&gt; symbol visible outside the current module.<br> - “internal” -&gt; symbol visible within the current module.<br> - unknown -&gt; symbol visible within the current file.<br> - “private” -&gt; symbol visible within the current declaration (class, extension, etc).<br></blockquote><div><br></div><div>More thinking out loud...</div><div><br></div><div><span><div>`public` -&gt; exported from module</div><div>&lt;omitted&gt; -&gt; module scoped (e.g. current internal)</div><div>`private` -&gt; class, struct, etc. scoped (e.g. new private)</div><div>`private(file)` or `file` -&gt; file scoped (e.g existing private)</div><div>`private(module)` or `module` or `internal` -&gt; module scoped (e.g. current internal)</div><div><br></div><div>public var foo = 0 // marks default getter and setter public</div><div><br></div><div>public var foo = 0 { &nbsp;// marks default getter and setter public however...</div><div>&nbsp; private set &nbsp; &nbsp; &nbsp; &nbsp; // marks default setter private</div><div>}</div><div><br></div><div>var foo = 0 { // marks default getter and setter module scoped however...</div><div>&nbsp; public get &nbsp;// marks default getter public</div><div>&nbsp; private set // marks default setter private</div><div>}</div><div><br></div><div>public var foo: Int { ... } // marks provided getter public, read-only</div><div><br></div><div>var foo: Int { &nbsp; &nbsp; &nbsp; &nbsp;// marks provided getter and setter module scoped however...</div><div>&nbsp; public get { ... } &nbsp;// marks provided getter public</div><div>&nbsp; private set { ... } // marks provided setter private</div><div>}</div><div><br></div><div>public var foo: Int { // marks provided getter and setter public however...</div><div>&nbsp; get { ... } &nbsp; &nbsp; &nbsp; &nbsp; // not specified, inherit access level public</div><div>&nbsp; private set { ... } // marks provided setter private</div><div>}</div><div><br></div><div>var foo: Int { &nbsp; &nbsp; &nbsp; &nbsp;// marks provided getter and setter module scoped however...</div><div>&nbsp; get { ... } &nbsp; &nbsp; &nbsp; &nbsp; // not specified, inherit access level module scoped</div><div>&nbsp; private set { ... } // marks provided setter private</div><div>}</div><div><br></div><div>private(module) var foo: Int { // marks provided getter and setter module scoped however...</div><div>&nbsp; get { ... } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // not specified, inherit access level module scoped</div><div>&nbsp; private(file) set { ... } &nbsp; // marks provided setter file scoped</div><div>}</div><div><br></div><div>var foo: Int { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// marks provided getter and setter module scoped however...</div><div>&nbsp; private(file) get { ... } &nbsp; // not specified, inherit access level module scoped</div><div>&nbsp; private set { ... } &nbsp; &nbsp; &nbsp; &nbsp; // marks provided setter file scoped</div><div>}</div><div><br></div><div>...etc...</div><div><br></div><div>public subscript(index: Int) -&gt; Int { ... } // marks provided getter public, read-only</div><div><br></div><div>public subscript(index: Int) -&gt; Int { // marks provided getter and setter public</div><div>&nbsp; get { ... } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // not specified, inherit access level public</div><div>&nbsp; set { ... } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // not specified, inherit access level public</div><div>}</div><div><br></div><div>public subscript(index: Int) -&gt; Int { // marks provided getter and setter public however...</div><div>&nbsp; get { ... } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // not specified, inherit access level public</div><div>&nbsp; private set { ... } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // marks provided setter private</div><div>}</div><div><br></div><div>subscript(index: Int) -&gt; Int { &nbsp;// marks provided getter and setter module scoped however...</div><div>&nbsp; get { ... } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // not specified, inherit access level module scoped</div><div>&nbsp; private set { ... } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // marks provided setter private</div><div>}</div><div><br></div><div>subscript(index: Int) -&gt; Int { &nbsp;// marks provided getter and setter module scoped however...</div><div>&nbsp; public get { ... } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// marks provided getter public</div><div>&nbsp; private set { ... } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // marks provided setter private</div><div>}</div><div><br></div><div>subscript(index: Int) -&gt; Int { &nbsp;// marks provided getter and setter module scoped however...</div><div>&nbsp; public get { ... } &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// marks provided getter public</div><div>&nbsp; private(file) set { ... } &nbsp; &nbsp; // marks provided setter file scoped</div><div>}</div><div>...etc...</div></span>&nbsp;<br></div></div></div><div class="_stretch"><span class="body-text-content">_______________________________________________<br>swift-evolution mailing list<br><a href="mailto:swift-evolution@swift.org" data-mce-href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" data-mce-href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br></span></div></div></blockquote></div></div></body></html>