<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=""><div class=""><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: 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-size-adjust: auto; -webkit-text-stroke-width: 0px;"><br class=""></div>
</div>
<div><br class=""><blockquote type="cite" class=""><div class="">On 07 Dec 2017, at 18:21, Joe DeCapo &lt;<a href="mailto:snoogansbc@gmail.com" class="">snoogansbc@gmail.com</a>&gt; 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; line-break: after-white-space;" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Dec 7, 2017, at 10:12 AM, Letanyan Arumugam 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=""><span style="font-family: SourceCodePro-Regular; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">My original argument about failing for no discernible reason still stands. precondition is a thought out check for a failing state. member lookup failures are going to be because things don’t exist for which you presumably expected to exist.</span></div></blockquote></div><br class=""><div class="">Is it necessarily true that things will have to fail "for no discernible reason"? It's up to the implementers of the protocol for how they want to handle the failure case (trap/return option/throw error/etc.). But I imagine it could be possible to add a generic debug error message/warning message about lookup failing for invocations of this kind, which would give a pretty clear hint about what went wrong and why. Would that be enough to address your concerns about silent failures?</div></div></div></blockquote></div><div class=""><br class=""></div><div class="">I’m aware that the implementation and design is fully type safe and does not deviate from current Swift behaviour. The thing is that some people will not want to not deal with errors at compile time because they’re used to dealing with them at runtime.&nbsp;</div><div class=""><br class=""></div><div class="">I think warning and error messages would be too much. I’m not concerned about things being implemented in this way just as long as it’s appropriate. I would think all language layers like Python should have trapping lookups and calls.</div><div class=""><br class=""></div><div class="">However I wouldn’t mind a way of making a dynamic type return an optional when it doesn't.</div></body></html>