Visitors in tests migrated to ASM 4.0

This commit is contained in:
Andrey Breslav
2012-07-24 22:27:35 +04:00
parent 6df2017d82
commit 03f73e8f8c
2 changed files with 29 additions and 25 deletions
@@ -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<LocalVariable> readLocalVariable(ClassReader cr, final String methodName) throws Exception {
class Visitor extends EmptyVisitor {
class Visitor extends ClassVisitor {
List<LocalVariable> readVariables = new ArrayList<LocalVariable>();
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));
@@ -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