I hit Send too soon.
The first sentence was intended to read:
The use of isArrayType is better, but it is slightly strange/confusing
to be referring to sig after trying to get an element.
The suggested code is as intended.
-- Jon
On 11/19/18 10:39 AM, Jonathan Gibbons wrote:
Hannes,
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
tohttp://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