diff --git a/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJvmCache.kt b/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJvmCache.kt index 34a21c25a27..77e52183740 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJvmCache.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJvmCache.kt @@ -350,7 +350,7 @@ open class IncrementalJvmCache( private fun getConstantsMap(bytes: ByteArray): Map { val result = HashMap() - ClassReader(bytes).accept(object : ClassVisitor(Opcodes.ASM5) { + ClassReader(bytes).accept(object : ClassVisitor(Opcodes.API_VERSION) { override fun visitField(access: Int, name: String, desc: String, signature: String?, value: Any?): FieldVisitor? { val staticFinal = Opcodes.ACC_STATIC or Opcodes.ACC_FINAL or Opcodes.ACC_PRIVATE if (value != null && access and staticFinal == Opcodes.ACC_STATIC or Opcodes.ACC_FINAL) { @@ -470,7 +470,7 @@ open class IncrementalJvmCache( val result = HashMap() - ClassReader(bytes).accept(object : ClassVisitor(Opcodes.ASM5) { + ClassReader(bytes).accept(object : ClassVisitor(Opcodes.API_VERSION) { override fun visitMethod( access: Int, name: String, @@ -478,9 +478,9 @@ open class IncrementalJvmCache( signature: String?, exceptions: Array? ): MethodVisitor? { - val dummyClassWriter = ClassWriter(Opcodes.ASM5) + val dummyClassWriter = ClassWriter(Opcodes.API_VERSION) - return object : MethodVisitor(Opcodes.ASM5, dummyClassWriter.visitMethod(0, name, desc, null, exceptions)) { + return object : MethodVisitor(Opcodes.API_VERSION, dummyClassWriter.visitMethod(0, name, desc, null, exceptions)) { override fun visitEnd() { val jvmName = name + desc if (jvmName !in inlineFunctions) return diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AbstractClassBuilder.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AbstractClassBuilder.java index 24f69d9e568..5139f74cc0c 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AbstractClassBuilder.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AbstractClassBuilder.java @@ -31,8 +31,8 @@ import java.util.List; import static org.jetbrains.kotlin.codegen.inline.InlineCodegenUtilsKt.GENERATE_SMAP; public abstract class AbstractClassBuilder implements ClassBuilder { - protected static final MethodVisitor EMPTY_METHOD_VISITOR = new MethodVisitor(Opcodes.ASM5) {}; - protected static final FieldVisitor EMPTY_FIELD_VISITOR = new FieldVisitor(Opcodes.ASM5) {}; + protected static final MethodVisitor EMPTY_METHOD_VISITOR = new MethodVisitor(Opcodes.API_VERSION) {}; + protected static final FieldVisitor EMPTY_FIELD_VISITOR = new FieldVisitor(Opcodes.API_VERSION) {}; private String thisName; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java index a1339d07296..06b84733773 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java @@ -72,7 +72,7 @@ public abstract class AnnotationCodegen { new JvmFlagAnnotation(JvmAnnotationUtilKt.SYNCHRONIZED_ANNOTATION_FQ_NAME.asString(), Opcodes.ACC_SYNCHRONIZED) ); - private static final AnnotationVisitor NO_ANNOTATION_VISITOR = new AnnotationVisitor(Opcodes.ASM5) { + private static final AnnotationVisitor NO_ANNOTATION_VISITOR = new AnnotationVisitor(Opcodes.API_VERSION) { @Override public AnnotationVisitor visitAnnotation(String name, @NotNull String desc) { return safe(super.visitAnnotation(name, desc)); diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AssertCodegenUtil.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/AssertCodegenUtil.kt index 1b4ec67c13e..4c0f4c4fa13 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AssertCodegenUtil.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AssertCodegenUtil.kt @@ -53,7 +53,7 @@ fun createMethodNodeForAlwaysEnabledAssert( val node = org.jetbrains.org.objectweb.asm.tree.MethodNode( - Opcodes.ASM5, + Opcodes.API_VERSION, Opcodes.ACC_STATIC, "fake", typeMapper.mapAsmMethod(functionDescriptor).descriptor, null, null diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/TransformationMethodVisitor.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/TransformationMethodVisitor.kt index aa331ca09b1..acbbd60fb84 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/TransformationMethodVisitor.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/TransformationMethodVisitor.kt @@ -34,7 +34,7 @@ abstract class TransformationMethodVisitor( desc: String, signature: String?, exceptions: Array?, - api: Int = Opcodes.ASM5 + api: Int = Opcodes.API_VERSION ) : MethodVisitor(api) { private val methodNode = MethodNode(access, name, desc, signature, exceptions).apply { @@ -70,7 +70,7 @@ abstract class TransformationMethodVisitor( performTransformations(methodNode) } - methodNode.accept(EndIgnoringMethodVisitorDecorator(Opcodes.ASM5, delegate)) + methodNode.accept(EndIgnoringMethodVisitorDecorator(Opcodes.API_VERSION, delegate)) // In case of empty instructions list MethodNode.accept doesn't call visitLocalVariables of delegate diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineTransformerMethodVisitor.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineTransformerMethodVisitor.kt index ee7976dec9d..0eedd8cf5d3 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineTransformerMethodVisitor.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/CoroutineTransformerMethodVisitor.kt @@ -354,8 +354,8 @@ class CoroutineTransformerMethodVisitor( methodNode.instructions.resetLabels() methodNode.accept( MaxStackFrameSizeAndLocalsCalculator( - Opcodes.ASM5, methodNode.access, methodNode.desc, - object : MethodVisitor(Opcodes.ASM5) { + Opcodes.API_VERSION, methodNode.access, methodNode.desc, + object : MethodVisitor(Opcodes.API_VERSION) { override fun visitMaxs(maxStack: Int, maxLocals: Int) { methodNode.maxStack = maxStack } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/coroutineCodegenUtil.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/coroutineCodegenUtil.kt index b000d2c4002..0e8f426c24d 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/coroutineCodegenUtil.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/coroutines/coroutineCodegenUtil.kt @@ -340,7 +340,7 @@ fun createMethodNodeForIntercepted( val node = MethodNode( - Opcodes.ASM5, + Opcodes.API_VERSION, Opcodes.ACC_STATIC, "fake", typeMapper.mapAsmMethod(functionDescriptor).descriptor, null, null @@ -366,7 +366,7 @@ fun createMethodNodeForCoroutineContext( val node = MethodNode( - Opcodes.ASM5, + Opcodes.API_VERSION, Opcodes.ACC_STATIC, "fake", Type.getMethodDescriptor(languageVersionSettings.coroutineContextAsmType()), @@ -395,7 +395,7 @@ fun createMethodNodeForSuspendCoroutineUninterceptedOrReturn( val node = MethodNode( - Opcodes.ASM5, + Opcodes.API_VERSION, Opcodes.ACC_STATIC, "fake", typeMapper.mapAsmMethod(functionDescriptor).descriptor, null, null diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt index d61e6274718..9ed4378171e 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt @@ -56,7 +56,7 @@ import java.io.PrintWriter import java.io.StringWriter const val GENERATE_SMAP = true -const val API = Opcodes.ASM5 +const val API = Opcodes.API_VERSION const val NUMBERED_FUNCTION_PREFIX = "kotlin/jvm/functions/Function" const val INLINE_FUN_VAR_SUFFIX = "\$iv" diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/RedundantBoxingMethodTransformer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/RedundantBoxingMethodTransformer.kt index 69edbe16b7f..b4d721f4429 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/RedundantBoxingMethodTransformer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/RedundantBoxingMethodTransformer.kt @@ -251,7 +251,7 @@ class RedundantBoxingMethodTransformer(private val generationState: GenerationSt castWithType: Pair ) { val castInsn = castWithType.getFirst() - val castInsnsListener = MethodNode(Opcodes.ASM5) + val castInsnsListener = MethodNode(Opcodes.API_VERSION) InstructionAdapter(castInsnsListener).cast(value.unboxedType, castWithType.getSecond()) for (insn in castInsnsListener.instructions.toArray()) { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/OptimizationBasicInterpreter.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/OptimizationBasicInterpreter.java index 5d9c9abeff6..29122ede940 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/OptimizationBasicInterpreter.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/OptimizationBasicInterpreter.java @@ -34,7 +34,7 @@ import static org.jetbrains.kotlin.codegen.optimization.common.StrictBasicValue. public class OptimizationBasicInterpreter extends Interpreter implements Opcodes { public OptimizationBasicInterpreter() { - super(ASM5); + super(API_VERSION); } @Override diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/Util.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/Util.kt index 1903bc7d1e5..874c43b5ef3 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/Util.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/Util.kt @@ -27,7 +27,7 @@ import org.jetbrains.org.objectweb.asm.Opcodes.* import org.jetbrains.org.objectweb.asm.Type import org.jetbrains.org.objectweb.asm.tree.* -const val OPTIMIZATION_ASM_API_VERSION = Opcodes.ASM5 +const val OPTIMIZATION_ASM_API_VERSION = Opcodes.API_VERSION val AbstractInsnNode.isMeaningful: Boolean get() = @@ -80,8 +80,8 @@ fun MethodNode.prepareForEmitting() { maxStack = -1 accept( MaxStackFrameSizeAndLocalsCalculator( - Opcodes.ASM5, access, desc, - object : MethodVisitor(Opcodes.ASM5) { + Opcodes.API_VERSION, access, desc, + object : MethodVisitor(Opcodes.API_VERSION) { override fun visitMaxs(maxStack: Int, maxLocals: Int) { this@prepareForEmitting.maxStack = maxStack } diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/FileBasedKotlinClass.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/FileBasedKotlinClass.java index e67c8bc5abc..a2ba8d5bf4b 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/FileBasedKotlinClass.java +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/load/kotlin/FileBasedKotlinClass.java @@ -34,7 +34,7 @@ import org.jetbrains.org.objectweb.asm.*; import java.util.*; import static org.jetbrains.org.objectweb.asm.ClassReader.*; -import static org.jetbrains.org.objectweb.asm.Opcodes.ASM5; +import static org.jetbrains.org.objectweb.asm.Opcodes.API_VERSION; public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { private final ClassId classId; @@ -93,7 +93,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { Ref classNameRef = Ref.create(); Ref classVersion = Ref.create(); InnerClassesInfo innerClasses = new InnerClassesInfo(); - new ClassReader(fileContents).accept(new ClassVisitor(ASM5) { + new ClassReader(fileContents).accept(new ClassVisitor(API_VERSION) { @Override public void visit(int version, int access, @NotNull String name, String signature, String superName, String[] interfaces) { classNameRef.set(name); @@ -145,7 +145,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { @Override public void loadClassAnnotations(@NotNull AnnotationVisitor annotationVisitor, @Nullable byte[] cachedContents) { byte[] fileContents = cachedContents != null ? cachedContents : getFileContents(); - new ClassReader(fileContents).accept(new ClassVisitor(ASM5) { + new ClassReader(fileContents).accept(new ClassVisitor(API_VERSION) { @Override public org.jetbrains.org.objectweb.asm.AnnotationVisitor visitAnnotation(@NotNull String desc, boolean visible) { return convertAnnotationVisitor(annotationVisitor, desc, innerClasses); @@ -170,7 +170,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { private static org.jetbrains.org.objectweb.asm.AnnotationVisitor convertAnnotationVisitor( @NotNull AnnotationArgumentVisitor v, @NotNull InnerClassesInfo innerClasses ) { - return new org.jetbrains.org.objectweb.asm.AnnotationVisitor(ASM5) { + return new org.jetbrains.org.objectweb.asm.AnnotationVisitor(API_VERSION) { @Override public void visit(String name, @NotNull Object value) { if (value instanceof Type) { @@ -184,7 +184,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { @Override public org.jetbrains.org.objectweb.asm.AnnotationVisitor visitArray(String name) { AnnotationArrayArgumentVisitor arv = v.visitArray(Name.identifier(name)); - return arv == null ? null : new org.jetbrains.org.objectweb.asm.AnnotationVisitor(ASM5) { + return arv == null ? null : new org.jetbrains.org.objectweb.asm.AnnotationVisitor(API_VERSION) { @Override public void visit(String name, @NotNull Object value) { if (value instanceof Type) { @@ -228,13 +228,13 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { @Override public void visitMembers(@NotNull MemberVisitor memberVisitor, @Nullable byte[] cachedContents) { byte[] fileContents = cachedContents != null ? cachedContents : getFileContents(); - new ClassReader(fileContents).accept(new ClassVisitor(ASM5) { + new ClassReader(fileContents).accept(new ClassVisitor(API_VERSION) { @Override public FieldVisitor visitField(int access, @NotNull String name, @NotNull String desc, String signature, Object value) { AnnotationVisitor v = memberVisitor.visitField(Name.identifier(name), desc, value); if (v == null) return null; - return new FieldVisitor(ASM5) { + return new FieldVisitor(API_VERSION) { @Override public org.jetbrains.org.objectweb.asm.AnnotationVisitor visitAnnotation(@NotNull String desc, boolean visible) { return convertAnnotationVisitor(v, desc, innerClasses); @@ -253,7 +253,7 @@ public abstract class FileBasedKotlinClass implements KotlinJvmBinaryClass { if (v == null) return null; int methodParamCount = Type.getArgumentTypes(desc).length; - return new MethodVisitor(ASM5) { + return new MethodVisitor(API_VERSION) { private int visibleAnnotableParameterCount = methodParamCount; private int invisibleAnnotableParameterCount = methodParamCount; diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/modules/JavaModuleInfo.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/modules/JavaModuleInfo.kt index 52dc9594a1c..d93bcb1da2e 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/modules/JavaModuleInfo.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/modules/JavaModuleInfo.kt @@ -65,11 +65,11 @@ class JavaModuleInfo( val exports = arrayListOf() try { - ClassReader(contents).accept(object : ClassVisitor(Opcodes.ASM6) { + ClassReader(contents).accept(object : ClassVisitor(Opcodes.API_VERSION) { override fun visitModule(name: String, access: Int, version: String?): ModuleVisitor { moduleName = name - return object : ModuleVisitor(Opcodes.ASM6) { + return object : ModuleVisitor(Opcodes.API_VERSION) { override fun visitRequire(module: String, access: Int, version: String?) { requires.add(Requires(module, (access and ACC_TRANSITIVE) != 0)) } diff --git a/compiler/preloader/instrumentation/src/org/jetbrains/kotlin/preloading/instrumentation/InterceptionInstrumenter.java b/compiler/preloader/instrumentation/src/org/jetbrains/kotlin/preloading/instrumentation/InterceptionInstrumenter.java index 3efadfe7c0e..9fc889bf722 100644 --- a/compiler/preloader/instrumentation/src/org/jetbrains/kotlin/preloading/instrumentation/InterceptionInstrumenter.java +++ b/compiler/preloader/instrumentation/src/org/jetbrains/kotlin/preloading/instrumentation/InterceptionInstrumenter.java @@ -265,7 +265,7 @@ public class InterceptionInstrumenter { private byte[] instrument(byte[] classData, List instrumenters) { ClassReader cr = new ClassReader(classData); ClassWriter cw = new ClassWriter(cr, 0); - cr.accept(new ClassVisitor(ASM5, cw) { + cr.accept(new ClassVisitor(API_VERSION, cw) { private final Map matchedMethods = new HashMap<>(); @Override @@ -316,7 +316,7 @@ public class InterceptionInstrumenter { int maxStackDepth = getMaxStackDepth(name, desc, normalReturnData, enterData, exceptionData); boolean isConstructor = "".equals(name); - return new MethodVisitor(ASM5, mv) { + return new MethodVisitor(API_VERSION, mv) { private InstructionAdapter ia = null; @@ -421,7 +421,7 @@ public class InterceptionInstrumenter { } private TraceMethodVisitor getDumpingVisitorWrapper(MethodVisitor mv, String methodName, String methodDesc) { - return new TraceMethodVisitor(mv, new Textifier(ASM5) { + return new TraceMethodVisitor(mv, new Textifier(API_VERSION) { @Override public void visitMethodEnd() { System.out.println(cr.getClassName() + ":" + methodName + methodDesc); diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt index 352f68e594e..8ca498e726e 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractBytecodeListingTest.kt @@ -41,7 +41,7 @@ abstract class AbstractBytecodeListingTest : CodegenTestCase() { } } -class BytecodeListingTextCollectingVisitor(val filter: Filter, val withSignatures: Boolean, api: Int = ASM5) : ClassVisitor(api) { +class BytecodeListingTextCollectingVisitor(val filter: Filter, val withSignatures: Boolean, api: Int = API_VERSION) : ClassVisitor(api) { companion object { @JvmOverloads fun getText( @@ -162,7 +162,7 @@ class BytecodeListingTextCollectingVisitor(val filter: Filter, val withSignature handleModifiers(access, methodAnnotations) val methodParamCount = Type.getArgumentTypes(desc).size - return object : MethodVisitor(ASM5) { + return object : MethodVisitor(API_VERSION) { private var visibleAnnotableParameterCount = methodParamCount private var invisibleAnnotableParameterCount = methodParamCount @@ -215,7 +215,7 @@ class BytecodeListingTextCollectingVisitor(val filter: Filter, val withSignature handleModifiers(access) if (access and ACC_VOLATILE != 0) addModifier("volatile", fieldDeclaration.annotations) - return object : FieldVisitor(ASM5) { + return object : FieldVisitor(API_VERSION) { override fun visitAnnotation(desc: String, visible: Boolean): AnnotationVisitor? { addAnnotation(desc) return super.visitAnnotation(desc, visible) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCheckLocalVariablesTableTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCheckLocalVariablesTableTest.kt index 5f3db3b09b7..a3c2b0f0f8f 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCheckLocalVariablesTableTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCheckLocalVariablesTableTest.kt @@ -100,14 +100,14 @@ abstract class AbstractCheckLocalVariablesTableTest : CodegenTestCase() { private fun readLocalVariable(cr: ClassReader, methodName: String): List { - class Visitor : ClassVisitor(Opcodes.ASM5) { + class Visitor : ClassVisitor(Opcodes.API_VERSION) { var readVariables: MutableList = ArrayList() override fun visitMethod( access: Int, name: String, desc: String, signature: String?, exceptions: Array? ): MethodVisitor? { return if (methodName == name + desc) { - object : MethodVisitor(Opcodes.ASM5) { + object : MethodVisitor(Opcodes.API_VERSION) { override fun visitLocalVariable( name: String, desc: String, signature: String?, start: Label, end: Label, index: Int ) { diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.kt index eef08db4788..dc7f8d8bcd8 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.kt @@ -72,7 +72,7 @@ abstract class AbstractLineNumberTest : CodegenTestCase() { val labels = arrayListOf