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 <[email protected]>:
>
> 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
>>> <[email protected]>
>>> :
>>>
>>> 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
>>>>> <[email protected]>
>>>>> :
>>>>>
>>>>> 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<[email protected]>
>>>>>>>> :
>>>>>>>>
>>>>>>>> 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
>>>>>>>>>
>>>>>>>>>
>