diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java index 1f0300c4181..0212915cee1 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns; import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.descriptors.annotations.Annotated; import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor; +import org.jetbrains.kotlin.descriptors.annotations.Annotations; import org.jetbrains.kotlin.descriptors.impl.AnonymousFunctionDescriptor; import org.jetbrains.kotlin.descriptors.impl.FunctionExpressionDescriptor; import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl; @@ -561,8 +562,8 @@ public class DescriptorUtils { } @Nullable - public static String getJvmName(@NotNull Annotated descriptor) { - AnnotationDescriptor jvmNameAnnotation = getJvmNameAnnotation(descriptor); + public static String getJvmName(@NotNull Annotations annotations) { + AnnotationDescriptor jvmNameAnnotation = getJvmNameAnnotation(annotations); if (jvmNameAnnotation == null) return null; Map> arguments = jvmNameAnnotation.getAllValueArguments(); @@ -574,14 +575,25 @@ public class DescriptorUtils { return ((StringValue) name).getValue(); } - public static AnnotationDescriptor getJvmNameAnnotation(@NotNull Annotated descriptor) { - AnnotationDescriptor jvmNameAnnotation = descriptor.getAnnotations().findAnnotation(JVM_NAME); + @Nullable + public static String getJvmName(@NotNull Annotated annotated) { + return getJvmName(annotated.getAnnotations()); + } + + @Nullable + public static AnnotationDescriptor getJvmNameAnnotation(@NotNull Annotations annotations) { + AnnotationDescriptor jvmNameAnnotation = annotations.findAnnotation(JVM_NAME); if (jvmNameAnnotation == null) { - jvmNameAnnotation = descriptor.getAnnotations().findAnnotation(PLATFORM_NAME); + jvmNameAnnotation = annotations.findAnnotation(PLATFORM_NAME); } return jvmNameAnnotation; } + @Nullable + public static AnnotationDescriptor getJvmNameAnnotation(@NotNull Annotated annotated) { + return getJvmNameAnnotation(annotated.getAnnotations()); + } + private static void getSubPackagesFqNames(PackageViewDescriptor packageView, Set result) { FqName fqName = packageView.getFqName(); if (!fqName.isRoot()) { diff --git a/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt b/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt index b905b97ea15..d88ac2af45d 100644 --- a/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt +++ b/libraries/stdlib/src/kotlin/jvm/JvmPlatformAnnotations.kt @@ -45,7 +45,7 @@ public annotation class JvmStatic * for more information. * @property name the name of the element. */ -@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER) +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.FILE) @Retention(AnnotationRetention.RUNTIME) @MustBeDocumented public annotation class JvmName(public val name: String)