From 03f73e8f8cf89391adcffb341f420669de9dcd88 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 24 Jul 2012 22:27:35 +0400 Subject: [PATCH] Visitors in tests migrated to ASM 4.0 --- .../codegen/CheckLocalVariablesTableTest.java | 13 +++--- .../jet/jvm/compiler/WriteSignatureTest.java | 41 ++++++++++--------- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/codegen/CheckLocalVariablesTableTest.java b/compiler/tests/org/jetbrains/jet/codegen/CheckLocalVariablesTableTest.java index 57e3424a416..adff116096b 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/CheckLocalVariablesTableTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/CheckLocalVariablesTableTest.java @@ -25,16 +25,13 @@ import com.intellij.psi.impl.PsiFileFactoryImpl; import com.intellij.testFramework.LightVirtualFile; import junit.framework.Test; import org.jetbrains.annotations.NotNull; +import org.jetbrains.asm4.*; import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.test.TestCaseWithTmpdir; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.plugin.JetLanguage; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.Label; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.commons.EmptyVisitor; import java.io.File; import java.io.IOException; @@ -189,13 +186,17 @@ public class CheckLocalVariablesTableTest extends TestCaseWithTmpdir { @NotNull private List readLocalVariable(ClassReader cr, final String methodName) throws Exception { - class Visitor extends EmptyVisitor { + class Visitor extends ClassVisitor { List readVariables = new ArrayList(); + public Visitor() { + super(Opcodes.ASM4); + } + @Override public MethodVisitor visitMethod(int access, String name, final String desc, final String signature, String[] exceptions) { if (methodName.equals(name + desc)) { - return new EmptyVisitor() { + return new MethodVisitor(Opcodes.ASM4) { @Override public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index) { readVariables.add(new LocalVariable(name, desc, index)); diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/WriteSignatureTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/WriteSignatureTest.java index 076d92a1bd4..6e3d4d522fd 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/WriteSignatureTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/WriteSignatureTest.java @@ -27,6 +27,7 @@ import com.intellij.testFramework.LightVirtualFile; import junit.framework.Test; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.asm4.*; import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentUtil; @@ -37,11 +38,7 @@ import org.jetbrains.jet.lang.resolve.java.JvmStdlibNames; import org.jetbrains.jet.plugin.JetLanguage; import org.jetbrains.jet.test.TestCaseWithTmpdir; import org.junit.Assert; -import org.objectweb.asm.AnnotationVisitor; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.commons.EmptyVisitor; -import org.objectweb.asm.commons.Method; +import org.jetbrains.asm4.commons.Method; import java.io.File; import java.io.FileInputStream; @@ -60,6 +57,8 @@ import java.util.regex.Pattern; */ public class WriteSignatureTest extends TestCaseWithTmpdir { + private static final AnnotationVisitor EMPTY_ANNOTATION_VISITOR = new AnnotationVisitor(Opcodes.ASM4) {}; + private final File ktFile; private JetCoreEnvironment jetCoreEnvironment; @@ -122,16 +121,20 @@ public class WriteSignatureTest extends TestCaseWithTmpdir { // ugly unreadable code begin FileInputStream classInputStream = new FileInputStream(tmpdir + "/" + className.replace('.', '/') + ".class"); try { - class Visitor extends EmptyVisitor { + class Visitor extends ClassVisitor { ActualSignature readSignature; - + + public Visitor() { + super(Opcodes.ASM4); + } + @Override public MethodVisitor visitMethod(int access, String name, final String desc, final String signature, String[] exceptions) { if (name.equals(methodName)) { final int parameterCount = new Method(name, desc).getArgumentTypes().length; - return new EmptyVisitor() { + return new MethodVisitor(Opcodes.ASM4) { String typeParameters = ""; String returnType; String[] parameterTypes = new String[parameterCount]; @@ -139,7 +142,7 @@ public class WriteSignatureTest extends TestCaseWithTmpdir { @Override public AnnotationVisitor visitAnnotation(String desc, boolean visible) { if (desc.equals(JvmStdlibNames.JET_METHOD.getDescriptor())) { - return new EmptyVisitor() { + return new AnnotationVisitor(Opcodes.ASM4) { @Override public void visit(String name, Object value) { if (name.equals(JvmStdlibNames.JET_METHOD_TYPE_PARAMETERS_FIELD)) { @@ -151,25 +154,25 @@ public class WriteSignatureTest extends TestCaseWithTmpdir { } @Override - public AnnotationVisitor visitAnnotation(String desc, boolean visible) { - return new EmptyVisitor(); + public AnnotationVisitor visitAnnotation(String s, String s1) { + return EMPTY_ANNOTATION_VISITOR; } @Override public AnnotationVisitor visitArray(String name) { - return new EmptyVisitor(); + return EMPTY_ANNOTATION_VISITOR; } }; } else { - return new EmptyVisitor(); + return EMPTY_ANNOTATION_VISITOR; } } @Override public AnnotationVisitor visitParameterAnnotation(final int parameter, String desc, boolean visible) { if (desc.equals(JvmStdlibNames.JET_VALUE_PARAMETER.getDescriptor())) { - return new EmptyVisitor() { + return new AnnotationVisitor(Opcodes.ASM4) { @Override public void visit(String name, Object value) { if (name.equals(JvmStdlibNames.JET_VALUE_PARAMETER_TYPE_FIELD)) { @@ -178,24 +181,24 @@ public class WriteSignatureTest extends TestCaseWithTmpdir { } @Override - public AnnotationVisitor visitAnnotation(String desc, boolean visible) { - return new EmptyVisitor(); + public AnnotationVisitor visitAnnotation(String name, String desc) { + return EMPTY_ANNOTATION_VISITOR; } @Override public AnnotationVisitor visitArray(String name) { - return new EmptyVisitor(); + return EMPTY_ANNOTATION_VISITOR; } }; } else { - return new EmptyVisitor(); + return EMPTY_ANNOTATION_VISITOR; } } @Override public AnnotationVisitor visitAnnotationDefault() { - return new EmptyVisitor(); + return EMPTY_ANNOTATION_VISITOR; } @Nullable