RFR: 8254023: A module declaration is not allowed to be a target of an annotation that lacks an @Target meta-annotation [v4]
Guoxiong Li
github.com+13688759+lgxbslgx at openjdk.java.net
Fri Dec 11 16:26:13 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.
Guoxiong Li has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits:
- Merge remote-tracking branch 'origin/master' into JDK-8254023
# Conflicts:
# test/langtools/tools/javac/modules/AnnotationProcessing.java
- Polish.
- Add two test cases.
- Remove TYPE_PARAMETER and TYPE_USE
- 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=03
Stats: 180 lines in 6 files changed: 177 ins; 0 del; 3 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