Thanks! Unfortunately, it didn't make it to Xcode 8.3... > On Apr 3, 2017, at 9:53 PM, Ben Rimmington <m...@benrimmington.com> wrote: > > <https://github.com/apple/swift/pull/8325> (Merged 10 days ago) > >> On 3 Apr 2017, at 20:32, Charlie Monroe wrote: >> >>> On Apr 3, 2017, at 9:25 PM, Ben Rimmington wrote: >>> >>>> On 3 Apr 2017, at 17:55, Tony Allevato wrote: >>>> >>>> I just checked with -O and without and was surprised to find that `let x = >>>> "abc" + "def" + "ghi"` wasn't collapsed into a single string literal >>>> "abcdefghi" in the generated assembly code. Maybe it's more difficult than >>>> it is in some other languages because of operator overloads and different >>>> kinds of text literals (strings, extended grapheme clusters, Unicode >>>> scalars)? >>> >>> Is this a regression since Swift 2.0 added the optimization? >> >> I'd say it's a regression since 3.0 since I remember testing the optimizer >> even being able to put together this during compile time: >> >> struct URLString { >> let urlString: String >> >> init(host: String, path: String, query: String) { >> self.urlString = "http://" + host + path + "?" + query >> } >> } >> >> URLString(host: "apple.com", path: "/mac", query: "target=imac") >> >> This produced a single string literal - I confirmed this using MachOView on >> the final binary... >> >>> * Concatenation of Swift string literals, including across multiple >>> lines, is >>> now a guaranteed compile-time optimization, even at `-Onone`. >>> **(19125926)** >>> >>> <https://github.com/apple/swift/blame/97db3931f2c5a21ea87ad6e71cdecbec325bff91/CHANGELOG.md#L1329-L1330>
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution