On Tue, May 16, 2017 at 1:25 PM David Hart <da...@hartbit.com> 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 < > swift-evolution@swift.org> 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 < > swift-evolution@swift.org> wrote: > >> >> > On 16 May 2017, at 16:36, Gwendal Roué wrote: >> > >> >> Le 16 mai 2017 à 16:58, Tony Allevato <tony.allev...@gmail.com> 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 >> swift-evolution@swift.org >> https://lists.swift.org/mailman/listinfo/swift-evolution >> > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution > > >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution