<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">AFAIK, there was an optimization for literal string concatenation that was broken in Xcode 8.3 (and the Swift version that comes with it), but is now fixed in master.<div class=""><br class=""></div><div class=""><a href="https://bugs.swift.org/browse/SR-4348" class="">https://bugs.swift.org/browse/SR-4348</a></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On May 16, 2017, at 10:47 PM, Ben Rimmington via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><br class=""><blockquote type="cite" class="">On 16 May 2017, at 21:27, Tony Allevato &lt;<a href="mailto:tony.allevato@gmail.com" class="">tony.allevato@gmail.com</a>&gt; wrote:<br class=""><br class=""><blockquote type="cite" class="">On Tue, May 16, 2017 at 1:25 PM David Hart &lt;<a href="mailto:david@hartbit.com" class="">david@hartbit.com</a>&gt; wrote:<br class="">The problem I see is that + is an operator of the Standard Library and not part of the core language. I wouldn’t want + to sometimes to be a runtime operation and other times a compile-time operation. No, I really think we need strong language support here.<br class=""></blockquote><br class="">Why not? Compile-time concatenation of string literals delimited by `+` sounds like a perfectly reasonable compiler optimization.<br class=""><br class="">Your argument would also state that the compiler should not do constant folding like turning `5 + 7` into `12`, would it not? What makes that situation different?<br class=""></blockquote><br class="">When does the compiler do constant folding?<br class=""><br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>Welcome to Apple Swift version 3.1 (swiftlang-802.0.53 clang-802.0.42). Type :help for assistance.<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp;1&gt; import Foundation<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp;2&gt; let x: NSNumber = 12<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>x: __NSCFNumber = Int64(12)<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp;3&gt; let y: NSNumber = 5 + 7<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>error: repl.swift:3:21: error: cannot convert value of type 'Int' to specified type 'NSNumber'<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span>let y: NSNumber = 5 + 7<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;~~^~~<br class=""><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSNumber( )<br class=""><br class="">-- Ben<br class=""><br class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class="">https://lists.swift.org/mailman/listinfo/swift-evolution<br class=""></div></div></blockquote></div><br class=""></div></body></html>