On Tue, May 16, 2017 at 1:25 PM David Hart <[email protected]> wrote:
> 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. > Why not? Compile-time concatenation of string literals delimited by `+` sounds like a perfectly reasonable compiler optimization. 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? > > On 16 May 2017, at 22:20, Tony Allevato via swift-evolution < > [email protected]> wrote: > > I agree with Ben—this is something that should just work for all string > literals, and those protocols shouldn't be reasons to introduce a different > syntax. It would be even more confusing for users to have to understand > under which contexts they could use either `+` or juxtaposition and under > which contexts they could *only* use juxtaposition. > > > On Tue, May 16, 2017 at 12:28 PM Ben Rimmington via swift-evolution < > [email protected]> wrote: > >> >> > On 16 May 2017, at 16:36, Gwendal Roué wrote: >> > >> >> Le 16 mai 2017 à 16:58, Tony Allevato <[email protected]> a >> écrit : >> >> >> >> Regarding the C/Objective-C syntax, what would be the advantages over >> concatenating the strings with `+`? >> > >> > The support for ExpressibleByStringLiteral and >> ExpressibleByStringInterpolation protocols. >> >> Would it be possible to have compile-time concatenation of *all* string >> literals using the `+` operator? >> >> // Written as: >> @available(*, unavailable, message: "Long strings can be bro" + >> "ken into two or more >> pieces.") >> // Compiled as: >> @available(*, unavailable, message: "Long strings can be broken >> into two or more pieces.") >> >> This could also be used with types such as StaticString, which don't have >> their own `+` operator. >> >> // Written as: >> let s: StaticString = "Long strings can be bro" + >> "ken into two or more pieces." >> // Compiled as: >> let s: StaticString = "Long strings can be broken into two or >> more pieces." >> >> -- Ben >> >> _______________________________________________ >> swift-evolution mailing list >> [email protected] >> https://lists.swift.org/mailman/listinfo/swift-evolution >> > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution > > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
