RFR: 8200432: javadoc fails with ClassCastException on {@link byte[]}
Hannes Wallnöfer
hannes.wallnoefer at oracle.com
Mon Nov 19 19:14:45 UTC 2018
That would have been my preferred solution as well, but it generates a second error message for arrays, because getElement() also returns null for arrays.
ReferenceTest.java:68: error: array type not allowed here
* {@link java.lang.String[]}
^
ReferenceTest.java:68: error: reference not found
* {@link java.lang.String[]}
^
Hannes
> Am 19.11.2018 um 19:39 schrieb Jonathan Gibbons <jonathan.gibbons at oracle.com>:
>
> That's better, it is slightly strange/confusing to be referring to sig after trying to get an element.
>
> Here's a slightly cleaner suggestion. This also sets up the possibility of checking for primitive types in the same manner.
>
>
> 870 if (sig.contains("<") || sig.contains(">")) {
> 871 env.messages.error(REFERENCE, tree, "dc.type.arg.not.allowed");
> } else if (isArrayType(sig)) {
> env.messages.error(REFERENCE, tree,
> "dc.array.type.not.allowed"
> );
> }
> 872
> 873 Element e = env.trees.getElement(getCurrentPath());
> 874 if (e == null)
>
> 875 env.messages.error(REFERENCE, tree, "dc.ref.not.found");
>
> -- Jon
>
> On 11/19/2018 10:01 AM, Hannes Wallnöfer wrote:
>> Thanks Jon.
>>
>> Actually I think replacing the regex with a short method is a very good idea, so I uploaded a new webrev:
>>
>>
>> http://cr.openjdk.java.net/~hannesw/8200432/
>>
>>
>> Hannes
>>
>>
>>
>>> Am 16.11.2018 um 19:36 schrieb Jonathan Gibbons <jonathan.gibbons at oracle.com>
>>> :
>>>
>>> Hannes,
>>>
>>> I'm OK to defer a discussion on enhancing {@link}, and to go with the proposed solution for now, regex and all.
>>>
>>> Your point about not supported more types is noted. While I might argue that we should support "{@link String[]}", even I think that allowing {@link int} would be going too far.
>>>
>>> -- Jon
>>>
>>>
>>> On 11/16/2018 02:10 AM, Hannes Wallnöfer wrote:
>>>
>>>> Thanks for the feedback, Jon!
>>>>
>>>> I don’t understand the point of supporting more link types unless we have something to link to. For arrays we can link to the component type, but there’s no actual link target for the array of a specific type.
>>>>
>>>> Regarding the regex: I agree they’re not a great thing to read and maintain. It might be a good idea to replace that with a small method comparing the index of square brackets with that of left parenthesis.
>>>>
>>>> Hannes
>>>>
>>>>
>>>>> Am 16.11.2018 um 02:42 schrieb Jonathan Gibbons <jonathan.gibbons at oracle.com>
>>>>> :
>>>>>
>>>>> I'm not wildly enthusiastic about this, because while it prevents the CCE, it seems to be generally going in the wrong direction. We need to be looking at supporting more signatures in {@link}, not restricting the set of supported signatures. While it may seem silly to write {@link String[]} it does make sense to want to write {@link List<String>}. In other words, we should accept type signatures that contain possible multiple names and other punctuation, just as we can write {@link Object#equals(Other} and have it do the right thing.
>>>>>
>>>>> I also note the use of a regular expression that is complicated enough for Sundar to suggest that you use a comment. I would refer you to
>>>>> http://regex.info/blog/2006-09-15/247
>>>>>
>>>>>
>>>>> -- Jon
>>>>>
>>>>>
>>>>> On 11/14/2018 06:43 PM, Sundararajan Athijegannathan wrote:
>>>>>
>>>>>> Updated webrev looks good!
>>>>>>
>>>>>> -Sundar
>>>>>>
>>>>>> On 14/11/18, 8:25 PM, Hannes Wallnöfer wrote:
>>>>>>
>>>>>>> Thanks, Sundar.
>>>>>>>
>>>>>>> I uploaded a new webrev with a comment:
>>>>>>>
>>>>>>>
>>>>>>> http://cr.openjdk.java.net/~hannesw/8200432/webrev.01/
>>>>>>>
>>>>>>>
>>>>>>> Hannes
>>>>>>>
>>>>>>>
>>>>>>>> Am 13.11.2018 um 16:32 schrieb Sundararajan Athijegannathan<sundararajan.athijegannathan at oracle.com>
>>>>>>>> :
>>>>>>>>
>>>>>>>> Looks good.
>>>>>>>>
>>>>>>>> Minor nit: There could be a source comment for this pattern in Checker.java
>>>>>>>> + private final static Pattern arrayPattern = Pattern.compile("^[^\\(]+\\[]");
>>>>>>>>
>>>>>>>> -Sundar
>>>>>>>>
>>>>>>>> On 13/11/18, 6:52 PM, Hannes Wallnöfer wrote:
>>>>>>>>
>>>>>>>>> Please review:
>>>>>>>>>
>>>>>>>>> Issue:
>>>>>>>>>
>>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8200432
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Webrev:
>>>>>>>>>
>>>>>>>>> http://cr.openjdk.java.net/~hannesw/8200432/webrev.00/
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Hannes
>>>>>>>>>
>>>>>>>>>
>
More information about the javadoc-dev
mailing list