<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Yep, "logic" failures are not supposed to be there if not for avoiding checks that could worsen performance in pieces of code that should run as fast as possible. I like Adrian's solution because it doesn't add a new operator to the standard library, something that could mean one more encouragement to force unwrap things.</div><div class=""><br class=""></div><div class="">About preconditions, Cocoa with Love's Matt Gallagher wrote an article some months ago on partial functions, why you should avoid them and how to do so: it's a very interesting read&nbsp;<a href="http://www.cocoawithlove.com/blog/2016/01/25/partial-functions-part-one-avoidance.html" class="">http://www.cocoawithlove.com/blog/2016/01/25/partial-functions-part-one-avoidance.html</a></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Elviro</div><br class=""><div><blockquote type="cite" class=""><div class="">Il giorno 28 giu 2017, alle ore 07:02, Yuta Koshizawa via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; ha scritto:</div><br class="Apple-interchange-newline"><div class=""><div class="">...<br class=""><br class="">Logic failures are intended to be handled by fixing the code. It means<br class="">checks of logic failures can be removed if the code is tested enough.<br class="">Actually checks of logic failures for various operations, `!`,<br class="">`array[i]`, `&amp;+` and so on, are designed and implemented to be removed<br class="">when we use `-Ounchecked`. It is useful for heavy computation like<br class="">image processing and machine learning in which overhead of those<br class="">checks is not permissible.<br class=""><br class="">So I think checks for `!!` should be removed with `-Ounchecked` as well.<br class=""><br class="">--<br class="">Yuta<br class=""><br class=""></div></div></blockquote></div><br class=""></body></html>