If you're making the change, then you might add a test case based on
Jan's suggestion, testing
"\u005ct".equals(`\u005ct`.unescape())
-- Jon
On 9/19/18 7:40 AM, Jim Laskey wrote:
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