I see and good point.  I think Jon is correct.  If you are using the JLS as the 
basis of your argument, then you better damn well stick to the JLS.

I’ll make the changes.

Cheers,

— Jim


> On Sep 19, 2018, at 11:10 AM, Jan Lahoda <jan.lah...@oracle.com> wrote:
> 
> I guess Jon's comment was that (per JLS) the outcome of unicode unescapes can 
> then participate in the escape sequences in String literals. So, this:
> "\u005ct"
> 
> is (as far as I know) a single character-literal (a tab), while it seems that
> `\u005ct`.unescape()
> 
> is two characters:
> \t
> 
> Not sure if that's an intent or not.
> 
> Jan
> 
> On 18.9.2018 20:55, Jim Laskey wrote:
>> The intent, of course, is to offset the raw string literals non-translation 
>> of Unicode escapes and escape sequences. That is, have the multi-line cake 
>> and eat the escapes too.
>> 
>> So a developer could have
>> 
>>      String s = `
>>                    \t\tTitle
>>                    \t\t\tbody
>>                 ...
>> 
>>                    `.align().escape();
>> 
>> to have tabs inserted in the string.
>> 
>> "\\" "\u005c\u005c" and `\` all translate to the same string. `\u005c` 
>> translates to "\\u005c”. `\u005c`.unescape() thustranslates to be the same 
>> as "\\”, "\u005c\u005c" and `\`.
>> 
>> Cheers,
>> 
>> — Jim
>> 
>> 
>> 
>>> On Sep 18, 2018, at 3:33 PM, Jonathan Gibbons <jonathan.gibb...@oracle.com> 
>>> wrote:
>>> 
>>> Jim,
>>> 
>>> In JLS, and hence javac, Unicode escape handling happens early on at a low 
>>> level, before string escape handling. This means that it is technically 
>>> possible to write string escape sequences in terms of Unicode escapes.
>>> 
>>> I'm not suggesting you should do the same here, but you should be aware of 
>>> the difference, compared to javac behavior.
>>> 
>>> -- Jon
>>> 
>>> 
>>> On 9/18/18 10:51 AM, Jim Laskey wrote:
>>>> Please review the code for String::unescape. Used to translate escape 
>>>> sequences in a string, typically in a raw string literal, into characters 
>>>> represented by those escapes.
>>>> 
>>>> webrev: http://cr.openjdk.java.net/~jlaskey/8202442/webrev/index.html
>>>> jbs: https://bugs.openjdk.java.net/browse/JDK-8202442
>>>> csr: https://bugs.openjdk.java.net/browse/JDK-8202443
>>>> 
>>>> Cheers,
>>>> 
>>>> — Jim
>>>> 
>>> 
>> 

Reply via email to