<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="">This would make the semantics of the language dramatically more complicated. In essence, what you suggest here is scope-dependent typing of variables. While interesting in principle (a static language with compile-type dynamic typing? yes please!), this is subtle but quite a big change to the language that can potentially open a can of worms elsewhere. &nbsp;I believe one should carefully consider the ramifications first — and no, I don’t have any suggestions yet what these ramifications might be. &nbsp;<div class=""><br class=""></div><div class="">Cheers,&nbsp;</div><div class=""><br class=""></div><div class="">&nbsp;Taras</div><div class=""><br class=""></div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">Begin forwarded message:</div><br class="Apple-interchange-newline"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);" class=""><b class="">From: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" class="">James Campbell via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt;<br class=""></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);" class=""><b class="">Subject: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" class=""><b class="">[swift-evolution] let type binding</b><br class=""></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);" class=""><b class="">Date: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" class="">17 December 2015 at 12:59:05 GMT+1<br class=""></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);" class=""><b class="">To: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" class="">swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt;<br class=""></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);" class=""><b class="">Reply-To: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" class="">James Campbell &lt;<a href="mailto:james@supmenow.com" class="">james@supmenow.com</a>&gt;<br class=""></span></div><br class=""><div class=""><div dir="ltr" class="">Currently swift lets you to bind a value to let once:<div class=""><br class=""></div><div class="">i.e&nbsp;</div><div class=""><br class=""></div><div class="">let value: UIViewController</div><div class=""><br class=""></div><div class="">if (condition)</div><div class="">{</div><div class="">&nbsp; &nbsp;value = controllerA</div><div class="">}</div><div class="">else</div><div class="">{</div><div class="">&nbsp; value = controllerB</div><div class="">}<br clear="all" class=""><div class=""><br class=""></div><div class="">But currently I have to cast the variable within these blocks to access the property. It would be great if Swift could treat the let value as being the type of the object I am setting just for this closure/block (Obviously we can only set it to a value that matches the type above.)</div><div class=""><br class=""></div><div class="">So I could literally go like this:</div><div class=""><br class=""></div><div class=""><div class="">let value: UIViewController</div><div class=""><br class=""></div><div class="">if (condition)</div><div class="">{</div><div class="">&nbsp; &nbsp;value = controllerA</div><div class="">&nbsp; &nbsp;value.controllerAProperty = []</div><div class="">}</div><div class="">else</div><div class="">{</div><div class="">&nbsp; value = controllerB</div><div class="">&nbsp; value.controllerBProperty = []</div><div class="">}</div></div><div class=""><br class=""></div>-- <br class=""><div class="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""><span style="font-size:16px;line-height:19.2px" class=""></span><span style="font-size:12.8px" class="">&nbsp;Wizard</span><br class=""></div><div class=""><a href="mailto:james@supmenow.com" target="_blank" class="">james@supmenow.com</a></div><div class="">+44 7523 279 698</div></div></div></div></div></div>
</div></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=x4DBtcYZPuS8wt8fMTVYDXzwU9szxEmdHE1DwQfVzUcVobYGLWQVslsRT2H0C813FTcTenfNYtevkCRT3dKMIw9FOobxIfdeulkYmVqSu-2BdVTmk6FuCzA6wAY61UnOMG-2F4J-2FJcglOmh9lKSReepJ5DXENwc16gbq3tKjziL-2BaOeiQy9f8OQZshL0A-2BnWlQOCzou97iNCmL2K5Sw9l5lME7ort2hNbtp85XK2X4gzBGw-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="">
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></blockquote></div><br class=""></div></body></html>