On Thu, 2 Feb 2023 19:38:34 GMT, Jonathan Gibbons <j...@openjdk.org> wrote:

>> src/jdk.compiler/share/classes/com/sun/source/doctree/EscapeTree.java line 
>> 37:
>> 
>>> 35:  * <ul>
>>> 36:  *     <li>{@code @@}, representing {@code @}, where it would otherwise 
>>> be treated as introducing a block or inline tag,
>>> 37:  *     <li>{@code @/}, representing {@code /}, as part of {@code *@/} 
>>> to represent <code>&ast;&sol;</code>, and
>> 
>> For other reviewers. Interpret that middle bullet literally: `@` escapes `/` 
>> only if it is preceded by `*`. In other words, it's a triple `*@/`, not a 
>> pair `@/`.
>> 
>> `@/` without preceding `*` causes errors if it can be confused for a start 
>> of a tag.
>> 
>> For a block tag:
>> 
>>     error: no tag name after '@'
>>          @/
>>           ^
>> 
>> For an inline tag:
>> 
>>     error: no tag name after '@'
>>          {@/
>>           ^
>> 
>> (FWIW, @jonathan-gibbons, note that the caret positions differ: the former 
>> points to `/` while the latter points to `@`. )
>> 
>> `*` is a sort of looked-behind and not consumed, which can be seen from the 
>> fact that
>> 
>>     /**
>>      @*@/
>>      */
>> 
>> is translated to this in documentation
>> 
>>     */
>> 
>> Given all of the above, I'm not sure if `@/` can be technically qualified as 
>> an ordinary escape sequence.
>
> '/' cannot be part of a tag name.
> 
> A tag name starts with a character for which `isUnicodeIdentifierStart` is 
> true, followed by zero or more characters for which `isUnicodeIdentifierPart` 
> is true or is one of `.`, `-`, `:`.  See `DocCommentParser.readTagName` for 
> verification. (We should update the Doc Comment Spec for that as well.)
> 
> So, the text of error messages above are correct, even if the positions 
> require tweaking.

Note that all the proposed escape sequences are context-sensitive, and are only 
enabled in appropriate circumstances.

-------------

PR: https://git.openjdk.org/jdk/pull/12372

Reply via email to