final class jdk.tools.jaotc.Collector
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.tools.jaotc.Collector
  super_class: java.lang.Object
{
  private final jdk.tools.jaotc.Main main;
    descriptor: Ljdk/tools/jaotc/Main;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(jdk.tools.jaotc.Main);
    descriptor: (Ljdk/tools/jaotc/Main;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.tools.jaotc.Collector this
        start local 1 // jdk.tools.jaotc.Main main
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 50
            aload 0 /* this */
            aload 1 /* main */
            putfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
         2: .line 51
            return
        end local 1 // jdk.tools.jaotc.Main main
        end local 0 // jdk.tools.jaotc.Collector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/tools/jaotc/Collector;
            0    3     1  main  Ljdk/tools/jaotc/Main;
    MethodParameters:
      Name  Flags
      main  

  java.util.Set<java.lang.Class<?>> collectClassesToCompile();
    descriptor: ()Ljava/util/Set;
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // jdk.tools.jaotc.Collector this
         0: .line 54
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* classesToCompile */
        start local 1 // java.util.Set classesToCompile
         1: .line 55
            new jdk.tools.jaotc.collect.FileSupport
            dup
            invokespecial jdk.tools.jaotc.collect.FileSupport.<init>:()V
            astore 2 /* fileSupport */
        start local 2 // jdk.tools.jaotc.collect.FileSupport fileSupport
         2: .line 56
            new jdk.tools.jaotc.collect.ClassSearch
            dup
            invokespecial jdk.tools.jaotc.collect.ClassSearch.<init>:()V
            astore 3 /* lookup */
        start local 3 // jdk.tools.jaotc.collect.ClassSearch lookup
         3: .line 57
            aload 3 /* lookup */
            new jdk.tools.jaotc.collect.module.ModuleSourceProvider
            dup
            invokespecial jdk.tools.jaotc.collect.module.ModuleSourceProvider.<init>:()V
            invokevirtual jdk.tools.jaotc.collect.ClassSearch.addProvider:(Ljdk/tools/jaotc/collect/SourceProvider;)V
         4: .line 58
            aload 3 /* lookup */
            new jdk.tools.jaotc.collect.classname.ClassNameSourceProvider
            dup
            aload 2 /* fileSupport */
            invokespecial jdk.tools.jaotc.collect.classname.ClassNameSourceProvider.<init>:(Ljdk/tools/jaotc/collect/FileSupport;)V
            invokevirtual jdk.tools.jaotc.collect.ClassSearch.addProvider:(Ljdk/tools/jaotc/collect/SourceProvider;)V
         5: .line 59
            aload 3 /* lookup */
            new jdk.tools.jaotc.collect.jar.JarSourceProvider
            dup
            invokespecial jdk.tools.jaotc.collect.jar.JarSourceProvider.<init>:()V
            invokevirtual jdk.tools.jaotc.collect.ClassSearch.addProvider:(Ljdk/tools/jaotc/collect/SourceProvider;)V
         6: .line 60
            aload 3 /* lookup */
            new jdk.tools.jaotc.collect.directory.DirectorySourceProvider
            dup
            aload 2 /* fileSupport */
            invokespecial jdk.tools.jaotc.collect.directory.DirectorySourceProvider.<init>:(Ljdk/tools/jaotc/collect/FileSupport;)V
            invokevirtual jdk.tools.jaotc.collect.ClassSearch.addProvider:(Ljdk/tools/jaotc/collect/SourceProvider;)V
         7: .line 62
            aconst_null
            astore 4 /* foundClasses */
        start local 4 // java.util.List foundClasses
         8: .line 64
            aload 3 /* lookup */
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.options:Ljdk/tools/jaotc/Options;
            getfield jdk.tools.jaotc.Options.files:Ljava/util/List;
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.options:Ljdk/tools/jaotc/Options;
            getfield jdk.tools.jaotc.Options.searchPath:Ljdk/tools/jaotc/collect/SearchPath;
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jaotc/Collector;)Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  jdk/tools/jaotc/Collector.handleLoadingError(Ljava/lang/String;Ljava/lang/Throwable;)V (7)
                  (Ljava/lang/String;Ljava/lang/Throwable;)V
            invokevirtual jdk.tools.jaotc.collect.ClassSearch.search:(Ljava/util/List;Ljdk/tools/jaotc/collect/SearchPath;Ljava/util/function/BiConsumer;)Ljava/util/List;
            astore 4 /* foundClasses */
         9: .line 65
            goto 13
      StackMap locals: jdk.tools.jaotc.Collector java.util.Set jdk.tools.jaotc.collect.FileSupport jdk.tools.jaotc.collect.ClassSearch java.util.List
      StackMap stack: java.lang.InternalError
        10: astore 5 /* e */
        start local 5 // java.lang.InternalError e
        11: .line 66
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.printer:Ljdk/tools/jaotc/LogPrinter;
            aload 5 /* e */
            invokevirtual jdk.tools.jaotc.LogPrinter.reportError:(Ljava/lang/Throwable;)V
        12: .line 67
            aconst_null
            areturn
        end local 5 // java.lang.InternalError e
        13: .line 70
      StackMap locals:
      StackMap stack:
            aload 4 /* foundClasses */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: jdk.tools.jaotc.Collector java.util.Set jdk.tools.jaotc.collect.FileSupport jdk.tools.jaotc.collect.ClassSearch java.util.List top java.util.Iterator
      StackMap stack:
        14: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.tools.jaotc.LoadedClass
            astore 5 /* loadedClass */
        start local 5 // jdk.tools.jaotc.LoadedClass loadedClass
        15: .line 71
            aload 1 /* classesToCompile */
            aload 5 /* loadedClass */
            invokevirtual jdk.tools.jaotc.LoadedClass.getLoadedClass:()Ljava/lang/Class;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // jdk.tools.jaotc.LoadedClass loadedClass
        16: .line 70
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 73
            aload 1 /* classesToCompile */
            areturn
        end local 4 // java.util.List foundClasses
        end local 3 // jdk.tools.jaotc.collect.ClassSearch lookup
        end local 2 // jdk.tools.jaotc.collect.FileSupport fileSupport
        end local 1 // java.util.Set classesToCompile
        end local 0 // jdk.tools.jaotc.Collector this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Ljdk/tools/jaotc/Collector;
            1   18     1  classesToCompile  Ljava/util/Set<Ljava/lang/Class<*>;>;
            2   18     2       fileSupport  Ljdk/tools/jaotc/collect/FileSupport;
            3   18     3            lookup  Ljdk/tools/jaotc/collect/ClassSearch;
            8   18     4      foundClasses  Ljava/util/List<Ljdk/tools/jaotc/LoadedClass;>;
           11   13     5                 e  Ljava/lang/InternalError;
           15   16     5       loadedClass  Ljdk/tools/jaotc/LoadedClass;
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.InternalError
    Signature: ()Ljava/util/Set<Ljava/lang/Class<*>;>;

  private void addMethods(jdk.tools.jaotc.AOTCompiledClass, jdk.vm.ci.meta.ResolvedJavaMethod[], jdk.tools.jaotc.CompilationSpec);
    descriptor: (Ljdk/tools/jaotc/AOTCompiledClass;[Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/tools/jaotc/CompilationSpec;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // jdk.tools.jaotc.Collector this
        start local 1 // jdk.tools.jaotc.AOTCompiledClass aotClass
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod[] methods
        start local 3 // jdk.tools.jaotc.CompilationSpec compilationRestrictions
         0: .line 77
            aload 2 /* methods */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 4
      StackMap locals: jdk.tools.jaotc.Collector jdk.tools.jaotc.AOTCompiledClass jdk.vm.ci.meta.ResolvedJavaMethod[] jdk.tools.jaotc.CompilationSpec top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
      StackMap stack:
         1: aload 7
            iload 5
            aaload
            astore 4 /* m */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod m
         2: .line 78
            aload 0 /* this */
            aload 1 /* aotClass */
            aload 4 /* m */
            aload 3 /* compilationRestrictions */
            invokevirtual jdk.tools.jaotc.Collector.addMethod:(Ljdk/tools/jaotc/AOTCompiledClass;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/tools/jaotc/CompilationSpec;)V
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod m
         3: .line 77
            iinc 5 1
      StackMap locals:
      StackMap stack:
         4: iload 5
            iload 6
            if_icmplt 1
         5: .line 80
            return
        end local 3 // jdk.tools.jaotc.CompilationSpec compilationRestrictions
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod[] methods
        end local 1 // jdk.tools.jaotc.AOTCompiledClass aotClass
        end local 0 // jdk.tools.jaotc.Collector this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    6     0                     this  Ljdk/tools/jaotc/Collector;
            0    6     1                 aotClass  Ljdk/tools/jaotc/AOTCompiledClass;
            0    6     2                  methods  [Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    6     3  compilationRestrictions  Ljdk/tools/jaotc/CompilationSpec;
            2    3     4                        m  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
                         Name  Flags
      aotClass                 
      methods                  
      compilationRestrictions  

  private void addMethod(jdk.tools.jaotc.AOTCompiledClass, jdk.vm.ci.meta.ResolvedJavaMethod, jdk.tools.jaotc.CompilationSpec);
    descriptor: (Ljdk/tools/jaotc/AOTCompiledClass;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/tools/jaotc/CompilationSpec;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // jdk.tools.jaotc.Collector this
        start local 1 // jdk.tools.jaotc.AOTCompiledClass aotClass
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        start local 3 // jdk.tools.jaotc.CompilationSpec compilationRestrictions
         0: .line 84
            aload 2 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.hasBytecodes:()Z
            ifne 2
         1: .line 85
            return
         2: .line 87
      StackMap locals:
      StackMap stack:
            aload 3 /* compilationRestrictions */
            aload 2 /* method */
            invokevirtual jdk.tools.jaotc.CompilationSpec.shouldCompileMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifne 4
         3: .line 88
            return
         4: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.filters:Ljdk/tools/jaotc/GraalFilters;
            aload 2 /* method */
            invokevirtual jdk.tools.jaotc.GraalFilters.shouldCompileMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            ifne 6
         5: .line 91
            return
         6: .line 94
      StackMap locals:
      StackMap stack:
            aload 1 /* aotClass */
            aload 2 /* method */
            invokevirtual jdk.tools.jaotc.AOTCompiledClass.addMethod:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
         7: .line 95
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.printer:Ljdk/tools/jaotc/LogPrinter;
            new java.lang.StringBuilder
            dup
            ldc "  added "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
            invokeinterface jdk.vm.ci.meta.Signature.toMethodDescriptor:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.tools.jaotc.LogPrinter.printlnVerbose:(Ljava/lang/String;)V
         8: .line 96
            return
        end local 3 // jdk.tools.jaotc.CompilationSpec compilationRestrictions
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 1 // jdk.tools.jaotc.AOTCompiledClass aotClass
        end local 0 // jdk.tools.jaotc.Collector this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    9     0                     this  Ljdk/tools/jaotc/Collector;
            0    9     1                 aotClass  Ljdk/tools/jaotc/AOTCompiledClass;
            0    9     2                   method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    9     3  compilationRestrictions  Ljdk/tools/jaotc/CompilationSpec;
    MethodParameters:
                         Name  Flags
      aotClass                 
      method                   
      compilationRestrictions  

  java.util.List<jdk.tools.jaotc.AOTCompiledClass> collectMethodsToCompile(java.util.Set<java.lang.Class<?>>, jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Ljava/util/Set;Ljdk/vm/ci/meta/MetaAccessProvider;)Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // jdk.tools.jaotc.Collector this
        start local 1 // java.util.Set classesToCompile
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 104
            iconst_0
            istore 3 /* total */
        start local 3 // int total
         1: .line 105
            iconst_0
            istore 4 /* count */
        start local 4 // int count
         2: .line 106
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* classes */
        start local 5 // java.util.List classes
         3: .line 107
            aload 0 /* this */
            invokevirtual jdk.tools.jaotc.Collector.collectSpecifiedMethods:()Ljdk/tools/jaotc/CompilationSpec;
            astore 6 /* compilationRestrictions */
        start local 6 // jdk.tools.jaotc.CompilationSpec compilationRestrictions
         4: .line 109
            aload 1 /* classesToCompile */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 32
      StackMap locals: jdk.tools.jaotc.Collector java.util.Set jdk.vm.ci.meta.MetaAccessProvider int int java.util.List jdk.tools.jaotc.CompilationSpec top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 7 /* c */
        start local 7 // java.lang.Class c
         6: .line 110
            aload 2 /* metaAccess */
            aload 7 /* c */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 9 /* resolvedJavaType */
        start local 9 // jdk.vm.ci.meta.ResolvedJavaType resolvedJavaType
         7: .line 111
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.filters:Ljdk/tools/jaotc/GraalFilters;
            aload 9 /* resolvedJavaType */
            invokevirtual jdk.tools.jaotc.GraalFilters.shouldCompileAnyMethodInClass:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 32
         8: .line 112
            new jdk.tools.jaotc.AOTCompiledClass
            dup
            aload 9 /* resolvedJavaType */
            invokespecial jdk.tools.jaotc.AOTCompiledClass.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;)V
            astore 10 /* aotClass */
        start local 10 // jdk.tools.jaotc.AOTCompiledClass aotClass
         9: .line 113
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.printer:Ljdk/tools/jaotc/LogPrinter;
            new java.lang.StringBuilder
            dup
            ldc " Scanning "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.tools.jaotc.LogPrinter.printlnVerbose:(Ljava/lang/String;)V
        10: .line 117
            aload 9 /* resolvedJavaType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredConstructors:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 11 /* ctors */
        start local 11 // jdk.vm.ci.meta.ResolvedJavaMethod[] ctors
        11: .line 118
            aload 0 /* this */
            aload 10 /* aotClass */
            aload 11 /* ctors */
            aload 6 /* compilationRestrictions */
            invokevirtual jdk.tools.jaotc.Collector.addMethods:(Ljdk/tools/jaotc/AOTCompiledClass;[Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/tools/jaotc/CompilationSpec;)V
        12: .line 119
            iload 3 /* total */
            aload 11 /* ctors */
            arraylength
            iadd
            istore 3 /* total */
        end local 11 // jdk.vm.ci.meta.ResolvedJavaMethod[] ctors
        13: .line 120
            goto 16
      StackMap locals: jdk.tools.jaotc.Collector java.util.Set jdk.vm.ci.meta.MetaAccessProvider int int java.util.List jdk.tools.jaotc.CompilationSpec java.lang.Class java.util.Iterator jdk.vm.ci.meta.ResolvedJavaType jdk.tools.jaotc.AOTCompiledClass
      StackMap stack: java.lang.Throwable
        14: astore 11 /* e */
        start local 11 // java.lang.Throwable e
        15: .line 121
            aload 0 /* this */
            aload 7 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 11 /* e */
            invokevirtual jdk.tools.jaotc.Collector.handleLoadingError:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 11 // java.lang.Throwable e
        16: .line 126
      StackMap locals:
      StackMap stack:
            aload 9 /* resolvedJavaType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredMethods:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 11 /* methods */
        start local 11 // jdk.vm.ci.meta.ResolvedJavaMethod[] methods
        17: .line 127
            aload 0 /* this */
            aload 10 /* aotClass */
            aload 11 /* methods */
            aload 6 /* compilationRestrictions */
            invokevirtual jdk.tools.jaotc.Collector.addMethods:(Ljdk/tools/jaotc/AOTCompiledClass;[Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/tools/jaotc/CompilationSpec;)V
        18: .line 128
            iload 3 /* total */
            aload 11 /* methods */
            arraylength
            iadd
            istore 3 /* total */
        end local 11 // jdk.vm.ci.meta.ResolvedJavaMethod[] methods
        19: .line 129
            goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 11 /* e */
        start local 11 // java.lang.Throwable e
        21: .line 130
            aload 0 /* this */
            aload 7 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 11 /* e */
            invokevirtual jdk.tools.jaotc.Collector.handleLoadingError:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 11 // java.lang.Throwable e
        22: .line 135
      StackMap locals:
      StackMap stack:
            aload 9 /* resolvedJavaType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getClassInitializer:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 11 /* clinit */
        start local 11 // jdk.vm.ci.meta.ResolvedJavaMethod clinit
        23: .line 136
            aload 11 /* clinit */
            ifnull 29
        24: .line 137
            aload 0 /* this */
            aload 10 /* aotClass */
            aload 11 /* clinit */
            aload 6 /* compilationRestrictions */
            invokevirtual jdk.tools.jaotc.Collector.addMethod:(Ljdk/tools/jaotc/AOTCompiledClass;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/tools/jaotc/CompilationSpec;)V
        25: .line 138
            iinc 3 /* total */ 1
        end local 11 // jdk.vm.ci.meta.ResolvedJavaMethod clinit
        26: .line 140
            goto 29
      StackMap locals:
      StackMap stack: java.lang.Throwable
        27: astore 11 /* e */
        start local 11 // java.lang.Throwable e
        28: .line 141
            aload 0 /* this */
            aload 7 /* c */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 11 /* e */
            invokevirtual jdk.tools.jaotc.Collector.handleLoadingError:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 11 // java.lang.Throwable e
        29: .line 145
      StackMap locals:
      StackMap stack:
            aload 10 /* aotClass */
            invokevirtual jdk.tools.jaotc.AOTCompiledClass.hasMethods:()Z
            ifeq 32
        30: .line 146
            aload 5 /* classes */
            aload 10 /* aotClass */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        31: .line 147
            iload 4 /* count */
            aload 10 /* aotClass */
            invokevirtual jdk.tools.jaotc.AOTCompiledClass.getMethodCount:()I
            iadd
            istore 4 /* count */
        end local 10 // jdk.tools.jaotc.AOTCompiledClass aotClass
        end local 9 // jdk.vm.ci.meta.ResolvedJavaType resolvedJavaType
        end local 7 // java.lang.Class c
        32: .line 109
      StackMap locals: jdk.tools.jaotc.Collector java.util.Set jdk.vm.ci.meta.MetaAccessProvider int int java.util.List jdk.tools.jaotc.CompilationSpec top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        33: .line 151
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.printer:Ljdk/tools/jaotc/LogPrinter;
            new java.lang.StringBuilder
            dup
            iload 3 /* total */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " methods total, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* count */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " methods to compile"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.tools.jaotc.LogPrinter.printInfo:(Ljava/lang/String;)V
        34: .line 152
            aload 5 /* classes */
            areturn
        end local 6 // jdk.tools.jaotc.CompilationSpec compilationRestrictions
        end local 5 // java.util.List classes
        end local 4 // int count
        end local 3 // int total
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 1 // java.util.Set classesToCompile
        end local 0 // jdk.tools.jaotc.Collector this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   35     0                     this  Ljdk/tools/jaotc/Collector;
            0   35     1         classesToCompile  Ljava/util/Set<Ljava/lang/Class<*>;>;
            0   35     2               metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            1   35     3                    total  I
            2   35     4                    count  I
            3   35     5                  classes  Ljava/util/List<Ljdk/tools/jaotc/AOTCompiledClass;>;
            4   35     6  compilationRestrictions  Ljdk/tools/jaotc/CompilationSpec;
            6   32     7                        c  Ljava/lang/Class<*>;
            7   32     9         resolvedJavaType  Ljdk/vm/ci/meta/ResolvedJavaType;
            9   32    10                 aotClass  Ljdk/tools/jaotc/AOTCompiledClass;
           11   13    11                    ctors  [Ljdk/vm/ci/meta/ResolvedJavaMethod;
           15   16    11                        e  Ljava/lang/Throwable;
           17   19    11                  methods  [Ljdk/vm/ci/meta/ResolvedJavaMethod;
           21   22    11                        e  Ljava/lang/Throwable;
           23   26    11                   clinit  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           28   29    11                        e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          10    13      14  Class java.lang.Throwable
          16    19      20  Class java.lang.Throwable
          22    26      27  Class java.lang.Throwable
    Signature: (Ljava/util/Set<Ljava/lang/Class<*>;>;Ljdk/vm/ci/meta/MetaAccessProvider;)Ljava/util/List<Ljdk/tools/jaotc/AOTCompiledClass;>;
    MethodParameters:
                  Name  Flags
      classesToCompile  
      metaAccess        

  private jdk.tools.jaotc.CompilationSpec collectSpecifiedMethods();
    descriptor: ()Ljdk/tools/jaotc/CompilationSpec;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=1
        start local 0 // jdk.tools.jaotc.Collector this
         0: .line 160
            new jdk.tools.jaotc.CompilationSpec
            dup
            invokespecial jdk.tools.jaotc.CompilationSpec.<init>:()V
            astore 1 /* compilationRestrictions */
        start local 1 // jdk.tools.jaotc.CompilationSpec compilationRestrictions
         1: .line 161
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.options:Ljdk/tools/jaotc/Options;
            getfield jdk.tools.jaotc.Options.methodList:Ljava/lang/String;
            astore 2 /* methodListFileName */
        start local 2 // java.lang.String methodListFileName
         2: .line 163
            aload 2 /* methodListFileName */
            ifnull 31
            aload 2 /* methodListFileName */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
         3: .line 165
            new java.io.FileReader
            dup
            aload 2 /* methodListFileName */
            invokespecial java.io.FileReader.<init>:(Ljava/lang/String;)V
            astore 3 /* methListFile */
        start local 3 // java.io.FileReader methListFile
         4: .line 166
            new java.io.BufferedReader
            dup
            aload 3 /* methListFile */
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 4 /* readBuf */
        start local 4 // java.io.BufferedReader readBuf
         5: .line 167
            aconst_null
            astore 5 /* line */
        start local 5 // java.lang.String line
         6: .line 168
            goto 24
         7: .line 169
      StackMap locals: jdk.tools.jaotc.Collector jdk.tools.jaotc.CompilationSpec java.lang.String java.io.FileReader java.io.BufferedReader java.lang.String
      StackMap stack:
            aload 5 /* line */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 6 /* trimmedLine */
        start local 6 // java.lang.String trimmedLine
         8: .line 170
            aload 6 /* trimmedLine */
            ldc "#"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 24
         9: .line 171
            aload 6 /* trimmedLine */
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 7 /* components */
        start local 7 // java.lang.String[] components
        10: .line 172
            aload 7 /* components */
            arraylength
            iconst_2
            if_icmpne 22
        11: .line 173
            aload 7 /* components */
            iconst_0
            aaload
            astore 8 /* directive */
        start local 8 // java.lang.String directive
        12: .line 174
            aload 7 /* components */
            iconst_1
            aaload
            astore 9 /* pattern */
        start local 9 // java.lang.String pattern
        13: .line 175
            aload 8 /* directive */
            dup
            astore 10
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
          -2074174337: 14
          -1321148966: 15
              default: 20
          }
      StackMap locals: jdk.tools.jaotc.Collector jdk.tools.jaotc.CompilationSpec java.lang.String java.io.FileReader java.io.BufferedReader java.lang.String java.lang.String java.lang.String[] java.lang.String java.lang.String java.lang.String
      StackMap stack:
        14: aload 10
            ldc "compileOnly"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 20
      StackMap locals:
      StackMap stack:
        15: aload 10
            ldc "exclude"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            goto 20
        16: .line 177
      StackMap locals:
      StackMap stack:
            aload 1 /* compilationRestrictions */
            aload 9 /* pattern */
            invokevirtual jdk.tools.jaotc.CompilationSpec.addCompileOnlyPattern:(Ljava/lang/String;)V
        17: .line 178
            goto 24
        18: .line 180
      StackMap locals:
      StackMap stack:
            aload 1 /* compilationRestrictions */
            aload 9 /* pattern */
            invokevirtual jdk.tools.jaotc.CompilationSpec.addExcludePattern:(Ljava/lang/String;)V
        19: .line 181
            goto 24
        20: .line 183
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized command "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* directive */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". Ignoring\n\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* line */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n encountered in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* methodListFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 9 // java.lang.String pattern
        end local 8 // java.lang.String directive
        21: .line 185
            goto 24
        22: .line 186
      StackMap locals:
      StackMap stack:
            aload 6 /* trimmedLine */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
        23: .line 187
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Ignoring malformed line:\n\t "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* line */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 7 // java.lang.String[] components
        end local 6 // java.lang.String trimmedLine
        24: .line 168
      StackMap locals:
      StackMap stack:
            aload 4 /* readBuf */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            dup
            astore 5 /* line */
            ifnonnull 7
        25: .line 192
            aload 4 /* readBuf */
            invokevirtual java.io.BufferedReader.close:()V
        end local 5 // java.lang.String line
        end local 4 // java.io.BufferedReader readBuf
        end local 3 // java.io.FileReader methListFile
        26: .line 193
            goto 31
      StackMap locals: jdk.tools.jaotc.Collector jdk.tools.jaotc.CompilationSpec java.lang.String
      StackMap stack: java.io.FileNotFoundException
        27: astore 3 /* e */
        start local 3 // java.io.FileNotFoundException e
        28: .line 194
            new java.lang.InternalError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to open method list file: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* methodListFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.FileNotFoundException e
        29: .line 195
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        30: .line 196
            new java.lang.InternalError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to read method list file: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* methodListFileName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException e
        31: .line 200
      StackMap locals:
      StackMap stack:
            aload 1 /* compilationRestrictions */
            areturn
        end local 2 // java.lang.String methodListFileName
        end local 1 // jdk.tools.jaotc.CompilationSpec compilationRestrictions
        end local 0 // jdk.tools.jaotc.Collector this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   32     0                     this  Ljdk/tools/jaotc/Collector;
            1   32     1  compilationRestrictions  Ljdk/tools/jaotc/CompilationSpec;
            2   32     2       methodListFileName  Ljava/lang/String;
            4   26     3             methListFile  Ljava/io/FileReader;
            5   26     4                  readBuf  Ljava/io/BufferedReader;
            6   26     5                     line  Ljava/lang/String;
            8   24     6              trimmedLine  Ljava/lang/String;
           10   24     7               components  [Ljava/lang/String;
           12   21     8                directive  Ljava/lang/String;
           13   21     9                  pattern  Ljava/lang/String;
           28   29     3                        e  Ljava/io/FileNotFoundException;
           30   31     3                        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3    26      27  Class java.io.FileNotFoundException
           3    26      29  Class java.io.IOException

  private void handleLoadingError(java.lang.String, java.lang.Throwable);
    descriptor: (Ljava/lang/String;Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.tools.jaotc.Collector this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Throwable t
         0: .line 204
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.options:Ljdk/tools/jaotc/Options;
            getfield jdk.tools.jaotc.Options.ignoreClassLoadingErrors:Z
            ifeq 3
         1: .line 205
            aload 0 /* this */
            getfield jdk.tools.jaotc.Collector.main:Ljdk/tools/jaotc/Main;
            getfield jdk.tools.jaotc.Main.printer:Ljdk/tools/jaotc/LogPrinter;
            new java.lang.StringBuilder
            dup
            aload 1 /* name */
            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 2 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.tools.jaotc.LogPrinter.printError:(Ljava/lang/String;)V
         2: .line 206
            goto 4
         3: .line 207
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            aload 2 /* t */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
         4: .line 209
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.String name
        end local 0 // jdk.tools.jaotc.Collector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/tools/jaotc/Collector;
            0    5     1  name  Ljava/lang/String;
            0    5     2     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      name  
      t     
}
SourceFile: "Collector.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles