RFR: JDK-8241780 Allow \n@ inside inline tags.

Liam Miller-Cushon cushon at google.com
Wed Apr 22 23:28:34 UTC 2020

This looks great to me.

I tried the patch out on a few examples and it behaved exactly as expected
/ described. I know some javadoc users who will be happy to see this.


On Wed, Apr 22, 2020 at 10:28 AM Jonathan Gibbons <
jonathan.gibbons at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20200422/82da249e/attachment.htm>

More information about the compiler-dev mailing list