public class org.eclipse.jdt.internal.compiler.batch.ModuleFinder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.compiler.batch.ModuleFinder
  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 // org.eclipse.jdt.internal.compiler.batch.ModuleFinder this
         0: .line 39
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.eclipse.jdt.internal.compiler.batch.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/batch/ModuleFinder;

  public static java.util.List<org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath> findModules(java.io.File, java.lang.String, org.eclipse.jdt.internal.compiler.parser.Parser, java.util.Map<java.lang.String, java.lang.String>, boolean, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/parser/Parser;Ljava/util/Map;ZLjava/lang/String;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=7, args_size=6
        start local 0 // java.io.File f
        start local 1 // java.lang.String destinationPath
        start local 2 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        start local 3 // java.util.Map options
        start local 4 // boolean isModulepath
        start local 5 // java.lang.String release
         0: .line 42
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* collector */
        start local 6 // java.util.List collector
         1: .line 43
            aload 1 /* destinationPath */
            aload 2 /* parser */
            aload 3 /* options */
            iload 4 /* isModulepath */
            iconst_0
            aload 6 /* collector */
            aload 0 /* f */
            aload 5 /* release */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.scanForModules:(Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/parser/Parser;Ljava/util/Map;ZZLjava/util/List;Ljava/io/File;Ljava/lang/String;)V
         2: .line 44
            aload 6 /* collector */
            areturn
        end local 6 // java.util.List collector
        end local 5 // java.lang.String release
        end local 4 // boolean isModulepath
        end local 3 // java.util.Map options
        end local 2 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        end local 1 // java.lang.String destinationPath
        end local 0 // java.io.File f
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0                f  Ljava/io/File;
            0    3     1  destinationPath  Ljava/lang/String;
            0    3     2           parser  Lorg/eclipse/jdt/internal/compiler/parser/Parser;
            0    3     3          options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0    3     4     isModulepath  Z
            0    3     5          release  Ljava/lang/String;
            1    3     6        collector  Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;
    Signature: (Ljava/io/File;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/parser/Parser;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;ZLjava/lang/String;)Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;
    MethodParameters:
                 Name  Flags
      f                
      destinationPath  
      parser           
      options          
      isModulepath     
      release          

  protected static org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath findModule(java.io.File, java.lang.String, org.eclipse.jdt.internal.compiler.parser.Parser, java.util.Map<java.lang.String, java.lang.String>, boolean, java.lang.String);
    descriptor: (Ljava/io/File;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/parser/Parser;Ljava/util/Map;ZLjava/lang/String;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // java.io.File file
        start local 1 // java.lang.String destinationPath
        start local 2 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        start local 3 // java.util.Map options
        start local 4 // boolean isModulepath
        start local 5 // java.lang.String release
         0: .line 49
            aload 0 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aconst_null
            iload 4 /* isModulepath */
            ifeq 1
            iconst_0
            goto 2
      StackMap locals: java.io.File java.lang.String org.eclipse.jdt.internal.compiler.parser.Parser java.util.Map int java.lang.String
      StackMap stack: java.lang.String null
         1: iconst_1
      StackMap locals: java.io.File java.lang.String org.eclipse.jdt.internal.compiler.parser.Parser java.util.Map int java.lang.String
      StackMap stack: java.lang.String null int
         2: aconst_null
         3: .line 50
            aload 1 /* destinationPath */
            ifnonnull 4
            aconst_null
            goto 5
      StackMap locals: java.io.File java.lang.String org.eclipse.jdt.internal.compiler.parser.Parser java.util.Map int java.lang.String
      StackMap stack: java.lang.String null int null
         4: new java.lang.StringBuilder
            dup
            aload 1 /* destinationPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: java.io.File java.lang.String org.eclipse.jdt.internal.compiler.parser.Parser java.util.Map int java.lang.String
      StackMap stack: java.lang.String null int null java.lang.String
         5: aload 3 /* options */
            aload 5 /* release */
         6: .line 49
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.getClasspath:(Ljava/lang/String;Ljava/lang/String;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            astore 6 /* modulePath */
        start local 6 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath modulePath
         7: .line 51
            aload 6 /* modulePath */
            ifnull 9
         8: .line 52
            aload 6 /* modulePath */
            aload 0 /* file */
            aload 2 /* parser */
            iload 4 /* isModulepath */
            aload 5 /* release */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.scanForModule:(Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;Ljava/io/File;Lorg/eclipse/jdt/internal/compiler/parser/Parser;ZLjava/lang/String;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            pop
         9: .line 54
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
      StackMap stack:
            aload 6 /* modulePath */
            areturn
        end local 6 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath modulePath
        end local 5 // java.lang.String release
        end local 4 // boolean isModulepath
        end local 3 // java.util.Map options
        end local 2 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        end local 1 // java.lang.String destinationPath
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0             file  Ljava/io/File;
            0   10     1  destinationPath  Ljava/lang/String;
            0   10     2           parser  Lorg/eclipse/jdt/internal/compiler/parser/Parser;
            0   10     3          options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   10     4     isModulepath  Z
            0   10     5          release  Ljava/lang/String;
            7   10     6       modulePath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    Signature: (Ljava/io/File;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/parser/Parser;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;ZLjava/lang/String;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    MethodParameters:
                 Name  Flags
      file             final
      destinationPath  
      parser           
      options          
      isModulepath     
      release          

  protected static void scanForModules(java.lang.String, org.eclipse.jdt.internal.compiler.parser.Parser, java.util.Map<java.lang.String, java.lang.String>, boolean, boolean, java.util.List<org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath>, java.io.File, java.lang.String);
    descriptor: (Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/parser/Parser;Ljava/util/Map;ZZLjava/util/List;Ljava/io/File;Ljava/lang/String;)V
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=8, locals=15, args_size=8
        start local 0 // java.lang.String destinationPath
        start local 1 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        start local 2 // java.util.Map options
        start local 3 // boolean isModulepath
        start local 4 // boolean thisAnAutomodule
        start local 5 // java.util.List collector
        start local 6 // java.io.File file
        start local 7 // java.lang.String release
         0: .line 59
            aload 6 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
         1: .line 60
            aconst_null
         2: .line 61
            iload 3 /* isModulepath */
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: java.lang.String org.eclipse.jdt.internal.compiler.parser.Parser java.util.Map int int java.util.List java.io.File java.lang.String
      StackMap stack: java.lang.String null
         3: iconst_1
         4: .line 62
      StackMap locals: java.lang.String org.eclipse.jdt.internal.compiler.parser.Parser java.util.Map int int java.util.List java.io.File java.lang.String
      StackMap stack: java.lang.String null int
            aconst_null
         5: .line 63
            aload 0 /* destinationPath */
            ifnonnull 6
            aconst_null
            goto 7
      StackMap locals: java.lang.String org.eclipse.jdt.internal.compiler.parser.Parser java.util.Map int int java.util.List java.io.File java.lang.String
      StackMap stack: java.lang.String null int null
         6: new java.lang.StringBuilder
            dup
            aload 0 /* destinationPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.separator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 64
      StackMap locals: java.lang.String org.eclipse.jdt.internal.compiler.parser.Parser java.util.Map int int java.util.List java.io.File java.lang.String
      StackMap stack: java.lang.String null int null java.lang.String
            aload 2 /* options */
         8: .line 65
            aload 7 /* release */
         9: .line 58
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.getClasspath:(Ljava/lang/String;Ljava/lang/String;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            astore 8 /* entry */
        start local 8 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath entry
        10: .line 66
            aload 8 /* entry */
            ifnull 22
        11: .line 67
            aload 8 /* entry */
            aload 6 /* file */
            aload 1 /* parser */
            iload 4 /* thisAnAutomodule */
            aload 7 /* release */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.scanForModule:(Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;Ljava/io/File;Lorg/eclipse/jdt/internal/compiler/parser/Parser;ZLjava/lang/String;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            astore 9 /* module */
        start local 9 // org.eclipse.jdt.internal.compiler.env.IModule module
        12: .line 68
            aload 9 /* module */
            ifnull 15
        13: .line 69
            aload 5 /* collector */
            aload 8 /* entry */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 70
            goto 22
        15: .line 71
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath org.eclipse.jdt.internal.compiler.env.IModule
      StackMap stack:
            aload 6 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 22
        16: .line 72
            aload 6 /* file */
            invokevirtual java.io.File.listFiles:()[Ljava/io/File;
            astore 10 /* files */
        start local 10 // java.io.File[] files
        17: .line 73
            aload 10 /* files */
            dup
            astore 14
            arraylength
            istore 13
            iconst_0
            istore 12
            goto 21
      StackMap locals: java.lang.String org.eclipse.jdt.internal.compiler.parser.Parser java.util.Map int int java.util.List java.io.File java.lang.String org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath org.eclipse.jdt.internal.compiler.env.IModule java.io.File[] top int int java.io.File[]
      StackMap stack:
        18: aload 14
            iload 12
            aaload
            astore 11 /* f */
        start local 11 // java.io.File f
        19: .line 74
            aload 0 /* destinationPath */
            aload 1 /* parser */
            aload 2 /* options */
            iload 3 /* isModulepath */
            iload 3 /* isModulepath */
            aload 5 /* collector */
            aload 11 /* f */
            aload 7 /* release */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.scanForModules:(Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/parser/Parser;Ljava/util/Map;ZZLjava/util/List;Ljava/io/File;Ljava/lang/String;)V
        end local 11 // java.io.File f
        20: .line 73
            iinc 12 1
      StackMap locals:
      StackMap stack:
        21: iload 12
            iload 13
            if_icmplt 18
        end local 10 // java.io.File[] files
        end local 9 // org.eclipse.jdt.internal.compiler.env.IModule module
        22: .line 79
      StackMap locals: java.lang.String org.eclipse.jdt.internal.compiler.parser.Parser java.util.Map int int java.util.List java.io.File java.lang.String org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
      StackMap stack:
            return
        end local 8 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath entry
        end local 7 // java.lang.String release
        end local 6 // java.io.File file
        end local 5 // java.util.List collector
        end local 4 // boolean thisAnAutomodule
        end local 3 // boolean isModulepath
        end local 2 // java.util.Map options
        end local 1 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        end local 0 // java.lang.String destinationPath
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   23     0   destinationPath  Ljava/lang/String;
            0   23     1            parser  Lorg/eclipse/jdt/internal/compiler/parser/Parser;
            0   23     2           options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   23     3      isModulepath  Z
            0   23     4  thisAnAutomodule  Z
            0   23     5         collector  Ljava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;
            0   23     6              file  Ljava/io/File;
            0   23     7           release  Ljava/lang/String;
           10   23     8             entry  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           12   22     9            module  Lorg/eclipse/jdt/internal/compiler/env/IModule;
           17   22    10             files  [Ljava/io/File;
           19   20    11                 f  Ljava/io/File;
    Signature: (Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/parser/Parser;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;ZZLjava/util/List<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;Ljava/io/File;Ljava/lang/String;)V
    MethodParameters:
                  Name  Flags
      destinationPath   
      parser            
      options           
      isModulepath      
      thisAnAutomodule  
      collector         
      file              final
      release           

  protected static org.eclipse.jdt.internal.compiler.env.IModule scanForModule(org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath, java.io.File, org.eclipse.jdt.internal.compiler.parser.Parser, boolean, java.lang.String);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;Ljava/io/File;Lorg/eclipse/jdt/internal/compiler/parser/Parser;ZLjava/lang/String;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath modulePath
        start local 1 // java.io.File file
        start local 2 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        start local 3 // boolean considerAutoModules
        start local 4 // java.lang.String release
         0: .line 81
            aconst_null
            astore 5 /* module */
        start local 5 // org.eclipse.jdt.internal.compiler.env.IModule module
         1: .line 82
            aload 1 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 17
         2: .line 83
            aload 1 /* file */
            new org.eclipse.jdt.internal.compiler.batch.ModuleFinder$1
            dup
            aload 1 /* file */
            invokespecial org.eclipse.jdt.internal.compiler.batch.ModuleFinder$1.<init>:(Ljava/io/File;)V
            invokevirtual java.io.File.list:(Ljava/io/FilenameFilter;)[Ljava/lang/String;
            astore 6 /* list */
        start local 6 // java.lang.String[] list
         3: .line 93
            aload 6 /* list */
            arraylength
            ifle 20
         4: .line 94
            aload 6 /* list */
            iconst_0
            aaload
            astore 7 /* fileName */
        start local 7 // java.lang.String fileName
         5: .line 95
            aload 7 /* fileName */
            dup
            astore 8
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
           -563279303: 6
           1921690945: 7
              default: 16
          }
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.io.File org.eclipse.jdt.internal.compiler.parser.Parser int java.lang.String org.eclipse.jdt.internal.compiler.env.IModule java.lang.String[] java.lang.String java.lang.String
      StackMap stack:
         6: aload 8
            ldc "module-info.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 20
      StackMap locals:
      StackMap stack:
         7: aload 8
            ldc "module-info.java"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 20
         8: .line 97
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* file */
            aload 7 /* fileName */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            aload 0 /* modulePath */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.extractModuleFromClass:(Ljava/io/File;Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            astore 5 /* module */
         9: .line 98
            goto 20
        10: .line 100
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* file */
            aload 7 /* fileName */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            aload 2 /* parser */
            aload 0 /* modulePath */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.extractModuleFromSource:(Ljava/io/File;Lorg/eclipse/jdt/internal/compiler/parser/Parser;Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            astore 5 /* module */
        11: .line 101
            aload 5 /* module */
            ifnonnull 13
        12: .line 102
            aconst_null
            areturn
        13: .line 103
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
            aload 5 /* module */
            invokeinterface org.eclipse.jdt.internal.compiler.env.IModule.name:()[C
            invokespecial java.lang.String.<init>:([C)V
            astore 9 /* modName */
        start local 9 // java.lang.String modName
        14: .line 104
            aload 9 /* modName */
            aload 1 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
        15: .line 105
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "module name "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* modName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " does not match expected name "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.String modName
        end local 7 // java.lang.String fileName
        end local 6 // java.lang.String[] list
        16: .line 110
      StackMap locals:
      StackMap stack:
            goto 20
        17: .line 111
      StackMap locals:
      StackMap stack:
            aload 1 /* file */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.getModulePathForArchive:(Ljava/io/File;)Ljava/lang/String;
            astore 6 /* moduleDescPath */
        start local 6 // java.lang.String moduleDescPath
        18: .line 112
            aload 6 /* moduleDescPath */
            ifnull 20
        19: .line 113
            aload 1 /* file */
            aload 0 /* modulePath */
            aload 6 /* moduleDescPath */
            aload 4 /* release */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.extractModuleFromArchive:(Ljava/io/File;Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            astore 5 /* module */
        end local 6 // java.lang.String moduleDescPath
        20: .line 116
      StackMap locals:
      StackMap stack:
            iload 3 /* considerAutoModules */
            ifeq 22
            aload 5 /* module */
            ifnonnull 22
            aload 0 /* modulePath */
            instanceof org.eclipse.jdt.internal.compiler.batch.ClasspathJrt
            ifne 22
        21: .line 117
            aload 1 /* file */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.getFileName:(Ljava/io/File;)Ljava/lang/String;
            aload 1 /* file */
            invokevirtual java.io.File.isFile:()Z
            aload 1 /* file */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.getManifest:(Ljava/io/File;)Ljava/util/jar/Manifest;
            invokestatic org.eclipse.jdt.internal.compiler.env.IModule.createAutomatic:(Ljava/lang/String;ZLjava/util/jar/Manifest;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            astore 5 /* module */
        22: .line 119
      StackMap locals:
      StackMap stack:
            aload 5 /* module */
            ifnull 24
        23: .line 120
            aload 0 /* modulePath */
            aload 5 /* module */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.acceptModule:(Lorg/eclipse/jdt/internal/compiler/env/IModule;)V
        24: .line 121
      StackMap locals:
      StackMap stack:
            aload 5 /* module */
            areturn
        end local 5 // org.eclipse.jdt.internal.compiler.env.IModule module
        end local 4 // java.lang.String release
        end local 3 // boolean considerAutoModules
        end local 2 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        end local 1 // java.io.File file
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath modulePath
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   25     0           modulePath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            0   25     1                 file  Ljava/io/File;
            0   25     2               parser  Lorg/eclipse/jdt/internal/compiler/parser/Parser;
            0   25     3  considerAutoModules  Z
            0   25     4              release  Ljava/lang/String;
            1   25     5               module  Lorg/eclipse/jdt/internal/compiler/env/IModule;
            3   16     6                 list  [Ljava/lang/String;
            5   16     7             fileName  Ljava/lang/String;
           14   16     9              modName  Ljava/lang/String;
           18   20     6       moduleDescPath  Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      modulePath           
      file                 final
      parser               
      considerAutoModules  
      release              

  private static java.util.jar.Manifest getManifest(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/util/jar/Manifest;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.io.File file
         0: .line 124
            aload 0 /* file */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.getModulePathForArchive:(Ljava/io/File;)Ljava/lang/String;
            ifnonnull 2
         1: .line 125
            aconst_null
            areturn
         2: .line 126
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1
            aconst_null
            astore 2
         3: new java.util.jar.JarFile
            dup
            aload 0 /* file */
            invokespecial java.util.jar.JarFile.<init>:(Ljava/io/File;)V
            astore 3 /* jar */
        start local 3 // java.util.jar.JarFile jar
         4: .line 127
            aload 3 /* jar */
            invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
         5: .line 128
            aload 3 /* jar */
            ifnull 6
            aload 3 /* jar */
            invokevirtual java.util.jar.JarFile.close:()V
         6: .line 127
      StackMap locals: java.io.File java.lang.Throwable java.lang.Throwable java.util.jar.JarFile
      StackMap stack: java.util.jar.Manifest
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 1
         8: .line 128
            aload 3 /* jar */
            ifnull 9
            aload 3 /* jar */
            invokevirtual java.util.jar.JarFile.close:()V
        end local 3 // java.util.jar.JarFile jar
      StackMap locals:
      StackMap stack:
         9: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 2
            aload 1
            ifnonnull 11
            aload 2
            astore 1
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 1
            aload 2
            if_acmpeq 12
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 1
            athrow
      StackMap locals: java.io.File
      StackMap stack: java.io.IOException
        13: pop
        14: .line 129
            aconst_null
            areturn
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  file  Ljava/io/File;
            4    9     3   jar  Ljava/util/jar/JarFile;
      Exception table:
        from    to  target  type
           4     5       7  any
           3     6      10  any
           7    10      10  any
           2     6      13  Class java.io.IOException
           7    13      13  Class java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  private static java.lang.String getFileName(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.io.File file
         0: .line 133
            aload 0 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 134
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 135
            iload 2 /* index */
            iconst_m1
            if_icmpne 4
         3: .line 136
            aload 1 /* name */
            areturn
         4: .line 137
      StackMap locals: java.lang.String int
      StackMap stack:
            aload 1 /* name */
            iconst_0
            iload 2 /* index */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 2 // int index
        end local 1 // java.lang.String name
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   file  Ljava/io/File;
            1    5     1   name  Ljava/lang/String;
            2    5     2  index  I
    MethodParameters:
      Name  Flags
      file  

  protected static java.lang.String[] extractAddonRead(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.lang.String option
         0: .line 149
            new java.util.StringTokenizer
            dup
            aload 0 /* option */
            ldc "="
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 1 /* tokenizer */
        start local 1 // java.util.StringTokenizer tokenizer
         1: .line 150
            aconst_null
            astore 2 /* source */
        start local 2 // java.lang.String source
         2: .line 151
            aconst_null
            astore 3 /* target */
        start local 3 // java.lang.String target
         3: .line 152
            aload 1 /* tokenizer */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 6
         4: .line 153
            aload 1 /* tokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 2 /* source */
         5: .line 154
            goto 7
         6: .line 156
      StackMap locals: java.util.StringTokenizer java.lang.String java.lang.String
      StackMap stack:
            aconst_null
            areturn
         7: .line 158
      StackMap locals:
      StackMap stack:
            aload 1 /* tokenizer */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 10
         8: .line 159
            aload 1 /* tokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 3 /* target */
         9: .line 160
            goto 11
        10: .line 162
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        11: .line 164
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* source */
            aastore
            dup
            iconst_1
            aload 3 /* target */
            aastore
            areturn
        end local 3 // java.lang.String target
        end local 2 // java.lang.String source
        end local 1 // java.util.StringTokenizer tokenizer
        end local 0 // java.lang.String option
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0     option  Ljava/lang/String;
            1   12     1  tokenizer  Ljava/util/StringTokenizer;
            2   12     2     source  Ljava/lang/String;
            3   12     3     target  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      option  

  protected static org.eclipse.jdt.internal.compiler.batch.ModuleFinder$AddExport extractAddonExport(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/batch/ModuleFinder$AddExport;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // java.lang.String option
         0: .line 194
            new java.util.StringTokenizer
            dup
            aload 0 /* option */
            ldc "/"
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 1 /* tokenizer */
        start local 1 // java.util.StringTokenizer tokenizer
         1: .line 195
            aconst_null
            astore 2 /* source */
        start local 2 // java.lang.String source
         2: .line 196
            aconst_null
            astore 3 /* pack */
        start local 3 // java.lang.String pack
         3: .line 197
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* targets */
        start local 4 // java.util.List targets
         4: .line 198
            aload 1 /* tokenizer */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 7
         5: .line 199
            aload 1 /* tokenizer */
            ldc "/"
            invokevirtual java.util.StringTokenizer.nextToken:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* source */
         6: .line 200
            goto 8
         7: .line 202
      StackMap locals: java.lang.String java.util.StringTokenizer java.lang.String java.lang.String java.util.List
      StackMap stack:
            aconst_null
            areturn
         8: .line 204
      StackMap locals:
      StackMap stack:
            aload 1 /* tokenizer */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 11
         9: .line 205
            aload 1 /* tokenizer */
            ldc "/="
            invokevirtual java.util.StringTokenizer.nextToken:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* pack */
        10: .line 206
            goto 13
        11: .line 208
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        12: .line 211
      StackMap locals:
      StackMap stack:
            aload 4 /* targets */
            aload 1 /* tokenizer */
            ldc "=,"
            invokevirtual java.util.StringTokenizer.nextToken:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 210
      StackMap locals:
      StackMap stack:
            aload 1 /* tokenizer */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 12
        14: .line 213
            new org.eclipse.jdt.internal.compiler.env.PackageExportImpl
            dup
            invokespecial org.eclipse.jdt.internal.compiler.env.PackageExportImpl.<init>:()V
            astore 5 /* export */
        start local 5 // org.eclipse.jdt.internal.compiler.env.PackageExportImpl export
        15: .line 214
            aload 5 /* export */
            aload 3 /* pack */
            invokevirtual java.lang.String.toCharArray:()[C
            putfield org.eclipse.jdt.internal.compiler.env.PackageExportImpl.pack:[C
        16: .line 215
            aload 5 /* export */
            aload 4 /* targets */
            invokeinterface java.util.List.size:()I
            anewarray char[]
            putfield org.eclipse.jdt.internal.compiler.env.PackageExportImpl.exportedTo:[[C
        17: .line 216
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        18: goto 21
        19: .line 217
      StackMap locals: org.eclipse.jdt.internal.compiler.env.PackageExportImpl int
      StackMap stack:
            aload 5 /* export */
            getfield org.eclipse.jdt.internal.compiler.env.PackageExportImpl.exportedTo:[[C
            iload 6 /* i */
            aload 4 /* targets */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.String.toCharArray:()[C
            aastore
        20: .line 216
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 6 /* i */
            aload 5 /* export */
            getfield org.eclipse.jdt.internal.compiler.env.PackageExportImpl.exportedTo:[[C
            arraylength
            if_icmplt 19
        end local 6 // int i
        22: .line 219
            new org.eclipse.jdt.internal.compiler.batch.ModuleFinder$AddExport
            dup
            aload 2 /* source */
            aload 5 /* export */
            invokespecial org.eclipse.jdt.internal.compiler.batch.ModuleFinder$AddExport.<init>:(Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/IModule$IPackageExport;)V
            areturn
        end local 5 // org.eclipse.jdt.internal.compiler.env.PackageExportImpl export
        end local 4 // java.util.List targets
        end local 3 // java.lang.String pack
        end local 2 // java.lang.String source
        end local 1 // java.util.StringTokenizer tokenizer
        end local 0 // java.lang.String option
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0     option  Ljava/lang/String;
            1   23     1  tokenizer  Ljava/util/StringTokenizer;
            2   23     2     source  Ljava/lang/String;
            3   23     3       pack  Ljava/lang/String;
            4   23     4    targets  Ljava/util/List<Ljava/lang/String;>;
           15   23     5     export  Lorg/eclipse/jdt/internal/compiler/env/PackageExportImpl;
           18   22     6          i  I
    MethodParameters:
        Name  Flags
      option  

  private static java.lang.String getModulePathForArchive(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 223
            aload 0 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.archiveFormat:(Ljava/lang/String;)I
            istore 1 /* format */
        start local 1 // int format
         1: .line 224
            iload 1 /* format */
            ifne 3
         2: .line 225
            ldc "module-info.class"
            areturn
         3: .line 226
      StackMap locals: int
      StackMap stack:
            iload 1 /* format */
            iconst_1
            if_icmpne 5
         4: .line 227
            ldc "classes/module-info.class"
            areturn
         5: .line 229
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // int format
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    file  Ljava/io/File;
            1    6     1  format  I
    MethodParameters:
      Name  Flags
      file  

  private static org.eclipse.jdt.internal.compiler.env.IModule extractModuleFromArchive(java.io.File, org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath, java.lang.String, java.lang.String);
    descriptor: (Ljava/io/File;Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // java.io.File file
        start local 1 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath pathEntry
        start local 2 // java.lang.String path
        start local 3 // java.lang.String release
         0: .line 232
            aconst_null
            astore 4 /* zipFile */
        start local 4 // java.util.zip.ZipFile zipFile
         1: .line 234
            new java.util.zip.ZipFile
            dup
            aload 0 /* file */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
            astore 4 /* zipFile */
         2: .line 235
            aload 3 /* release */
            ifnull 7
         3: .line 236
            new java.lang.StringBuilder
            dup
            ldc "META-INF/versions/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* release */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* path */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* releasePath */
        start local 5 // java.lang.String releasePath
         4: .line 237
            aload 4 /* zipFile */
            aload 5 /* releasePath */
            invokevirtual java.util.zip.ZipFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
            astore 6 /* entry */
        start local 6 // java.util.zip.ZipEntry entry
         5: .line 238
            aload 6 /* entry */
            ifnull 7
         6: .line 239
            aload 5 /* releasePath */
            astore 2 /* path */
        end local 6 // java.util.zip.ZipEntry entry
        end local 5 // java.lang.String releasePath
         7: .line 242
      StackMap locals: java.util.zip.ZipFile
      StackMap stack:
            aload 4 /* zipFile */
            aload 2 /* path */
            invokestatic org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.read:(Ljava/util/zip/ZipFile;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
            astore 5 /* reader */
        start local 5 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader reader
         8: .line 243
            aload 5 /* reader */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.getModule:(Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            astore 6 /* module */
        start local 6 // org.eclipse.jdt.internal.compiler.env.IModule module
         9: .line 244
            aload 6 /* module */
            ifnull 16
        10: .line 245
            aload 5 /* reader */
            invokevirtual org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.getModuleDeclaration:()Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
            astore 8
        11: .line 251
            aload 4 /* zipFile */
            ifnull 15
        12: .line 253
            aload 4 /* zipFile */
            invokevirtual java.util.zip.ZipFile.close:()V
        13: .line 254
            goto 15
      StackMap locals: java.io.File org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.lang.String java.lang.String java.util.zip.ZipFile org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader org.eclipse.jdt.internal.compiler.env.IModule top org.eclipse.jdt.internal.compiler.env.IModule
      StackMap stack: java.io.IOException
        14: pop
        15: .line 245
      StackMap locals:
      StackMap stack:
            aload 8
            areturn
        16: .line 251
      StackMap locals: java.io.File org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.lang.String java.lang.String java.util.zip.ZipFile org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader org.eclipse.jdt.internal.compiler.env.IModule
      StackMap stack:
            aload 4 /* zipFile */
            ifnull 20
        17: .line 253
            aload 4 /* zipFile */
            invokevirtual java.util.zip.ZipFile.close:()V
        18: .line 254
            goto 20
      StackMap locals:
      StackMap stack: java.io.IOException
        19: pop
        20: .line 247
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 6 // org.eclipse.jdt.internal.compiler.env.IModule module
        end local 5 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader reader
        21: .line 248
      StackMap locals: java.io.File org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.lang.String java.lang.String java.util.zip.ZipFile
      StackMap stack: java.lang.Exception
            pop
        22: .line 251
            aload 4 /* zipFile */
            ifnull 32
        23: .line 253
            aload 4 /* zipFile */
            invokevirtual java.util.zip.ZipFile.close:()V
        24: .line 254
            goto 32
      StackMap locals:
      StackMap stack: java.io.IOException
        25: pop
            goto 32
        26: .line 250
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        27: .line 251
            aload 4 /* zipFile */
            ifnull 31
        28: .line 253
            aload 4 /* zipFile */
            invokevirtual java.util.zip.ZipFile.close:()V
        29: .line 254
            goto 31
      StackMap locals: java.io.File org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.lang.String java.lang.String java.util.zip.ZipFile top top java.lang.Throwable
      StackMap stack: java.io.IOException
        30: pop
        31: .line 258
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        32: .line 259
      StackMap locals: java.io.File org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.lang.String java.lang.String java.util.zip.ZipFile
      StackMap stack:
            aconst_null
            areturn
        end local 4 // java.util.zip.ZipFile zipFile
        end local 3 // java.lang.String release
        end local 2 // java.lang.String path
        end local 1 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath pathEntry
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   33     0         file  Ljava/io/File;
            0   33     1    pathEntry  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            0   33     2         path  Ljava/lang/String;
            0   33     3      release  Ljava/lang/String;
            1   33     4      zipFile  Ljava/util/zip/ZipFile;
            4    7     5  releasePath  Ljava/lang/String;
            5    7     6        entry  Ljava/util/zip/ZipEntry;
            8   21     5       reader  Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
            9   21     6       module  Lorg/eclipse/jdt/internal/compiler/env/IModule;
      Exception table:
        from    to  target  type
          12    13      14  Class java.io.IOException
          17    18      19  Class java.io.IOException
           1    11      21  Class org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
           1    11      21  Class java.io.IOException
          23    24      25  Class java.io.IOException
           1    11      26  any
          21    22      26  any
          28    29      30  Class java.io.IOException
    MethodParameters:
           Name  Flags
      file       
      pathEntry  
      path       
      release    

  private static org.eclipse.jdt.internal.compiler.env.IModule extractModuleFromClass(java.io.File, org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath);
    descriptor: (Ljava/io/File;Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // java.io.File classfilePath
        start local 1 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath pathEntry
         0: .line 264
            aload 0 /* classfilePath */
            invokestatic org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.read:(Ljava/io/File;)Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
            astore 2 /* reader */
        start local 2 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader reader
         1: .line 265
            aload 2 /* reader */
            invokestatic org.eclipse.jdt.internal.compiler.batch.ModuleFinder.getModule:(Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            astore 3 /* module */
        start local 3 // org.eclipse.jdt.internal.compiler.env.IModule module
         2: .line 266
            aload 3 /* module */
            ifnull 5
         3: .line 267
            aload 2 /* reader */
            invokevirtual org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.getModuleDeclaration:()Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
         4: areturn
         5: .line 269
      StackMap locals: org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader org.eclipse.jdt.internal.compiler.env.IModule
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.eclipse.jdt.internal.compiler.env.IModule module
        end local 2 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader reader
         6: .line 270
      StackMap locals: java.io.File org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         7: .line 271
            aload 3 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 3 // java.lang.Exception e
         8: .line 273
            aconst_null
            areturn
        end local 1 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath pathEntry
        end local 0 // java.io.File classfilePath
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0  classfilePath  Ljava/io/File;
            0    9     1      pathEntry  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            1    6     2         reader  Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
            2    6     3         module  Lorg/eclipse/jdt/internal/compiler/env/IModule;
            7    8     3              e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     4       6  Class org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
           0     4       6  Class java.io.IOException
    MethodParameters:
               Name  Flags
      classfilePath  
      pathEntry      

  private static org.eclipse.jdt.internal.compiler.env.IModule getModule(org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader classfile
         0: .line 276
            aload 0 /* classfile */
            ifnull 2
         1: .line 277
            aload 0 /* classfile */
            invokevirtual org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.getModuleDeclaration:()Lorg/eclipse/jdt/internal/compiler/env/IBinaryModule;
            areturn
         2: .line 279
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader classfile
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  classfile  Lorg/eclipse/jdt/internal/compiler/classfmt/ClassFileReader;
    MethodParameters:
           Name  Flags
      classfile  

  private static org.eclipse.jdt.internal.compiler.env.IModule extractModuleFromSource(java.io.File, org.eclipse.jdt.internal.compiler.parser.Parser, org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath);
    descriptor: (Ljava/io/File;Lorg/eclipse/jdt/internal/compiler/parser/Parser;Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // java.io.File file
        start local 1 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        start local 2 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath pathEntry
         0: .line 282
            new org.eclipse.jdt.internal.compiler.batch.CompilationUnit
            dup
            aconst_null
            aload 0 /* file */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aconst_null
            aload 2 /* pathEntry */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getDestinationPath:()Ljava/lang/String;
            invokespecial org.eclipse.jdt.internal.compiler.batch.CompilationUnit.<init>:([CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* cu */
        start local 3 // org.eclipse.jdt.internal.compiler.batch.CompilationUnit cu
         1: .line 283
            new org.eclipse.jdt.internal.compiler.CompilationResult
            dup
            aload 3 /* cu */
            iconst_0
            iconst_1
            bipush 10
            invokespecial org.eclipse.jdt.internal.compiler.CompilationResult.<init>:(Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;III)V
            astore 4 /* compilationResult */
        start local 4 // org.eclipse.jdt.internal.compiler.CompilationResult compilationResult
         2: .line 284
            aload 1 /* parser */
            aload 3 /* cu */
            aload 4 /* compilationResult */
            invokevirtual org.eclipse.jdt.internal.compiler.parser.Parser.parse:(Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;Lorg/eclipse/jdt/internal/compiler/CompilationResult;)Lorg/eclipse/jdt/internal/compiler/ast/CompilationUnitDeclaration;
            astore 5 /* unit */
        start local 5 // org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration unit
         3: .line 285
            aload 5 /* unit */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.isModuleInfo:()Z
            ifeq 6
            aload 5 /* unit */
            getfield org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.moduleDeclaration:Lorg/eclipse/jdt/internal/compiler/ast/ModuleDeclaration;
            ifnull 6
         4: .line 286
            aload 3 /* cu */
            aload 5 /* unit */
            getfield org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.moduleDeclaration:Lorg/eclipse/jdt/internal/compiler/ast/ModuleDeclaration;
            getfield org.eclipse.jdt.internal.compiler.ast.ModuleDeclaration.moduleName:[C
            putfield org.eclipse.jdt.internal.compiler.batch.CompilationUnit.module:[C
         5: .line 287
            new org.eclipse.jdt.internal.compiler.batch.BasicModule
            dup
            aload 5 /* unit */
            getfield org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.moduleDeclaration:Lorg/eclipse/jdt/internal/compiler/ast/ModuleDeclaration;
            aload 2 /* pathEntry */
            invokespecial org.eclipse.jdt.internal.compiler.batch.BasicModule.<init>:(Lorg/eclipse/jdt/internal/compiler/ast/ModuleDeclaration;Lorg/eclipse/jdt/internal/compiler/env/IModulePathEntry;)V
            areturn
         6: .line 289
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.CompilationUnit org.eclipse.jdt.internal.compiler.CompilationResult org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration
      StackMap stack:
            aconst_null
            areturn
        end local 5 // org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration unit
        end local 4 // org.eclipse.jdt.internal.compiler.CompilationResult compilationResult
        end local 3 // org.eclipse.jdt.internal.compiler.batch.CompilationUnit cu
        end local 2 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath pathEntry
        end local 1 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               file  Ljava/io/File;
            0    7     1             parser  Lorg/eclipse/jdt/internal/compiler/parser/Parser;
            0    7     2          pathEntry  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            1    7     3                 cu  Lorg/eclipse/jdt/internal/compiler/batch/CompilationUnit;
            2    7     4  compilationResult  Lorg/eclipse/jdt/internal/compiler/CompilationResult;
            3    7     5               unit  Lorg/eclipse/jdt/internal/compiler/ast/CompilationUnitDeclaration;
    MethodParameters:
           Name  Flags
      file       
      parser     
      pathEntry  
}
SourceFile: "ModuleFinder.java"
NestMembers:
  org.eclipse.jdt.internal.compiler.batch.ModuleFinder$1  org.eclipse.jdt.internal.compiler.batch.ModuleFinder$AddExport
InnerClasses:
  public abstract Classpath = org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath of org.eclipse.jdt.internal.compiler.batch.FileSystem
  org.eclipse.jdt.internal.compiler.batch.ModuleFinder$1
  AddExport = org.eclipse.jdt.internal.compiler.batch.ModuleFinder$AddExport of org.eclipse.jdt.internal.compiler.batch.ModuleFinder
  public abstract IPackageExport = org.eclipse.jdt.internal.compiler.env.IModule$IPackageExport of org.eclipse.jdt.internal.compiler.env.IModule