<div id="compose" contenteditable="true" style="padding-left: 16px; padding-right: 16px; padding-bottom: 8px;"><div><br><br><div class="acompli_signature">* What is your evaluation of the proposal?</div></div><div class="acompli_signature"><br></div><div class="acompli_signature">I think this is a positive step in the right direction but I think there still needs to be more amendments. So a +1 if address the issues I'm about to outline.</div><div class="acompli_signature"><br></div><div class="acompli_signature">Anything not annotated should be imported as an optional not a IUO, this makes it safer to handle the nil case with legacy code.&nbsp;</div><div class="acompli_signature"><br></div><div class="acompli_signature">This is also truer to the intent of the original objective c code.</div><div class="acompli_signature"><br></div><div class="acompli_signature">The proposal so far agrees with this, however there is one part I think could make clearer.</div><div class="acompli_signature"><br></div><div class="acompli_signature">This:</div><div class="acompli_signature"><br></div><div class="acompli_signature">Let x: Int! = 5</div><div class="acompli_signature">Let y = x&nbsp;</div><div class="acompli_signature"><br></div><div class="acompli_signature">It's not clear to me that y would be converted to an optional or that it would crash if it couldn't be type converted. This is a huge departure from the existing swift.</div><div class="acompli_signature"><br></div><div class="acompli_signature">I think it would be better to have what I call Optional Type Confermence.</div><div class="acompli_signature"><br></div><div class="acompli_signature">If I want y to be a Int! I can refer to x with a ! :</div><div class="acompli_signature"><br></div><div class="acompli_signature">Let x:Int! = 5</div><div class="acompli_signature">Let y = x!</div><div class="acompli_signature"><br></div><div class="acompli_signature">That way if x is nil the app will trap and this provides a path for existing code to still use this behaviour plus it's now obvious that x will be treated like an unwrapped optional.</div><div class="acompli_signature"><br></div><div class="acompli_signature">If you wanted x to be treated like an optional you would use ?&nbsp;</div><div class="acompli_signature"><br></div><div class="acompli_signature">Let x: Int! = 5</div><div class="acompli_signature">Let y = x?</div><div class="acompli_signature"><br></div><div class="acompli_signature">This would make the behaviour the proposal is proposing much clearer.</div></div><div class="gmail_quote">        * Is the problem being addressed significant enough to warrant a change to Swift?</div><div class="gmail_quote">Although the proposal doesn't outline a problem, I do believe the optional system in swift today isn't safe enough. Indeed I released an app that crashed due to swift importing an unannotated piece of objective c code that wasn't clear about how it was an IUO and crashed.</div><div class="gmail_quote">Anything that improves this visibility of IUOs and reduces the need of them I am for.</div><div class="gmail_quote"><br>        * Does this proposal fit well with the feel and direction of Swift?</div><div class="gmail_quote">This fits with Swift 3s simplification of the APIs</div><div class="gmail_quote">        * If you have you used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?</div><div class="gmail_quote">I don't have any experience in other languages.</div><div class="gmail_quote">        * How much effort did you put into your review? A glance, a quick reading, or an in-depth study?<br><br>In depth study.<br><br>More information about the Swift evolution process is available at<br><br>        <a dir="ltr" href="https://github.com/apple/swift-evolution/blob/master/process.md" x-apple-data-detectors="true" x-apple-data-detectors-type="link" x-apple-data-detectors-result="1">https://github.com/apple/swift-evolution/blob/master/process.md</a><br><br>Thank you,<br><br>-Chris Lattner<br>Review Manager<br><br><br><br>_______________________________________________<br>swift-evolution-announce mailing list<br><a dir="ltr" href="mailto:swift-evolution-announce@swift.org" x-apple-data-detectors="true" x-apple-data-detectors-type="link" x-apple-data-detectors-result="3">swift-evolution-announce@swift.org</a><br><a dir="ltr" href="https://lists.swift.org/mailman/listinfo/swift-evolution-announce" x-apple-data-detectors="true" x-apple-data-detectors-type="link" x-apple-data-detectors-result="4">https://lists.swift.org/mailman/listinfo/swift-evolution-announce</a><br><br><br></div>