RFR: 8254023: A module declaration is not allowed to be a target of an annotation that lacks an @Target meta-annotation
Guoxiong Li
github.com+13688759+lgxbslgx at openjdk.java.net
Wed Oct 14 13:18:23 UTC 2020
Hi all,
The Java Language Specifications(JLS), from 8 to 13 included, state it as below:
> If an annotation of type java.lang.annotation.Target is not present on the
declaration of an annotation type T , then T is applicable in all declaration contexts
except type parameter declarations, and in no type contexts.
These contexts are the syntactic locations where annotations were allowed in Java SE 7.
The JLS 14 and 15 state it as below:
>If an annotation of type java.lang.annotation.Target is not present on the
declaration of an annotation type T , then T is applicable in all nine declaration
contexts and in all 16 type contexts.
This patch adds `names.MODULE, names.TYPE_PARAMETER, names.TYPE_USE` to `com.sun.tools.javac.comp.Check.dfltTargetMeta`
to fix this issue. Thank you for taking the time to review.
Best Regards.
-------------
Commit messages:
- 8254023: A module declaration is not allowed to be a target of an annotation that lacks an @Target meta-annotation
Changes: https://git.openjdk.java.net/jdk/pull/622/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=622&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8254023
Stats: 82 lines in 4 files changed: 81 ins; 0 del; 1 mod
Patch: https://git.openjdk.java.net/jdk/pull/622.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/622/head:pull/622
PR: https://git.openjdk.java.net/jdk/pull/622
More information about the compiler-dev
mailing list