<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I like the proposal. Having a “magic” protocol isn’t ideal in some ways, but it seems like the best option for the moment, considering the other restrictions.<div class=""><br class=""></div><div class="">The name “<font face="Menlo" class="">DynamicMemberLookupProtocol</font>” is a bit unwieldy, though. What about something like “<font face="Menlo" class="">SupportsDynamicMemberLookup</font>“ or "<font face="Menlo" class="">SupportsDynamicMembers</font>"? I know it doesn’t follow the usual protocol naming pattern, but for an empty “magic” protocol like this, it reads fairly well as a description of the capabilities of the type:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><font face="Menlo" class="">enum JSON: SupportsDynamicMemberLookup {</font></div><div class=""><font face="Menlo" class="">&nbsp; &nbsp;// ...</font></div><div class=""><font face="Menlo" class="">}</font></div><div class=""><font face="Menlo" class=""><br class=""></font></div></blockquote>Anyway, I like the proposal. The “<font face="Menlo" class="">Supports-</font>“ prefix on the name may be a good idea, or may not. Either way, the “JSON” example in the proposal shows how this is useful for more than just bridging to dynamic languages, and is quite compelling to me.<div class=""><br class=""></div><div class="">-BJ<br class=""><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Nov 26, 2017, at 11:04 PM, Chris Lattner 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="">I’d like to formally propose the inclusion of user-defined dynamic member lookup types.<br class=""><br class="">Here is my latest draft of the proposal:<br class=""><a href="https://gist.github.com/lattner/b016e1cf86c43732c8d82f90e5ae5438" class="">https://gist.github.com/lattner/b016e1cf86c43732c8d82f90e5ae5438</a><br class="">https://github.com/apple/swift-evolution/pull/768<br class=""><br class="">An implementation of this design is available here:<br class="">https://github.com/apple/swift/pull/13076<br class=""><br class="">The implementation is straight-forward and (IMO) non-invasive in the compiler.<br class=""><br class="">-Chris<br class=""><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class="">swift-evolution@swift.org<br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></div></blockquote></div><br class=""></div></div></body></html>