<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="">Just for the record, I like these proposals that add syntactic sugar the compiler uses to synthesize code in an effort to save time and effort for developers. However, developers need a means of inspecting synthesizing code.<div class=""><br class=""></div><div class="">Cheers,</div><div class="">-Patrick</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 13, 2016, at 12:55 PM, Matthew Johnson <<a href="mailto:matthew@anandabits.com" class="">matthew@anandabits.com</a>> 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=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 13, 2016, at 11:46 AM, Patrick Gili <<a href="mailto:gili.patrick.r@gili-labs.com" class="">gili.patrick.r@gili-labs.com</a>> 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="">Not much has changed with regard to attribute accessors.<div class=""><br class=""></div><div class="">Here is a link to a great tutorial:</div><div class=""><br class=""></div><div class=""><a href="http://www.rubyist.net/~slagell/ruby/accessors.html" class="">http://www.rubyist.net/~slagell/ruby/accessors.html</a></div><div class=""><br class=""></div><div class="">Here is a link to the Ruby documentation the Module module, which contains documentation for attire, attr_accessor, attr_reader, and attr_writer:</div><div class=""><br class=""></div><div class=""><a href="http://ruby-doc.org/core-1.9.3/Module.html" class="">http://ruby-doc.org/core-1.9.3/Module.html</a></div><div class=""><div class=""><br class=""></div><div class="">I think the Ruby notion of an attribute is the direction you're trying to take this. You can take your concept and build on it.</div></div></div></div></blockquote><div class=""><br class=""></div><div class="">This hasn’t changed at all since I used Ruby. It is really not like this proposal at all. It is synthesizing the property (attribute) accessors themselves. Swift does this automatically when you declare a stored property, or allows you to do so manually by writing computed accessors.</div><div class=""><br class=""></div><div class="">The idea in this proposal was that we could synthesize at least two useful memberwise features for a type from a list of properties - a memberwise partial initializer and a computed tuple property.</div><div class=""><br class=""></div><div class="">That said, I won’t be pursuing this proposal further given Chris’s comments about syntactic sugar proposals. It seems doubtful that something like this would be considered in the Swift 3 timeframe and Swift 4 might bring macros which would hopefully make it possible to implement something like this ourselves if desired.</div><div class=""><br class=""></div><div class="">Matthew</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class=""><br class=""></div><div class="">My apologies regarding my comment about forwarding. I momentarily confused the concepts of protocol forwarding and parameter forwarding.</div></div></div></div></blockquote><div class=""><br class=""></div><div class="">No problem, although I don’t see how either are directly related to this topic.</div><div class=""><br class=""></div><div class="">Matthew</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><div class=""><br class=""></div><div class="">Cheers,</div><div class="">-Patrick<br class=""><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 13, 2016, at 11:21 AM, Matthew Johnson <<a href="mailto:matthew@anandabits.com" class="">matthew@anandabits.com</a>> 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=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 13, 2016, at 9:15 AM, Patrick Gili <<a href="mailto:gili.patrick.r@gili-labs.com" class="">gili.patrick.r@gili-labs.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Ruby has the notion of attribute accessors, which is very similar to this proposal. If you align the proposal to look more like attribute accessors in Ruby, then it might play well with the forwarding, like the Ruby Forwardable module.</div></div></blockquote><div class=""><br class=""></div><div class="">It’s been a while since I’ve written Ruby but I have written quite a bit of it in the past. Did something change? As far as I know attribute accessors are basically like properties. </div><div class=""><br class=""></div><div class="">As far as forwarding goes, I have worked on a totally separate proposal for forwarding and have a second draft of that close to complete. I don’t see how the two are related.</div><div class=""><br class=""></div><div class="">Matthew</div><br class=""><blockquote type="cite" class=""><div class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><br class=""></div><div class="">-Patrick</div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 11, 2016, at 6:02 PM, Matthew Johnson via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div dir="auto" class=""><div class=""><br class=""><br class="">Sent from my iPhone</div><div class=""><br class="">On Jan 11, 2016, at 4:49 PM, Greg Parker <<a href="mailto:gparker@apple.com" class="">gparker@apple.com</a>> wrote:<br class=""><br class=""></div><blockquote type="cite" class=""><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 11, 2016, at 9:17 AM, Matthew Johnson via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><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=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jan 11, 2016, at 10:21 AM, Janosch Hildebrand <<a href="mailto:jnosh@jnosh.com" class="">jnosh@jnosh.com</a>> wrote:</div><div class=""><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class=""></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><b class="">propertylist:</b></div><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Not a big fan of the name either, `propertyalias` came to mind but that sounds like it's only for a single property.</div></div></blockquote><div class=""><br class=""></div><div class="">If you think of something better please let me know!</div></div></div></div></blockquote><br class=""></div><div class="">"property list" already means something in Cocoa. You are unlikely to get approval under that name.</div><div class=""><br class=""></div></div></blockquote>Good point! Any better ideas? I don't like it, just didn't think of a good one yet.<div class=""><br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class=""></div><div class="">-- </div><div class="">Greg Parker <a href="mailto:gparker@apple.com" class="">gparker@apple.com</a> Runtime Wrangler</div><div class=""><br class=""></div><div class=""><br class=""></div></div></blockquote></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=148AJ5MzQn5baqzoQt2hMqn4nNwgAXNFoK9IxIeunJVrrWTLDGQwdSXacBfjJH-2BgNo9uxzS3KvzAxoE0j-2BzjO16ExoJHKFl6u-2Bd5FQhIX4VHIcKeG7ZPbVo7GGql1wbrIveUxq6pgQkLj5LCDg0GwiHyYvA-2BWmhVmJ-2BKhYiWodRKVD9-2F5icG5HBCrjxbnZhUZ4j0WtTXdAx-2FxSUsmuN7sN-2F-2BIpHpPT3sryWvZ3-2Fd1OA-3D" alt="" width="1" height="1" border="0" style="height:1px !important;width:1px !important;border-width:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-right:0 !important;padding-left:0 !important;" class="">
</div>
_______________________________________________<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></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div></div></div></div></div></blockquote></div><br class=""></div></div></blockquote></div><br class=""></div></body></html>