On Wed, 19 May 2021 16:03:19 GMT, Hannes Wallnöfer <[email protected]> wrote:
>> The primary problem was that key `compiler.err.dc.ref.bad.parens` had the
>> wrong message "')' missing in reference". That error message is not used
>> when the right parenthesis is missing, but when it occurs before the end of
>> the signature. The missing parenthesis case is caught earlier by the parens
>> balancing code in `DocCommentParser#reference` and uses message
>> `compiler.err.dc.unterminated.signature` ("unterminated signature").
>>
>> I changed the message for `compiler.err.dc.ref.bad.parens` to "unexpected
>> parenthesis".
>>
>> A secondary problem was that `DocCommentParser#reference` also threw
>> "unterminated signature" when there were too many closing angle brackets or
>> parentheses. These cases are now passed through
>> in`DocCommentParser#reference` so that `ReferenceParser#parse` can throw a
>> more appropriate error ("unexpected parenthesis" or "unexpected input").
>>
>> Here's a list of what references now cause what error messages:
>>
>> - `#foo(int` `unterminated signature`
>> - `#foo((int))` `unexpected parenthesis`
>> - `#foo(int))` `unexpected parenthesis`
>> - `#foo(int)x` `unexpected parenthesis`
>> - `F<T` `unterminated signature`
>> - `F<T>>` `unexpected input`
>>
>> I added two new tests for the cases with too many closing brackets/parens
>> that used to fail with "unterminated signature".
>
> Hannes Wallnöfer has updated the pull request incrementally with one
> additional commit since the last revision:
>
> JDK-8264181: Add test
Marked as reviewed by prappo (Reviewer).
-------------
PR: https://git.openjdk.java.net/jdk/pull/4068