I&#39;m curious: how would you use the failable initializers? I feel like, more often than not, you would end up force-unwrapping the return value, which would produce the same result as trapping inside. But I guess in that case you would make it clearer on the caller site that that can fail?<br><div class="gmail_quote"><div dir="ltr">On Fri, Feb 12, 2016 at 9:23 AM Félix Cloutier &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>It appears that the current integer conversion initializers will either always work, possibly trap, or truncate:</div><div><br></div><div><blockquote type="cite">init(_: Int)<br>init(_: Int8)<br>init(_: Int16)<br>init(_: Int32)<br>init(_: Int64)<br>init(_: UInt)<br>init(_: UInt8)<br>init(_: UInt16)<br>init(_: UInt32)<br>init(_: UInt64)<br>init(truncatingBitPattern: Int)<br>init(truncatingBitPattern: Int16)<br>init(truncatingBitPattern: Int32)<br>init(truncatingBitPattern: Int64)<br>init(truncatingBitPattern: UInt)<br>init(truncatingBitPattern: UInt16)<br>init(truncatingBitPattern: UInt32)<br>init(truncatingBitPattern: UInt64)<br></blockquote><div><br></div><div>I suggest that we change trapping initializers to failable initializers. Initializers that can&#39;t fail (identity, unsigned -&gt; bigger signed/unsigned, signed -&gt; bigger signed) should keep a non-Optional type.</div><div><br></div><div>This could extend to changing SignedIntegerType&#39;s and UnsignedIntegerType&#39;s (U)IntMax to failable initializers as well.</div><div><br></div><div>I think I remember someone on the core team saying that someone&#39;s working on integer types at the moment. Is that right?</div><div>
<br><span style="color:rgb(0,0,0);font-family:&#39;Lucida Grande&#39;;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline!important;float:none">Félix</span>
</div>

<br></div></div>_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">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>
</blockquote></div><div dir="ltr">-- <br></div><div dir="ltr">Javier Soto</div>