diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java index 1b3635ae25c..b7cb263786b 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java @@ -800,11 +800,6 @@ public class AsmUtil { strings.visitEnd(); } - @NotNull - public static String asmDescByFqNameWithoutInnerClasses(@NotNull FqName fqName) { - return asmTypeByFqNameWithoutInnerClasses(fqName).getDescriptor(); - } - @NotNull public static Type asmTypeByFqNameWithoutInnerClasses(@NotNull FqName fqName) { return Type.getObjectType(internalNameByFqNameWithoutInnerClasses(fqName)); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/writeAnnotationUtil.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/writeAnnotationUtil.kt index 73fea5bd4ec..e27fd85077e 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/writeAnnotationUtil.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/writeAnnotationUtil.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader import org.jetbrains.org.objectweb.asm.AnnotationVisitor fun writeKotlinMetadata(cb: ClassBuilder, kind: KotlinClassHeader.Kind, action: (AnnotationVisitor) -> Unit) { - val av = cb.newAnnotation(AsmUtil.asmDescByFqNameWithoutInnerClasses(JvmAnnotationNames.METADATA), true) + val av = cb.newAnnotation(JvmAnnotationNames.METADATA_DESC, true) av.visit(JvmAnnotationNames.METADATA_VERSION_FIELD_NAME, JvmMetadataVersion.INSTANCE.toArray()) av.visit(JvmAnnotationNames.BYTECODE_VERSION_FIELD_NAME, JvmBytecodeBinaryVersion.INSTANCE.toArray()) av.visit(JvmAnnotationNames.KIND_FIELD_NAME, kind.id) diff --git a/compiler/tests/org/jetbrains/kotlin/cli/WrongBytecodeVersionTest.kt b/compiler/tests/org/jetbrains/kotlin/cli/WrongBytecodeVersionTest.kt index 5fea49d688c..4e19958ec69 100644 --- a/compiler/tests/org/jetbrains/kotlin/cli/WrongBytecodeVersionTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/cli/WrongBytecodeVersionTest.kt @@ -20,7 +20,6 @@ import com.intellij.ide.highlighter.JavaClassFileType import com.intellij.testFramework.UsefulTestCase import org.jetbrains.kotlin.cli.common.ExitCode import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler -import org.jetbrains.kotlin.codegen.AsmUtil import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil import org.jetbrains.kotlin.load.java.JvmAnnotationNames import org.jetbrains.kotlin.load.java.JvmBytecodeBinaryVersion @@ -64,7 +63,7 @@ class WrongBytecodeVersionTest : UsefulTestCase() { ClassReader(file.inputStream()).accept(object : ClassVisitor(Opcodes.ASM5, writer) { override fun visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor? { val superVisitor = super.visitAnnotation(desc, visible)!! - if (desc == AsmUtil.asmDescByFqNameWithoutInnerClasses(JvmAnnotationNames.METADATA)) { + if (desc == JvmAnnotationNames.METADATA_DESC) { return object : AnnotationVisitor(Opcodes.ASM5, superVisitor) { override fun visit(name: String?, value: Any) { val updatedValue: Any = diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/InlineTestUtil.kt b/compiler/tests/org/jetbrains/kotlin/codegen/InlineTestUtil.kt index 9aacb7dec04..07819129d59 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/InlineTestUtil.kt +++ b/compiler/tests/org/jetbrains/kotlin/codegen/InlineTestUtil.kt @@ -30,8 +30,6 @@ import org.jetbrains.org.objectweb.asm.tree.MethodNode import java.util.* object InlineTestUtil { - private val KOTLIN_METADATA_DESC = AsmUtil.asmDescByFqNameWithoutInnerClasses(JvmAnnotationNames.METADATA) - fun checkNoCallsToInline(files: Iterable, sourceFiles: List) { val inlineInfo = obtainInlineInfo(files) val inlineMethods = inlineInfo.inlineMethods @@ -90,7 +88,7 @@ object InlineTestUtil { private var skipMethodsOfThisClass = false override fun visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor? { - if (desc == KOTLIN_METADATA_DESC) { + if (desc == JvmAnnotationNames.METADATA_DESC) { return object : AnnotationVisitor(Opcodes.ASM5) { override fun visit(name: String?, value: Any) { if (name == JvmAnnotationNames.KIND_FIELD_NAME && value == KotlinClassHeader.Kind.MULTIFILE_CLASS.id) { diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/KotlinSyntheticClassAnnotationTest.java b/compiler/tests/org/jetbrains/kotlin/codegen/KotlinSyntheticClassAnnotationTest.java index cfc9a3cef5c..75c77af654e 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/KotlinSyntheticClassAnnotationTest.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/KotlinSyntheticClassAnnotationTest.java @@ -29,7 +29,7 @@ import java.lang.annotation.Annotation; import java.util.Collection; import java.util.List; -import static org.jetbrains.kotlin.load.java.JvmAnnotationNames.METADATA; +import static org.jetbrains.kotlin.load.java.JvmAnnotationNames.METADATA_FQ_NAME; import static org.jetbrains.kotlin.load.java.JvmAnnotationNames.METADATA_VERSION_FIELD_NAME; public class KotlinSyntheticClassAnnotationTest extends CodegenTestCase { @@ -139,7 +139,7 @@ public class KotlinSyntheticClassAnnotationTest extends CodegenTestCase { } private void assertAnnotatedWithMetadata(@NotNull Class aClass) { - String annotationFqName = METADATA.asString(); + String annotationFqName = METADATA_FQ_NAME.asString(); Class annotationClass = loadAnnotationClassQuietly(annotationFqName); assertTrue("No annotation " + annotationFqName + " found in " + aClass, aClass.isAnnotationPresent(annotationClass)); diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/AbstractLocalClassProtoTest.kt b/compiler/tests/org/jetbrains/kotlin/serialization/AbstractLocalClassProtoTest.kt index 3d924e25cfb..0b7bcad5e5b 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/AbstractLocalClassProtoTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/serialization/AbstractLocalClassProtoTest.kt @@ -79,7 +79,7 @@ abstract class AbstractLocalClassProtoTest : TestCaseWithTmpdir() { @Suppress("UNCHECKED_CAST") private fun assertHasAnnotationData(clazz: Class<*>) { checkNotNull(clazz.getAnnotation( - clazz.classLoader.loadClass(JvmAnnotationNames.METADATA.asString()) as Class + clazz.classLoader.loadClass(JvmAnnotationNames.METADATA_FQ_NAME.asString()) as Class )) { "Metadata annotation is not found for class $clazz" } } } diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAnnotationNames.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAnnotationNames.java index c0d962797ba..1895fc09685 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAnnotationNames.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAnnotationNames.java @@ -27,7 +27,8 @@ import java.util.HashSet; import java.util.Set; public final class JvmAnnotationNames { - public static final FqName METADATA = new FqName("kotlin.Metadata"); + public static final FqName METADATA_FQ_NAME = new FqName("kotlin.Metadata"); + public static final String METADATA_DESC = "L" + JvmClassName.byFqNameWithoutInnerClasses(METADATA_FQ_NAME).getInternalName() + ";"; public static final String METADATA_VERSION_FIELD_NAME = "mv"; public static final String BYTECODE_VERSION_FIELD_NAME = "bv"; @@ -68,7 +69,7 @@ public final class JvmAnnotationNames { } public static boolean isSpecialAnnotation(@NotNull ClassId classId, boolean javaSpecificAnnotationsAreSpecial) { - if (classId.asSingleFqName().equals(METADATA)) return true; + if (classId.asSingleFqName().equals(METADATA_FQ_NAME)) return true; if (javaSpecificAnnotationsAreSpecial) { JvmClassName className = JvmClassName.byClassId(classId); diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java index b3e17e1a0b0..24953f4e050 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/header/ReadKotlinClassHeaderAnnotationVisitor.java @@ -90,7 +90,7 @@ public class ReadKotlinClassHeaderAnnotationVisitor implements AnnotationVisitor @Override public AnnotationArgumentVisitor visitAnnotation(@NotNull ClassId classId, @NotNull SourceElement source) { FqName fqName = classId.asSingleFqName(); - if (fqName.equals(METADATA)) { + if (fqName.equals(METADATA_FQ_NAME)) { return new KotlinMetadataArgumentVisitor(); } diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt index 758f6c22d29..34a3b1e591e 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt @@ -93,7 +93,7 @@ class AllClassesCompletion(private val parameters: CompletionParameters, private fun PsiClass.isSyntheticKotlinClass(): Boolean { if ('$' !in name!!) return false // optimization to not analyze annotations of all classes - val metadata = modifierList?.findAnnotation(JvmAnnotationNames.METADATA.asString()) + val metadata = modifierList?.findAnnotation(JvmAnnotationNames.METADATA_FQ_NAME.asString()) return (metadata?.findAttributeValue(JvmAnnotationNames.KIND_FIELD_NAME) as? PsiLiteral)?.value == KotlinClassHeader.Kind.SYNTHETIC_CLASS.id } diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinMetadataVersionIndex.kt b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinMetadataVersionIndex.kt index f8bd4bdb236..78c86367be1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinMetadataVersionIndex.kt +++ b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinMetadataVersionIndex.kt @@ -20,7 +20,6 @@ import com.intellij.openapi.fileTypes.StdFileTypes import com.intellij.util.indexing.DataIndexer import com.intellij.util.indexing.FileBasedIndex import com.intellij.util.indexing.FileContent -import org.jetbrains.kotlin.codegen.AsmUtil.asmDescByFqNameWithoutInnerClasses import org.jetbrains.kotlin.load.java.JvmAnnotationNames.* import org.jetbrains.kotlin.load.kotlin.JvmMetadataVersion import org.jetbrains.kotlin.load.kotlin.header.KotlinClassHeader @@ -41,8 +40,6 @@ object KotlinMetadataVersionIndex : KotlinAbiVersionIndexBase