blob: cf66c3e0a7a21860fbccdfd8280a2051e307cdca [file] [log] [blame]
// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.kotlin.lambda.b159688129;
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
public class TestKtDump implements Opcodes {
public static byte[] dump(int id) {
ClassWriter classWriter = new ClassWriter(0);
MethodVisitor methodVisitor;
AnnotationVisitor annotationVisitor0;
classWriter.visit(
V1_8,
ACC_PUBLIC | ACC_FINAL | ACC_SUPER,
"com/android/tools/r8/kotlin/lambda/b159688129/TestKt" + id,
null,
"java/lang/Object",
null);
{
annotationVisitor0 = classWriter.visitAnnotation("Lkotlin/Metadata;", true);
annotationVisitor0.visit("mv", new int[] {1, 1, 16});
annotationVisitor0.visit("bv", new int[] {1, 0, 3});
annotationVisitor0.visit("k", new Integer(2));
{
AnnotationVisitor annotationVisitor1 = annotationVisitor0.visitArray("d1");
annotationVisitor1.visit(
null,
"\u0000\u0008\n"
+ "\u0000\n"
+ "\u0002\u0010\u0002\n"
+ "\u0000\u001a\u0006\u0010\u0000\u001a\u00020\u0001\u00a8\u0006\u0002");
annotationVisitor1.visitEnd();
}
{
AnnotationVisitor annotationVisitor1 = annotationVisitor0.visitArray("d2");
annotationVisitor1.visit(null, "test");
annotationVisitor1.visit(null, "");
annotationVisitor1.visit(null, "r8.main");
annotationVisitor1.visitEnd();
}
annotationVisitor0.visitEnd();
}
classWriter.visitInnerClass(
"com/android/tools/r8/kotlin/lambda/b159688129/TestKt" + id + "$test$1",
null,
null,
ACC_FINAL | ACC_STATIC);
{
methodVisitor =
classWriter.visitMethod(ACC_PUBLIC | ACC_FINAL | ACC_STATIC, "test", "()V", null, null);
methodVisitor.visitCode();
methodVisitor.visitFieldInsn(
GETSTATIC,
"com/android/tools/r8/kotlin/lambda/b159688129/TestKt" + id + "$test$1",
"INSTANCE",
"Lcom/android/tools/r8/kotlin/lambda/b159688129/TestKt" + id + "$test$1;");
methodVisitor.visitTypeInsn(CHECKCAST, "kotlin/jvm/functions/Function0");
methodVisitor.visitMethodInsn(
INVOKESTATIC,
"com/android/tools/r8/kotlin/lambda/b159688129/MainKt" + id,
"run",
"(Lkotlin/jvm/functions/Function0;)V",
false);
methodVisitor.visitInsn(RETURN);
methodVisitor.visitMaxs(1, 0);
methodVisitor.visitEnd();
}
classWriter.visitEnd();
return classWriter.toByteArray();
}
}