Raw strings starting/ending with backtick

James Laskey james.laskey at oracle.com
Sat Nov 24 17:40:32 UTC 2018


Misread - I didn’t see the spaces. The cp will contain "`abc`" (no spaces)

Sent from my iPhone

> On Nov 24, 2018, at 1:30 PM, James Laskey <james.laskey at oracle.com> wrote:
> 
> 
> 
> Sent from my iPhone
> 
>> On Nov 24, 2018, at 11:34 AM, Weijun Wang <weijun.wang at oracle.com> wrote:
>> 
>> 
>> 
>>> On Nov 24, 2018, at 9:11 PM, Jim Laskey <james.laskey at oracle.com> wrote:
>>> 
>>> There are several  approaches but the simplest is using strip().  Example,
>>> 
>>>  `` `abc` ``.strip()
>>> 
>>> Concat is another approach,
>>> 
>>>  “`” + `abc` + “`”
>> 
>> But this means the literal inside the constant pool of the class will be "`abc` ", right? This is a little uncomfortable to me.
>> 
> That’s the plan. 
> 
>>> 
>>> Not perfect but other delimiter choices also have these edge cases.  
>> 
>> How about the Rust r###"..."### style?
> 
>> 
>> Thanks
>> Max
>> 
>>> 
>>> Cheers,
>>> 
>>> — Jim
>>> 
>>> 
>>> Sent from my iPad
>>> 
>>>> On Nov 24, 2018, at 8:55 AM, Attila Kelemen <attila.kelemen85 at gmail.com> wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> Reading the JEP on raw string literals, I saw no mentions of the case when a string starts (or ends) with backtick. I guessed, that maybe the compiler will close the literal when it finds more than half the number of backticks than the beginning (nothing implied this behaviour just tried it and I know that it might be very suprising in other cases). I have tried with the latest early access compiler and (not too suprisingly) it didn't behave this way and simply failed when starting the literal with a backtick.
>>>> 
>>>> My question is, of course: What is the strategy for this case? Or is it explicitly ignored as too much of an edge case (and left to the developer to deal with)?
>>>> 
>>>> Thanks,
>>>> Attila Kelemen
>>> 
>> 



More information about the compiler-dev mailing list