More precise annotation targets
Peter Lawrey
peter.lawrey at gmail.com
Tue Oct 16 08:21:35 UTC 2018
Sometimes for clarity or performance or profiling reasons, I put each key
loop in its own private method with a descriptive name.
You could then add an annotation to this method to control how the loop(s)
in the method should be optimised.
On Thu, 11 Oct 2018 at 21:33, LaMothe, Ryan R <Ryan.LaMothe at pnnl.gov> wrote:
> While I agree with Brian's comments later in this thread on the below
> question, I'd like to expand on the question just a little: We've always
> wished we could annotate for loops, while loops, etc. so that we can handle
> them with custom back-end code/processing (e.g. parallelism, GPU, cluster
> queue, etc.). Has that already been attempted/proposed or is that something
> we would need to propose new?
>
> ____________________________________________
> Ryan LaMothe
>
> -----Original Message-----
> From: discuss [mailto:discuss-bounces at openjdk.java.net] On Behalf Of
> arjan tijms
> Sent: Thursday, October 11, 2018 6:19 AM
> To: discuss <discuss at openjdk.java.net>
> Subject: More precise annotation targets
>
> Hi,
>
> I wonder if the following would make sense to consider for a Java language
> enhancement:
>
> Annotations can currently be targeted
> to TYPE, FIELD, METHOD, TYPE_PARAMETER etc.
>
> For lots of cases this is fine, but in other case you need a bit more
> detail. For instance, consider an @ActionEvent annotation that targets
> METHOD, but actually can only be applied on methods with a specific
> signature such as void method(Action); and void method();
>
> You might want to have correct placement of the annotation expressed in a
> little more exact way, like e.g.
>
> @Target(METHOD)
> @TargetMethods( {ActionInterface.class, ActionInterface2.class})
> @Retention(RUNTIME)
> public @interface ActionEvent {}
>
>
> With ActionInterface.class and ActionInterface2.class both functional
> classes.
>
> Alternatively:
>
> @Target(METHOD)
> @TargetMethods( {
> @MethodSignature(
> return=Void.class, arguments=Action.class),
> @MethodSignature(
> return=Void.class)}
> }
> @Retention(RUNTIME)
> public @interface ActionEvent {}
>
> The syntax used is just illustrative of the idea.
>
> Thoughts?
>
> Kind regards,
> Arjan
>
More information about the discuss
mailing list