<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div></div><div>That just forces the unwrap to the base type, it doesn't turn it into an autounwrapped (or IUO).&nbsp;</div><div><br>On Mar 17, 2016, at 10:26 PM, Jed Lewison via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 17, 2016, at 8:50 PM, Brent Royal-Gordon via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><div class=""><div class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>@autounwrapped let foo = functionReturningOptional()<br class=""><br class="">I *believe* that, without the `@autounwrapped` attribute, there's no way to go from T? to T! without actually restating T somewhere.<br class=""></div></div></blockquote></div><div><br class=""></div>I think you could express this as:<div class=""><span style="font-family: Menlo;" class=""><br class=""></span></div><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span><font face="Menlo" class="">let foo = functionReturningOptional()!</font></div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>swift-evolution mailing list</span><br><span><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></div></blockquote></body></html>