<div dir="ltr">One thing I&#39;ve had bit me is the lack of some sort of confirmation, see this example.<div><br></div><div>I have a objective-c method in a library like so:</div><div><br></div><div>- (void)observe:(CallbackBlock)block;</div><div><br></div><div>The CallbackBlock is a type def-ed block like so:</div><div><br></div><div>typedef void (^CallbackBlock)(FDataSnapshot *snapshot);</div><div><br></div><div>The parameter in the block gets converted into a IUO, I ended up releasing an app that crashed due to that IUO being nil.</div><div><br></div><div>The code that crashed was something like this</div><div><br></div><div>object.observe {</div><div>$0.doSomething()</div><div>}</div><div><br></div><div>There is no way to tell that the $0 was a IUO. The compiler didn&#39;t force me to confirm in it in some way using a ! and unless I remembered to check the header I would have a crash.</div><div><br></div><div>How would this work under your proposal ?</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">







<p><b><font color="#cc0000">___________________________________</font></b></p><p><b>James⎥Head Of CEO</b></p><p><b><font color="#cc0000"><a href="mailto:james@supmenow.com" target="_blank">james@supmenow.com</a>⎥<a href="http://supmenow.com" target="_blank">supmenow.com</a></font></b></p><p><b><font size="2">Sup</font></b></p><p><b><font size="2">Runway East
</font></b></p><p><b><font size="2">10 Finsbury Square</font></b></p><p><b><font size="2">London</font></b></p><p><b><font size="2">
EC2A 1AF </font></b></p></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On Fri, Mar 18, 2016 at 6:53 AM, Brent Royal-Gordon via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">&gt; (Come to think of it, is there a cost to converting between `T?` and `T!`, or do they get optimized into the same thing?)<br>
<br>
</span>I can&#39;t imagine there would be. @autounwrapped (or whatever) is a purely compile-time thing which tells the compiler to automatically insert a `!` operator if it will make the expression typecheck. Other than that compile-time behavior, `!` is an exact synonym for `?`.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Brent Royal-Gordon<br>
Architechies<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</div></div></blockquote></div><br></div>