Looks good.

> On 23 Apr 2020, at 00:54, Jonathan Gibbons <jonathan.gibb...@oracle.com> 
> wrote:
> 
> Updated webrev: no change to src/, all tests now pass.
> 
> The HTML docs compare OK before/after the change, ignoring version info in 
> the header for each page, and ignoring one file which compares differently 
> because of an invalid doc comment (with an unterminated `{@code` tag!)
> 
> Webrev: http://cr.openjdk.java.net/~jjg/8241780/webrev.01/index.html
> 
> -- Jon
> 
> On 4/22/20 2:45 PM, Jonathan Gibbons wrote:
>> Pavel,
>> 
>> You're right, the loop label can go away, and Mach5 found a test failure, so 
>> there will be a followup webrev.
>> 
>> While I agree with the sentiment of checking the visual appearance in a 
>> browser, this is a previously unsolved problem, nor does this changeset 
>> attempt to address that problem, so it remains unsolved, for now.  I have no 
>> suggestions for anything we can use, other than to manually inspect pages.
>> 
>> -- Jon
>> 
>> On 4/22/20 2:35 PM, Pavel Rappo wrote:
>>> Hi Jon,
>>> 
>>> That's really good news for doc-comment writers! Many thanks for doing that.
>>> 
>>> I'm not an expert in com.sun.tools.javac.parser.DocCommentParser, but that 
>>> change looks pretty straightforward. I have a couple of comments though.
>>> 
>>> 1. We should check that this change passes the tests yet leaves the OpenJDK 
>>> API documentation unaffected. The documentation shouldn't change, nor do I 
>>> expect it to do so.
>>> 
>>> 2. If all goes well in #1, I'm willing to volunteer a followup task of 
>>> removing workarounds for the previous behaviour in OpenJDK.
>>> 
>>> To accomplish what is described in #1 and #2 we need an agreed way of 
>>> testing the visual appearance of javadoc HTML output. Whatever the tool or 
>>> process we choose, it must be capable of ignoring variance in markup as 
>>> long as it *looks* the same in a browser. What would you suggest we should 
>>> use?
>>> 
>>> Nit. I think that the "loop" label can go away now.
>>> 
>>> -Pavel
>>> 
>>>> On 22 Apr 2020, at 18:27, Jonathan Gibbons <jonathan.gibb...@oracle.com> 
>>>> wrote:
>>>> 
>>>> Please review a change that will permit the use of a previously illegal 
>>>> construction, to allow <newline> <spaces> `@` inside inline tags. This 
>>>> will allow "<pre>{@code..." constructions that contain annotations, such 
>>>> as the following:
>>>> 
>>>>     /**
>>>>      * This is a method.
>>>>      * <pre>{@code
>>>>      *    @Override
>>>>      *    void m() { }
>>>>      * }</pre>
>>>>      */
>>>> 
>>>> Previously, the text was first parsed into the main body and subsequent 
>>>> block tags, and only then were those analyzed for inline tags. That meant 
>>>> that the example just given was invalid, for having an incomplete inline 
>>>> tag between `<pre>` and an apparent block tag named `@Override`. With the 
>>>> change, `@` at the beginning of a line inside an inline tag will not be 
>>>> treated as the beginning of a block tag, and so the comment will parse as 
>>>> might be expected.
>>>> 
>>>> The change to the code is as simple as deleting the code that detected 
>>>> block tags inside inline tags.
>>>> 
>>>> There are some minor compatibility effects.
>>>> 
>>>> 1. Some comments that were previously invalid may become valid. This is 
>>>> the desired effect.
>>>> 
>>>> 2. Some comments that previously invalid may now be parsed differently. In 
>>>> particular, in the case of a genuinely missing '}', the parse will now 
>>>> swallow up any block tags that might follow.  For example, consider the 
>>>> following:
>>>> 
>>>>      /**
>>>>       * This is a method.
>>>>       * @param p1 this has an unbalanced {@code description
>>>>       * @param p2 this is the second parameter
>>>>       */
>>>>      void m(int p1, int p2) { }
>>>> 
>>>> As a result of the change, the description for parameter p2 will be 
>>>> swallowed up as part of the invalid description for p1. This will only be 
>>>> visible in error messages and clients of the API that analyze erroneous 
>>>> comments.
>>>> 
>>>> The tests are updated to accommodate the change. A specific test for the 
>>>> `<pre>{@code...}</pre>` construction is added.  The biggest change is to 
>>>> the test code that "predicts" the output of the AST pretty printer, which 
>>>> is now updated to better handle the new behavior of `{@code}` and 
>>>> `{@literal}` tags.
>>>> 
>>>> -- Jon
>>>> 
>>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8241780
>>>> Webrev: http://cr.openjdk.java.net/~jjg/8241780/webrev.00/index.html
>>>> 
>>>> 
>>>> 

Reply via email to