Support preference of TYPE_USE annotations to enhance over others like METHOD, FIELD and VALUE_PARAMETER to avoid double applying them in case of arrays: @NotNull Integer [] (both to the array element and to the entire array)
^KT-24392 Fixed
This commit is contained in:
+7
-2
@@ -5,6 +5,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.load.java
|
||||
|
||||
enum class AnnotationQualifierApplicabilityType {
|
||||
METHOD_RETURN_TYPE, VALUE_PARAMETER, FIELD, TYPE_USE, TYPE_PARAMETER_BOUNDS
|
||||
enum class AnnotationQualifierApplicabilityType(val javaTarget: String) {
|
||||
METHOD_RETURN_TYPE("METHOD"),
|
||||
VALUE_PARAMETER("PARAMETER"),
|
||||
FIELD("FIELD"),
|
||||
TYPE_USE("TYPE_USE"),
|
||||
TYPE_PARAMETER_BOUNDS("TYPE_USE"),
|
||||
TYPE_PARAMETER("TYPE_PARAMETER")
|
||||
}
|
||||
|
||||
@@ -16,10 +16,15 @@
|
||||
|
||||
package org.jetbrains.kotlin.load.java;
|
||||
|
||||
import kotlin.annotation.Repeatable;
|
||||
import org.jetbrains.kotlin.name.FqName;
|
||||
import org.jetbrains.kotlin.name.Name;
|
||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@SuppressWarnings("PointlessBitwiseExpression")
|
||||
public final class JvmAnnotationNames {
|
||||
public static final FqName METADATA_FQ_NAME = new FqName("kotlin.Metadata");
|
||||
@@ -44,6 +49,12 @@ public final class JvmAnnotationNames {
|
||||
|
||||
public static final Name DEFAULT_ANNOTATION_MEMBER_NAME = Name.identifier("value");
|
||||
|
||||
public static final FqName TARGET_ANNOTATION = new FqName(Target.class.getCanonicalName());
|
||||
public static final FqName RETENTION_ANNOTATION = new FqName(Retention.class.getCanonicalName());
|
||||
public static final FqName DEPRECATED_ANNOTATION = new FqName(Deprecated.class.getCanonicalName());
|
||||
public static final FqName DOCUMENTED_ANNOTATION = new FqName(Documented.class.getCanonicalName());
|
||||
public static final FqName REPEATABLE_ANNOTATION = new FqName("java.lang.annotation.Repeatable");
|
||||
|
||||
public static final FqName JETBRAINS_NOT_NULL_ANNOTATION = new FqName("org.jetbrains.annotations.NotNull");
|
||||
public static final FqName JETBRAINS_NULLABLE_ANNOTATION = new FqName("org.jetbrains.annotations.Nullable");
|
||||
public static final FqName JETBRAINS_MUTABLE_ANNOTATION = new FqName("org.jetbrains.annotations.Mutable");
|
||||
|
||||
Reference in New Issue
Block a user