public class io.vertx.codetrans.lang.kotlin.KotlinLang implements io.vertx.codetrans.Lang
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.codetrans.lang.kotlin.KotlinLang
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
         0: .line 21
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codetrans/lang/kotlin/KotlinLang;

  public java.lang.String id();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
         0: .line 25
            ldc "kotlin"
            areturn
        end local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codetrans/lang/kotlin/KotlinLang;

  public java.io.File createSourceFile(java.io.File, java.util.List<java.lang.String>, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/util/List;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
        start local 1 // java.io.File root
        start local 2 // java.util.List className
        start local 3 // java.lang.String methodName
         0: .line 30
            new java.io.File
            dup
            aload 1 /* root */
            aload 2 /* className */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            getstatic java.io.File.separator:Ljava/lang/String;
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 4 /* folder */
        start local 4 // java.io.File folder
         1: .line 31
            aload 3 /* methodName */
            ifnull 3
         2: .line 32
            new java.io.File
            dup
            aload 4 /* folder */
            aload 3 /* methodName */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 4 /* folder */
         3: .line 34
      StackMap locals: java.io.File
      StackMap stack:
            new java.io.File
            dup
            aload 4 /* folder */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            aload 4 /* folder */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".kt"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 4 // java.io.File folder
        end local 3 // java.lang.String methodName
        end local 2 // java.util.List className
        end local 1 // java.io.File root
        end local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/codetrans/lang/kotlin/KotlinLang;
            0    4     1        root  Ljava/io/File;
            0    4     2   className  Ljava/util/List<Ljava/lang/String;>;
            0    4     3  methodName  Ljava/lang/String;
            1    4     4      folder  Ljava/io/File;
    Signature: (Ljava/io/File;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/String;)Ljava/io/File;
    MethodParameters:
            Name  Flags
      root        
      className   
      methodName  

  public io.vertx.codetrans.Script loadScript(java.lang.ClassLoader, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/codetrans/Script;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=10, args_size=4
        start local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
        start local 1 // java.lang.ClassLoader loader
        start local 2 // java.lang.String path
        start local 3 // java.lang.String method
         0: .line 39
            new java.net.URLClassLoader
            dup
            iconst_1
            anewarray java.net.URL
            dup
            iconst_0
            new java.io.File
            dup
            new java.io.File
            dup
            ldc "target"
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            ldc "kotlin-classes"
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            invokevirtual java.io.File.toURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            aastore
            aload 1 /* loader */
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
            astore 1 /* loader */
         1: .line 40
            new java.lang.StringBuilder
            dup
            aload 2 /* path */
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* fqn */
        start local 4 // java.lang.String fqn
         2: .line 41
            aload 1 /* loader */
            aload 4 /* fqn */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* c */
        start local 5 // java.lang.Class c
         3: .line 42
            aload 5 /* c */
            ldc "INSTANCE"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 6 /* accessor */
        start local 6 // java.lang.reflect.Field accessor
         4: .line 43
            aload 5 /* c */
            aload 3 /* method */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 7 /* m */
        start local 7 // java.lang.reflect.Method m
         5: .line 44
            new java.io.File
            dup
            new java.lang.StringBuilder
            dup
            ldc "src/test/generated/kotlin/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* method */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".kt"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 8 /* f */
        start local 8 // java.io.File f
         6: .line 45
            new java.lang.String
            dup
            aload 8 /* f */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            invokespecial java.lang.String.<init>:([B)V
            astore 9 /* source */
        start local 9 // java.lang.String source
         7: .line 46
            new io.vertx.codetrans.lang.kotlin.KotlinLang$1
            dup
            aload 0 /* this */
            aload 9 /* source */
            aload 6 /* accessor */
            aload 7 /* m */
            invokespecial io.vertx.codetrans.lang.kotlin.KotlinLang$1.<init>:(Lio/vertx/codetrans/lang/kotlin/KotlinLang;Ljava/lang/String;Ljava/lang/reflect/Field;Ljava/lang/reflect/Method;)V
            areturn
        end local 9 // java.lang.String source
        end local 8 // java.io.File f
        end local 7 // java.lang.reflect.Method m
        end local 6 // java.lang.reflect.Field accessor
        end local 5 // java.lang.Class c
        end local 4 // java.lang.String fqn
        end local 3 // java.lang.String method
        end local 2 // java.lang.String path
        end local 1 // java.lang.ClassLoader loader
        end local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lio/vertx/codetrans/lang/kotlin/KotlinLang;
            0    8     1    loader  Ljava/lang/ClassLoader;
            0    8     2      path  Ljava/lang/String;
            0    8     3    method  Ljava/lang/String;
            2    8     4       fqn  Ljava/lang/String;
            3    8     5         c  Ljava/lang/Class<*>;
            4    8     6  accessor  Ljava/lang/reflect/Field;
            5    8     7         m  Ljava/lang/reflect/Method;
            6    8     8         f  Ljava/io/File;
            7    8     9    source  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
        Name  Flags
      loader  
      path    
      method  

  public java.lang.String getExtension();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
         0: .line 61
            ldc "kt"
            areturn
        end local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codetrans/lang/kotlin/KotlinLang;

  public io.vertx.codetrans.CodeBuilder codeBuilder();
    descriptor: ()Lio/vertx/codetrans/CodeBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
         0: .line 66
            new io.vertx.codetrans.lang.kotlin.KotlinCodeBuilder
            dup
            invokespecial io.vertx.codetrans.lang.kotlin.KotlinCodeBuilder.<init>:()V
            areturn
        end local 0 // io.vertx.codetrans.lang.kotlin.KotlinLang this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/codetrans/lang/kotlin/KotlinLang;
}
SourceFile: "KotlinLang.java"
NestMembers:
  io.vertx.codetrans.lang.kotlin.KotlinLang$1
InnerClasses:
  io.vertx.codetrans.lang.kotlin.KotlinLang$1