<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=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Dec 2, 2017, at 7:58 PM, Jose Cheyo Jimenez <<a href="mailto:cheyo@masters3d.com" class="">cheyo@masters3d.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="">Hi Chis, <div class=""><br class=""></div><div class="">Thank you for pushing this forward.</div><div class=""><br class=""></div><div class="">My only comment is that on the declaration side it would be great to also have an attribute to communicate that compiler magic is happening.</div><div class=""><br class=""></div><div class="">Currently it is surprising that a regular looking protocol is providing me so much power.</div><div class=""><br class=""></div><div class="">Suggestions: </div><div class=""><br class=""></div><div class=""><div style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(4, 51, 255); background-color: rgb(255, 255, 255);" class="">@dynamic</div><div style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(52, 149, 175); background-color: rgb(255, 255, 255);" class=""><span style="color: #0433ff" class="">struct</span><span style="" class=""> PyVal : </span>MemberLookupProtocol<span style="" class=""> {...}</span></div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255); min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(4, 51, 255); background-color: rgb(255, 255, 255);" class="">@dynamic</div><div style="margin: 0px; line-height: normal; font-family: Menlo; background-color: rgb(255, 255, 255);" class=""><span style="color: #0433ff" class="">struct</span> ParameterSummer : <span style="color: #3495af" class="">DynamicCallable</span> {...}</div><div style="margin: 0px; line-height: normal; background-color: rgb(255, 255, 255); min-height: 14px;" class=""><br class=""></div><div style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(0, 143, 0); background-color: rgb(255, 255, 255);" class="">// Error: This type needs the @dynamic attribute.</div><div style="margin: 0px; line-height: normal; font-family: Menlo; color: rgb(52, 149, 175); background-color: rgb(255, 255, 255);" class=""><span style="color: rgb(4, 51, 255);" class="">class</span><span style="" class=""> ParamWinter : </span>MyCustomCallableProtocolOrClassOrTypeAlias<span style="" class=""> {...}</span></div></div><div class=""><br class=""></div><div class="">By requiring @dynamic (Or other attribute name), people can know that this is a compiler dynamic declaration and not just some random protocol whose name starts with Dynamic*. :)</div></div></div></blockquote><br class=""></div><div>I’m not a huge fan of this (because it is redundant as Jean-Daniel mentions downthread), but it is definitely possible. I’ll add it to the alternatives section so that people consider it during review.</div><div><br class=""></div><div>-Chris</div><div><br class=""></div><br class=""></body></html>