public class org.eclipse.jdt.internal.compiler.batch.FileSystem implements org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment, org.eclipse.jdt.internal.compiler.util.SuffixConstants
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.compiler.batch.FileSystem
  super_class: java.lang.Object
{
  public static java.util.ArrayList<org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath> EMPTY_CLASSPATH;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Signature: Ljava/util/ArrayList<Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;

  protected org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] classpaths;
    descriptor: [Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    flags: (0x0004) ACC_PROTECTED

  protected org.eclipse.jdt.internal.compiler.env.IModule module;
    descriptor: Lorg/eclipse/jdt/internal/compiler/env/IModule;
    flags: (0x0004) ACC_PROTECTED

  java.util.Set<java.lang.String> knownFileNames;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  protected boolean annotationsFromClasspath;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  private static java.util.HashMap<java.io.File, org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath> JRT_CLASSPATH_CACHE;
    descriptor: Ljava/util/HashMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/util/HashMap<Ljava/io/File;Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;

  protected java.util.Map<java.lang.String, org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath> moduleLocations;
    descriptor: Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;

  java.util.Map<java.lang.String, org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind> moduleUpdates;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule$UpdatesByKind;>;

  static boolean isJRE12Plus;
    descriptor: Z
    flags: (0x0008) ACC_STATIC

  private boolean hasLimitModules;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$org$eclipse$jdt$internal$compiler$env$IModuleAwareNameEnvironment$LookupStrategy;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 62
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.EMPTY_CLASSPATH:Ljava/util/ArrayList;
         1: .line 169
            aconst_null
            putstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.JRT_CLASSPATH_CACHE:Ljava/util/HashMap;
         2: .line 174
            iconst_0
            putstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.isJRE12Plus:Z
         3: .line 180
            ldc "RELEASE_12"
            invokestatic javax.lang.model.SourceVersion.valueOf:(Ljava/lang/String;)Ljavax/lang/model/SourceVersion;
            ifnull 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: putstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.isJRE12Plus:Z
         6: .line 181
            goto 8
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         7: pop
         8: .line 184
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.IllegalArgumentException

  public void <init>(java.lang.String[], java.lang.String[], java.lang.String);
    descriptor: ([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // java.lang.String[] classpathNames
        start local 2 // java.lang.String[] initialFileNames
        start local 3 // java.lang.String encoding
         0: .line 191
            aload 0 /* this */
            aload 1 /* classpathNames */
            aload 2 /* initialFileNames */
            aload 3 /* encoding */
            aconst_null
            invokespecial org.eclipse.jdt.internal.compiler.batch.FileSystem.<init>:([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;)V
         1: .line 192
            return
        end local 3 // java.lang.String encoding
        end local 2 // java.lang.String[] initialFileNames
        end local 1 // java.lang.String[] classpathNames
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0    2     1    classpathNames  [Ljava/lang/String;
            0    2     2  initialFileNames  [Ljava/lang/String;
            0    2     3          encoding  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      classpathNames    
      initialFileNames  
      encoding          

  protected void <init>(java.lang.String[], java.lang.String[], java.lang.String, java.util.Collection<java.lang.String>);
    descriptor: ([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // java.lang.String[] classpathNames
        start local 2 // java.lang.String[] initialFileNames
        start local 3 // java.lang.String encoding
        start local 4 // java.util.Collection limitModules
         0: .line 193
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 170
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
         2: .line 173
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleUpdates:Ljava/util/Map;
         3: .line 176
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.hasLimitModules:Z
         4: .line 194
            aload 1 /* classpathNames */
            arraylength
            istore 5 /* classpathSize */
        start local 5 // int classpathSize
         5: .line 195
            aload 0 /* this */
            iload 5 /* classpathSize */
            anewarray org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
         6: .line 196
            iconst_0
            istore 6 /* counter */
        start local 6 // int counter
         7: .line 197
            aload 0 /* this */
            aload 4 /* limitModules */
            ifnull 8
            aload 4 /* limitModules */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 8
            iconst_1
            goto 9
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String[] java.lang.String[] java.lang.String java.util.Collection int int
      StackMap stack: org.eclipse.jdt.internal.compiler.batch.FileSystem
         8: iconst_0
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String[] java.lang.String[] java.lang.String java.util.Collection int int
      StackMap stack: org.eclipse.jdt.internal.compiler.batch.FileSystem int
         9: putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.hasLimitModules:Z
        10: .line 198
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        11: goto 22
        12: .line 199
      StackMap locals: int
      StackMap stack:
            aload 1 /* classpathNames */
            iload 7 /* i */
            aaload
            aload 3 /* encoding */
            aconst_null
            aconst_null
            aconst_null
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.getClasspath:(Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/util/Map;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            astore 8 /* classpath */
        start local 8 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
        13: .line 201
            aload 8 /* classpath */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.initialize:()V
        14: .line 202
            aload 8 /* classpath */
            aload 4 /* limitModules */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getModuleNames:(Ljava/util/Collection;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 17
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String[] java.lang.String[] java.lang.String java.util.Collection int int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath top java.util.Iterator
      StackMap stack:
        15: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* moduleName */
        start local 9 // java.lang.String moduleName
        16: .line 203
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            aload 9 /* moduleName */
            aload 8 /* classpath */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.String moduleName
        17: .line 202
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 204
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 6 /* counter */
            iinc 6 /* counter */ 1
            aload 8 /* classpath */
            aastore
        19: .line 205
            goto 21
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String[] java.lang.String[] java.lang.String java.util.Collection int int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
      StackMap stack: java.io.IOException
        20: pop
        end local 8 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
        21: .line 198
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 7 /* i */
            iload 5 /* classpathSize */
            if_icmplt 12
        end local 7 // int i
        23: .line 209
            iload 6 /* counter */
            iload 5 /* classpathSize */
            if_icmpeq 25
        24: .line 210
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iconst_0
            aload 0 /* this */
            iload 6 /* counter */
            anewarray org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
            dup_x1
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iconst_0
            iload 6 /* counter */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        25: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* initialFileNames */
            invokevirtual org.eclipse.jdt.internal.compiler.batch.FileSystem.initializeKnownFileNames:([Ljava/lang/String;)V
        26: .line 213
            return
        end local 6 // int counter
        end local 5 // int classpathSize
        end local 4 // java.util.Collection limitModules
        end local 3 // java.lang.String encoding
        end local 2 // java.lang.String[] initialFileNames
        end local 1 // java.lang.String[] classpathNames
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   27     0              this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   27     1    classpathNames  [Ljava/lang/String;
            0   27     2  initialFileNames  [Ljava/lang/String;
            0   27     3          encoding  Ljava/lang/String;
            0   27     4      limitModules  Ljava/util/Collection<Ljava/lang/String;>;
            5   27     5     classpathSize  I
            7   27     6           counter  I
           11   23     7                 i  I
           13   21     8         classpath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           16   17     9        moduleName  Ljava/lang/String;
      Exception table:
        from    to  target  type
          13    19      20  Class java.io.IOException
    Signature: ([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection<Ljava/lang/String;>;)V
    MethodParameters:
                  Name  Flags
      classpathNames    
      initialFileNames  
      encoding          
      limitModules      

  protected void <init>(org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[], java.lang.String[], boolean, java.util.Set<java.lang.String>);
    descriptor: ([Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;[Ljava/lang/String;ZLjava/util/Set;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] paths
        start local 2 // java.lang.String[] initialFileNames
        start local 3 // boolean annotationsFromClasspath
        start local 4 // java.util.Set limitedModules
         0: .line 214
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 170
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
         2: .line 173
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleUpdates:Ljava/util/Map;
         3: .line 176
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.hasLimitModules:Z
         4: .line 215
            aload 1 /* paths */
            arraylength
            istore 5 /* length */
        start local 5 // int length
         5: .line 216
            iconst_0
            istore 6 /* counter */
        start local 6 // int counter
         6: .line 217
            aload 0 /* this */
            iload 5 /* length */
            anewarray org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
         7: .line 218
            aload 0 /* this */
            aload 4 /* limitedModules */
            ifnull 8
            aload 4 /* limitedModules */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 8
            iconst_1
            goto 9
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] java.lang.String[] int java.util.Set int int
      StackMap stack: org.eclipse.jdt.internal.compiler.batch.FileSystem
         8: iconst_0
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] java.lang.String[] int java.util.Set int int
      StackMap stack: org.eclipse.jdt.internal.compiler.batch.FileSystem int
         9: putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.hasLimitModules:Z
        10: .line 219
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        11: goto 22
        12: .line 220
      StackMap locals: int
      StackMap stack:
            aload 1 /* paths */
            iload 7 /* i */
            aaload
            astore 8 /* classpath */
        start local 8 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
        13: .line 222
            aload 8 /* classpath */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.initialize:()V
        14: .line 223
            aload 8 /* classpath */
            aload 4 /* limitedModules */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getModuleNames:(Ljava/util/Collection;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 17
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] java.lang.String[] int java.util.Set int int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath top java.util.Iterator
      StackMap stack:
        15: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* moduleName */
        start local 9 // java.lang.String moduleName
        16: .line 224
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            aload 9 /* moduleName */
            aload 8 /* classpath */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.String moduleName
        17: .line 223
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 225
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 6 /* counter */
            iinc 6 /* counter */ 1
            aload 8 /* classpath */
            aastore
        19: .line 226
            goto 21
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] java.lang.String[] int java.util.Set int int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
      StackMap stack: java.lang.Exception
        20: pop
        end local 8 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
        21: .line 219
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 7 /* i */
            iload 5 /* length */
            if_icmplt 12
        end local 7 // int i
        23: .line 231
            iload 6 /* counter */
            iload 5 /* length */
            if_icmpeq 25
        24: .line 233
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iconst_0
            aload 0 /* this */
            iload 6 /* counter */
            anewarray org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
            dup_x1
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iconst_0
            iload 6 /* counter */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        25: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* limitedModules */
            invokevirtual org.eclipse.jdt.internal.compiler.batch.FileSystem.initializeModuleLocations:(Ljava/util/Set;)V
        26: .line 236
            aload 0 /* this */
            aload 2 /* initialFileNames */
            invokevirtual org.eclipse.jdt.internal.compiler.batch.FileSystem.initializeKnownFileNames:([Ljava/lang/String;)V
        27: .line 237
            aload 0 /* this */
            iload 3 /* annotationsFromClasspath */
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.annotationsFromClasspath:Z
        28: .line 238
            return
        end local 6 // int counter
        end local 5 // int length
        end local 4 // java.util.Set limitedModules
        end local 3 // boolean annotationsFromClasspath
        end local 2 // java.lang.String[] initialFileNames
        end local 1 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] paths
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   29     0                      this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   29     1                     paths  [Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            0   29     2          initialFileNames  [Ljava/lang/String;
            0   29     3  annotationsFromClasspath  Z
            0   29     4            limitedModules  Ljava/util/Set<Ljava/lang/String;>;
            5   29     5                    length  I
            6   29     6                   counter  I
           11   23     7                         i  I
           13   21     8                 classpath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           16   17     9                moduleName  Ljava/lang/String;
      Exception table:
        from    to  target  type
          13    19      20  Class java.io.IOException
          13    19      20  Class java.nio.file.InvalidPathException
    Signature: ([Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;[Ljava/lang/String;ZLjava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
                          Name  Flags
      paths                     
      initialFileNames          
      annotationsFromClasspath  
      limitedModules            

  private void initializeModuleLocations(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // java.util.Set limitedModules
         0: .line 243
            aload 1 /* limitedModules */
            ifnonnull 10
         1: .line 244
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.util.Set top int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* c */
        start local 2 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath c
         3: .line 245
            aload 2 /* c */
            aconst_null
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getModuleNames:(Ljava/util/Collection;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 6
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.util.Set org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* moduleName */
        start local 6 // java.lang.String moduleName
         5: .line 246
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            aload 6 /* moduleName */
            aload 2 /* c */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.String moduleName
         6: .line 245
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath c
         7: .line 244
            iinc 3 1
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.util.Set top int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[]
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 2
         9: .line 248
            goto 28
        10: .line 249
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.util.Set
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* moduleMap */
        start local 2 // java.util.Map moduleMap
        11: .line 250
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 18
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.util.Set java.util.Map top int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[]
      StackMap stack:
        12: aload 6
            iload 4
            aaload
            astore 3 /* c */
        start local 3 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath c
        13: .line 251
            aload 3 /* c */
            aconst_null
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getModuleNames:(Ljava/util/Collection;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 16
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.util.Set java.util.Map org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] top java.util.Iterator
      StackMap stack:
        14: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* moduleName */
        start local 7 // java.lang.String moduleName
        15: .line 252
            aload 2 /* moduleMap */
            aload 7 /* moduleName */
            aload 3 /* c */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.String moduleName
        16: .line 251
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 3 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath c
        17: .line 250
            iinc 4 1
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.util.Set java.util.Map top int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[]
      StackMap stack:
        18: iload 4
            iload 5
            if_icmplt 12
        19: .line 255
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 27
      StackMap locals:
      StackMap stack:
        20: aload 6
            iload 4
            aaload
            astore 3 /* c */
        start local 3 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath c
        21: .line 256
            aload 3 /* c */
            aload 1 /* limitedModules */
            aload 0 /* this */
            invokedynamic apply(Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;)Ljava/util/function/Function;
              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;
                  org/eclipse/jdt/internal/compiler/batch/FileSystem.lambda$0(Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/env/IModule; (7)
                  (Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getModuleNames:(Ljava/util/Collection;Ljava/util/function/Function;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 8
            goto 25
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.util.Set java.util.Map org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] top java.util.Iterator
      StackMap stack:
        22: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* moduleName */
        start local 7 // java.lang.String moduleName
        23: .line 257
            aload 2 /* moduleMap */
            aload 7 /* moduleName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
            astore 9 /* classpath */
        start local 9 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
        24: .line 258
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            aload 7 /* moduleName */
            aload 9 /* classpath */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
        end local 7 // java.lang.String moduleName
        25: .line 256
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        end local 3 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath c
        26: .line 255
            iinc 4 1
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.util.Set java.util.Map top int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[]
      StackMap stack:
        27: iload 4
            iload 5
            if_icmplt 20
        end local 2 // java.util.Map moduleMap
        28: .line 262
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.util.Set
      StackMap stack:
            return
        end local 1 // java.util.Set limitedModules
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   29     1  limitedModules  Ljava/util/Set<Ljava/lang/String;>;
            3    7     2               c  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            5    6     6      moduleName  Ljava/lang/String;
           11   28     2       moduleMap  Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;>;
           13   17     3               c  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           15   16     7      moduleName  Ljava/lang/String;
           21   26     3               c  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           23   25     7      moduleName  Ljava/lang/String;
           24   25     9       classpath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
                Name  Flags
      limitedModules  

  protected void <init>(org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[], java.lang.String[], boolean);
    descriptor: ([Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;[Ljava/lang/String;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] paths
        start local 2 // java.lang.String[] initialFileNames
        start local 3 // boolean annotationsFromClasspath
         0: .line 264
            aload 0 /* this */
            aload 1 /* paths */
            aload 2 /* initialFileNames */
            iload 3 /* annotationsFromClasspath */
            aconst_null
            invokespecial org.eclipse.jdt.internal.compiler.batch.FileSystem.<init>:([Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;[Ljava/lang/String;ZLjava/util/Set;)V
         1: .line 265
            return
        end local 3 // boolean annotationsFromClasspath
        end local 2 // java.lang.String[] initialFileNames
        end local 1 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] paths
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0    2     1                     paths  [Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            0    2     2          initialFileNames  [Ljava/lang/String;
            0    2     3  annotationsFromClasspath  Z
    MethodParameters:
                          Name  Flags
      paths                     
      initialFileNames          
      annotationsFromClasspath  

  public static org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath getClasspath(java.lang.String, java.lang.String, org.eclipse.jdt.internal.compiler.env.AccessRuleSet);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // java.lang.String classpathName
        start local 1 // java.lang.String encoding
        start local 2 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
         0: .line 267
            aload 0 /* classpathName */
            aload 1 /* encoding */
            iconst_0
            aload 2 /* accessRuleSet */
            aconst_null
            aconst_null
            aconst_null
            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;
            areturn
        end local 2 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
        end local 1 // java.lang.String encoding
        end local 0 // java.lang.String classpathName
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0  classpathName  Ljava/lang/String;
            0    1     1       encoding  Ljava/lang/String;
            0    1     2  accessRuleSet  Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;
    MethodParameters:
               Name  Flags
      classpathName  
      encoding       
      accessRuleSet  

  public static org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath getClasspath(java.lang.String, java.lang.String, org.eclipse.jdt.internal.compiler.env.AccessRuleSet, java.util.Map<java.lang.String, java.lang.String>, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/util/Map;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // java.lang.String classpathName
        start local 1 // java.lang.String encoding
        start local 2 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
        start local 3 // java.util.Map options
        start local 4 // java.lang.String release
         0: .line 270
            aload 0 /* classpathName */
            aload 1 /* encoding */
            iconst_0
            aload 2 /* accessRuleSet */
            aconst_null
            aload 3 /* options */
            aload 4 /* release */
            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;
            areturn
        end local 4 // java.lang.String release
        end local 3 // java.util.Map options
        end local 2 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
        end local 1 // java.lang.String encoding
        end local 0 // java.lang.String classpathName
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0  classpathName  Ljava/lang/String;
            0    1     1       encoding  Ljava/lang/String;
            0    1     2  accessRuleSet  Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;
            0    1     3        options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0    1     4        release  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    MethodParameters:
               Name  Flags
      classpathName  
      encoding       
      accessRuleSet  
      options        
      release        

  public static org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath getJrtClasspath(java.lang.String, java.lang.String, org.eclipse.jdt.internal.compiler.env.AccessRuleSet, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/util/Map;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.lang.String jdkHome
        start local 1 // java.lang.String encoding
        start local 2 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
        start local 3 // java.util.Map options
         0: .line 273
            new org.eclipse.jdt.internal.compiler.batch.ClasspathJrt
            dup
            new java.io.File
            dup
            aload 0 /* jdkHome */
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.convertPathSeparators:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            iconst_1
            aload 2 /* accessRuleSet */
            aconst_null
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathJrt.<init>:(Ljava/io/File;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;)V
            areturn
        end local 3 // java.util.Map options
        end local 2 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
        end local 1 // java.lang.String encoding
        end local 0 // java.lang.String jdkHome
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0        jdkHome  Ljava/lang/String;
            0    1     1       encoding  Ljava/lang/String;
            0    1     2  accessRuleSet  Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;
            0    1     3        options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    MethodParameters:
               Name  Flags
      jdkHome        
      encoding       
      accessRuleSet  
      options        

  public static org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath getOlderSystemRelease(java.lang.String, java.lang.String, org.eclipse.jdt.internal.compiler.env.AccessRuleSet);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.String jdkHome
        start local 1 // java.lang.String release
        start local 2 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
         0: .line 276
            getstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.isJRE12Plus:Z
            ifeq 2
         1: .line 277
            new org.eclipse.jdt.internal.compiler.batch.ClasspathJep247Jdk12
            dup
            new java.io.File
            dup
            aload 0 /* jdkHome */
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.convertPathSeparators:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            aload 1 /* release */
            aload 2 /* accessRuleSet */
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathJep247Jdk12.<init>:(Ljava/io/File;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;)V
            goto 3
         2: .line 278
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.compiler.batch.ClasspathJep247
            dup
            new java.io.File
            dup
            aload 0 /* jdkHome */
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.convertPathSeparators:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            aload 1 /* release */
            aload 2 /* accessRuleSet */
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathJep247.<init>:(Ljava/io/File;Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;)V
         3: .line 276
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.compiler.batch.ClasspathJep247
            areturn
        end local 2 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
        end local 1 // java.lang.String release
        end local 0 // java.lang.String jdkHome
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0        jdkHome  Ljava/lang/String;
            0    4     1        release  Ljava/lang/String;
            0    4     2  accessRuleSet  Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;
    MethodParameters:
               Name  Flags
      jdkHome        
      release        
      accessRuleSet  

  public static org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath getClasspath(java.lang.String, java.lang.String, boolean, org.eclipse.jdt.internal.compiler.env.AccessRuleSet, java.lang.String, java.util.Map<java.lang.String, java.lang.String>, java.lang.String);
    descriptor: (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;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=10, args_size=7
        start local 0 // java.lang.String classpathName
        start local 1 // java.lang.String encoding
        start local 2 // boolean isSourceOnly
        start local 3 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
        start local 4 // java.lang.String destinationPath
        start local 5 // java.util.Map options
        start local 6 // java.lang.String release
         0: .line 283
            aconst_null
            astore 7 /* result */
        start local 7 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath result
         1: .line 284
            new java.io.File
            dup
            aload 0 /* classpathName */
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.convertPathSeparators:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 8 /* file */
        start local 8 // java.io.File file
         2: .line 285
            aload 8 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 14
         3: .line 286
            aload 8 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 44
         4: .line 287
            new org.eclipse.jdt.internal.compiler.batch.ClasspathDirectory
            dup
            aload 8 /* file */
            aload 1 /* encoding */
         5: .line 288
            iload 2 /* isSourceOnly */
            ifeq 6
            iconst_1
            goto 7
         6: .line 289
      StackMap locals: java.lang.String java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String java.util.Map java.lang.String org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.io.File
      StackMap stack: new 4 new 4 java.io.File java.lang.String
            iconst_3
         7: .line 290
      StackMap locals: java.lang.String java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String java.util.Map java.lang.String org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.io.File
      StackMap stack: new 4 new 4 java.io.File java.lang.String int
            aload 3 /* accessRuleSet */
         8: .line 291
            aload 4 /* destinationPath */
            ifnull 9
            aload 4 /* destinationPath */
            ldc "none"
            if_acmpne 10
         9: .line 292
      StackMap locals: java.lang.String java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String java.util.Map java.lang.String org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.io.File
      StackMap stack: new 4 new 4 java.io.File java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet
            aload 4 /* destinationPath */
            goto 11
        10: .line 293
      StackMap locals: java.lang.String java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String java.util.Map java.lang.String org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.io.File
      StackMap stack: new 4 new 4 java.io.File java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet
            aload 4 /* destinationPath */
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.convertPathSeparators:(Ljava/lang/String;)Ljava/lang/String;
      StackMap locals: java.lang.String java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String java.util.Map java.lang.String org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.io.File
      StackMap stack: new 4 new 4 java.io.File java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String
        11: aload 5 /* options */
        12: .line 287
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathDirectory.<init>:(Ljava/io/File;Ljava/lang/String;ILorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;Ljava/util/Map;)V
            astore 7 /* result */
        13: .line 295
            goto 44
        14: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* classpathName */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.archiveFormat:(Ljava/lang/String;)I
            istore 9 /* format */
        start local 9 // int format
        15: .line 297
            iload 9 /* format */
            ifne 42
        16: .line 298
            iload 2 /* isSourceOnly */
            ifeq 24
        17: .line 300
            new org.eclipse.jdt.internal.compiler.batch.ClasspathSourceJar
            dup
            aload 8 /* file */
            iconst_1
            aload 3 /* accessRuleSet */
        18: .line 301
            aload 1 /* encoding */
        19: .line 302
            aload 4 /* destinationPath */
            ifnull 20
            aload 4 /* destinationPath */
            ldc "none"
            if_acmpne 21
        20: .line 303
      StackMap locals: java.lang.String java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String java.util.Map java.lang.String org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.io.File int
      StackMap stack: new 17 new 17 java.io.File int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String
            aload 4 /* destinationPath */
            goto 22
        21: .line 304
      StackMap locals: java.lang.String java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String java.util.Map java.lang.String org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.io.File int
      StackMap stack: new 17 new 17 java.io.File int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String
            aload 4 /* destinationPath */
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.convertPathSeparators:(Ljava/lang/String;)Ljava/lang/String;
        22: .line 300
      StackMap locals: java.lang.String java.lang.String int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String java.util.Map java.lang.String org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.io.File int
      StackMap stack: new 17 new 17 java.io.File int org.eclipse.jdt.internal.compiler.env.AccessRuleSet java.lang.String java.lang.String
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathSourceJar.<init>:(Ljava/io/File;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;Ljava/lang/String;)V
            astore 7 /* result */
        23: .line 305
            goto 44
      StackMap locals:
      StackMap stack:
        24: aload 4 /* destinationPath */
            ifnonnull 44
        25: .line 307
            aload 0 /* classpathName */
            ldc "jrt-fs.jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 37
        26: .line 308
            getstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.JRT_CLASSPATH_CACHE:Ljava/util/HashMap;
            ifnonnull 29
        27: .line 309
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.JRT_CLASSPATH_CACHE:Ljava/util/HashMap;
        28: .line 310
            goto 30
        29: .line 311
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.JRT_CLASSPATH_CACHE:Ljava/util/HashMap;
            aload 8 /* file */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
            astore 7 /* result */
        30: .line 313
      StackMap locals:
      StackMap stack:
            aload 7 /* result */
            ifnonnull 44
        31: .line 314
            new org.eclipse.jdt.internal.compiler.batch.ClasspathJrt
            dup
            aload 8 /* file */
            iconst_1
            aload 3 /* accessRuleSet */
            aconst_null
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathJrt.<init>:(Ljava/io/File;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;)V
            astore 7 /* result */
        32: .line 316
            aload 7 /* result */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.initialize:()V
        33: .line 317
            goto 35
      StackMap locals:
      StackMap stack: java.io.IOException
        34: pop
        35: .line 320
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.JRT_CLASSPATH_CACHE:Ljava/util/HashMap;
            aload 8 /* file */
            aload 7 /* result */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 322
            goto 44
        37: .line 324
      StackMap locals:
      StackMap stack:
            aload 6 /* release */
            ifnonnull 39
        38: .line 325
            new org.eclipse.jdt.internal.compiler.batch.ClasspathJar
            dup
            aload 8 /* file */
            iconst_1
            aload 3 /* accessRuleSet */
            aconst_null
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathJar.<init>:(Ljava/io/File;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;)V
            goto 40
        39: .line 326
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar
            dup
            aload 8 /* file */
            iconst_1
            aload 3 /* accessRuleSet */
            aload 4 /* destinationPath */
            aload 6 /* release */
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathMultiReleaseJar.<init>:(Ljava/io/File;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;Ljava/lang/String;)V
        40: .line 323
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.compiler.batch.ClasspathJar
            astore 7 /* result */
        41: .line 329
            goto 44
      StackMap locals:
      StackMap stack:
        42: iload 9 /* format */
            iconst_1
            if_icmpne 44
        43: .line 330
            new org.eclipse.jdt.internal.compiler.batch.ClasspathJmod
            dup
            aload 8 /* file */
            iconst_1
            aload 3 /* accessRuleSet */
            aconst_null
            invokespecial org.eclipse.jdt.internal.compiler.batch.ClasspathJmod.<init>:(Ljava/io/File;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;)V
            areturn
        end local 9 // int format
        44: .line 334
      StackMap locals:
      StackMap stack:
            aload 7 /* result */
            areturn
        end local 8 // java.io.File file
        end local 7 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath result
        end local 6 // java.lang.String release
        end local 5 // java.util.Map options
        end local 4 // java.lang.String destinationPath
        end local 3 // org.eclipse.jdt.internal.compiler.env.AccessRuleSet accessRuleSet
        end local 2 // boolean isSourceOnly
        end local 1 // java.lang.String encoding
        end local 0 // java.lang.String classpathName
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   45     0    classpathName  Ljava/lang/String;
            0   45     1         encoding  Ljava/lang/String;
            0   45     2     isSourceOnly  Z
            0   45     3    accessRuleSet  Lorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;
            0   45     4  destinationPath  Ljava/lang/String;
            0   45     5          options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0   45     6          release  Ljava/lang/String;
            1   45     7           result  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            2   45     8             file  Ljava/io/File;
           15   44     9           format  I
      Exception table:
        from    to  target  type
          32    33      34  Class java.io.IOException
    Signature: (Ljava/lang/String;Ljava/lang/String;ZLorg/eclipse/jdt/internal/compiler/env/AccessRuleSet;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    MethodParameters:
                 Name  Flags
      classpathName    
      encoding         
      isSourceOnly     
      accessRuleSet    
      destinationPath  
      options          
      release          

  private void initializeKnownFileNames(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // java.lang.String[] initialFileNames
         0: .line 337
            aload 1 /* initialFileNames */
            ifnonnull 3
         1: .line 338
            aload 0 /* this */
            new java.util.HashSet
            dup
            iconst_0
            invokespecial java.util.HashSet.<init>:(I)V
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.knownFileNames:Ljava/util/Set;
         2: .line 339
            return
         3: .line 341
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.HashSet
            dup
            aload 1 /* initialFileNames */
            arraylength
            iconst_2
            imul
            invokespecial java.util.HashSet.<init>:(I)V
            putfield org.eclipse.jdt.internal.compiler.batch.FileSystem.knownFileNames:Ljava/util/Set;
         4: .line 342
            aload 1 /* initialFileNames */
            arraylength
            istore 2 /* i */
        start local 2 // int i
         5: goto 44
         6: .line 343
      StackMap locals: int
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* initialFileNames */
            iload 2 /* i */
            aaload
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* compilationUnitFile */
        start local 3 // java.io.File compilationUnitFile
         7: .line 344
            aconst_null
            astore 4 /* fileName */
        start local 4 // char[] fileName
         8: .line 346
            aload 3 /* compilationUnitFile */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 4 /* fileName */
         9: .line 347
            goto 12
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String[] int java.io.File char[]
      StackMap stack: java.io.IOException
        10: pop
        11: .line 349
            goto 44
        12: .line 351
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* matchingPathName */
        start local 5 // char[] matchingPathName
        13: .line 352
            bipush 46
            aload 4 /* fileName */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.lastIndexOf:(C[C)I
            istore 6 /* lastIndexOf */
        start local 6 // int lastIndexOf
        14: .line 353
            iload 6 /* lastIndexOf */
            iconst_m1
            if_icmpeq 16
        15: .line 354
            aload 4 /* fileName */
            iconst_0
            iload 6 /* lastIndexOf */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.subarray:([CII)[C
            astore 4 /* fileName */
        16: .line 356
      StackMap locals: char[] int
      StackMap stack:
            aload 4 /* fileName */
            bipush 92
            bipush 47
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.replace:([CCC)V
        17: .line 357
            iconst_0
            istore 7 /* globalPathMatches */
        start local 7 // boolean globalPathMatches
        18: .line 359
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        19: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            arraylength
            istore 9 /* max */
        start local 9 // int max
        20: goto 38
        21: .line 360
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 8 /* j */
            aaload
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.normalizedPath:()[C
            astore 10 /* matchCandidate */
        start local 10 // char[] matchCandidate
        22: .line 361
            iconst_0
            istore 11 /* currentPathMatch */
        start local 11 // boolean currentPathMatch
        23: .line 362
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 8 /* j */
            aaload
            instanceof org.eclipse.jdt.internal.compiler.batch.ClasspathDirectory
            ifeq 37
        24: .line 363
            aload 10 /* matchCandidate */
            aload 4 /* fileName */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.prefixEquals:([C[C)Z
            ifeq 37
        25: .line 364
            iconst_1
            istore 11 /* currentPathMatch */
        26: .line 365
            aload 5 /* matchingPathName */
            ifnonnull 29
        27: .line 366
            aload 10 /* matchCandidate */
            astore 5 /* matchingPathName */
        28: .line 367
            goto 35
        29: .line 368
      StackMap locals: char[] int
      StackMap stack:
            iload 11 /* currentPathMatch */
            ifeq 33
        30: .line 370
            aload 10 /* matchCandidate */
            arraylength
            aload 5 /* matchingPathName */
            arraylength
            if_icmple 35
        31: .line 372
            aload 10 /* matchCandidate */
            astore 5 /* matchingPathName */
        32: .line 374
            goto 35
        33: .line 376
      StackMap locals:
      StackMap stack:
            iload 7 /* globalPathMatches */
            ifne 35
            aload 10 /* matchCandidate */
            arraylength
            aload 5 /* matchingPathName */
            arraylength
            if_icmpge 35
        34: .line 377
            aload 10 /* matchCandidate */
            astore 5 /* matchingPathName */
        35: .line 381
      StackMap locals:
      StackMap stack:
            iload 11 /* currentPathMatch */
            ifeq 37
        36: .line 382
            iconst_1
            istore 7 /* globalPathMatches */
        end local 11 // boolean currentPathMatch
        end local 10 // char[] matchCandidate
        37: .line 359
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        38: iload 8 /* j */
            iload 9 /* max */
            if_icmplt 21
        end local 9 // int max
        end local 8 // int j
        39: .line 386
            aload 5 /* matchingPathName */
            ifnonnull 42
        40: .line 387
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.knownFileNames:Ljava/util/Set;
            new java.lang.String
            dup
            aload 4 /* fileName */
            invokespecial java.lang.String.<init>:([C)V
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        41: .line 388
            goto 43
        42: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.knownFileNames:Ljava/util/Set;
            new java.lang.String
            dup
            aload 4 /* fileName */
            aload 5 /* matchingPathName */
            arraylength
            aload 4 /* fileName */
            arraylength
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.subarray:([CII)[C
            invokespecial java.lang.String.<init>:([C)V
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        43: .line 391
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5
        end local 7 // boolean globalPathMatches
        end local 6 // int lastIndexOf
        end local 5 // char[] matchingPathName
        end local 4 // char[] fileName
        end local 3 // java.io.File compilationUnitFile
        44: .line 342
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String[] int
      StackMap stack:
            iinc 2 /* i */ -1
            iload 2 /* i */
            ifge 6
        end local 2 // int i
        45: .line 393
            return
        end local 1 // java.lang.String[] initialFileNames
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   46     0                 this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   46     1     initialFileNames  [Ljava/lang/String;
            5   45     2                    i  I
            7   44     3  compilationUnitFile  Ljava/io/File;
            8   44     4             fileName  [C
           13   44     5     matchingPathName  [C
           14   44     6          lastIndexOf  I
           18   44     7    globalPathMatches  Z
           19   39     8                    j  I
           20   39     9                  max  I
           22   37    10       matchCandidate  [C
           23   37    11     currentPathMatch  Z
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.IOException
    MethodParameters:
                  Name  Flags
      initialFileNames  

  public void scanForModules(org.eclipse.jdt.internal.compiler.parser.Parser);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/parser/Parser;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.parser.Parser parser
         0: .line 396
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            arraylength
            istore 3 /* max */
        start local 3 // int max
         2: goto 8
         3: .line 397
      StackMap locals: int int
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 2 /* i */
            aaload
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getPath:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* file */
        start local 4 // java.io.File file
         4: .line 398
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 2 /* i */
            aaload
            aload 4 /* file */
            aload 1 /* parser */
            iconst_0
            aconst_null
            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 5 /* iModule */
        start local 5 // org.eclipse.jdt.internal.compiler.env.IModule iModule
         5: .line 399
            aload 5 /* iModule */
            ifnull 7
         6: .line 400
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            aload 5 /* iModule */
            invokeinterface org.eclipse.jdt.internal.compiler.env.IModule.name:()[C
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 2 /* i */
            aaload
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // org.eclipse.jdt.internal.compiler.env.IModule iModule
        end local 4 // java.io.File file
         7: .line 396
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            iload 3 /* max */
            if_icmplt 3
        end local 3 // int max
        end local 2 // int i
         9: .line 402
            return
        end local 1 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   10     1   parser  Lorg/eclipse/jdt/internal/compiler/parser/Parser;
            1    9     2        i  I
            2    9     3      max  I
            4    7     4     file  Ljava/io/File;
            5    7     5  iModule  Lorg/eclipse/jdt/internal/compiler/env/IModule;
    MethodParameters:
        Name  Flags
      parser  

  public void cleanup();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
         0: .line 405
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            arraylength
            istore 2 /* max */
        start local 2 // int max
         2: goto 5
         3: .line 406
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 1 /* i */
            aaload
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.reset:()V
         4: .line 405
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 1 /* i */
            iload 2 /* max */
            if_icmplt 3
        end local 2 // int max
        end local 1 // int i
         6: .line 407
            return
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            1    6     1     i  I
            2    6     2   max  I

  private static java.lang.String convertPathSeparators(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String path
         0: .line 409
            getstatic java.io.File.separatorChar:C
            bipush 47
            if_icmpne 2
         1: .line 410
            aload 0 /* path */
            bipush 92
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            goto 3
         2: .line 411
      StackMap locals:
      StackMap stack:
            aload 0 /* path */
            bipush 47
            bipush 92
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
         3: .line 409
      StackMap locals:
      StackMap stack: java.lang.String
            areturn
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  private org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer findClass(java.lang.String, char[], boolean, char[]);
    descriptor: (Ljava/lang/String;[CZ[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // java.lang.String qualifiedTypeName
        start local 2 // char[] typeName
        start local 3 // boolean asBinaryOnly
        start local 4 // char[] moduleName
         0: .line 414
            aload 0 /* this */
            aload 1 /* qualifiedTypeName */
            aload 2 /* typeName */
            iload 3 /* asBinaryOnly */
            aload 4 /* moduleName */
            invokevirtual org.eclipse.jdt.internal.compiler.batch.FileSystem.internalFindClass:(Ljava/lang/String;[CZ[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            astore 5 /* answer */
        start local 5 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer answer
         1: .line 415
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.annotationsFromClasspath:Z
            ifeq 37
            aload 5 /* answer */
            ifnull 37
            aload 5 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.getBinaryType:()Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
            instanceof org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader
            ifeq 37
         2: .line 416
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            arraylength
            istore 7 /* length */
        start local 7 // int length
         4: goto 35
         5: .line 417
      StackMap locals: org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 6 /* i */
            aaload
            astore 8 /* classpathEntry */
        start local 8 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpathEntry
         6: .line 418
            aload 8 /* classpathEntry */
            aload 1 /* qualifiedTypeName */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.hasAnnotationFileFor:(Ljava/lang/String;)Z
            ifeq 34
         7: .line 420
            aload 8 /* classpathEntry */
            instanceof org.eclipse.jdt.internal.compiler.batch.ClasspathJar
            ifeq 8
            aload 8 /* classpathEntry */
            checkcast org.eclipse.jdt.internal.compiler.batch.ClasspathJar
            getfield org.eclipse.jdt.internal.compiler.batch.ClasspathJar.zipFile:Ljava/util/zip/ZipFile;
            goto 9
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
      StackMap stack:
         8: aconst_null
      StackMap locals:
      StackMap stack: java.util.zip.ZipFile
         9: astore 9 /* zip */
        start local 9 // java.util.zip.ZipFile zip
        10: .line 421
            iconst_0
            istore 10 /* shouldClose */
        start local 10 // boolean shouldClose
        11: .line 423
            aload 9 /* zip */
            ifnonnull 14
        12: .line 424
            aload 8 /* classpathEntry */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getPath:()Ljava/lang/String;
            aconst_null
            invokestatic org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator.getAnnotationZipFile:(Ljava/lang/String;Lorg/eclipse/jdt/internal/compiler/classfmt/ExternalAnnotationDecorator$ZipFileProducer;)Ljava/util/zip/ZipFile;
            astore 9 /* zip */
        13: .line 425
            iconst_1
            istore 10 /* shouldClose */
        14: .line 427
      StackMap locals: java.util.zip.ZipFile int
      StackMap stack:
            aload 5 /* answer */
            aload 5 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.getBinaryType:()Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
            aload 8 /* classpathEntry */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getPath:()Ljava/lang/String;
        15: .line 428
            aload 1 /* qualifiedTypeName */
            aload 9 /* zip */
        16: .line 427
            invokestatic org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator.create:(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;Ljava/lang/String;Ljava/lang/String;Ljava/util/zip/ZipFile;)Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.setBinaryType:(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;)V
        17: .line 429
            aload 5 /* answer */
            astore 12
        18: .line 433
            iload 10 /* shouldClose */
            ifeq 22
            aload 9 /* zip */
            ifnull 22
        19: .line 435
            aload 9 /* zip */
            invokevirtual java.util.zip.ZipFile.close:()V
        20: .line 436
            goto 22
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String char[] int char[] org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.util.zip.ZipFile int top org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer
      StackMap stack: java.io.IOException
        21: pop
        22: .line 429
      StackMap locals:
      StackMap stack:
            aload 12
            areturn
        23: .line 430
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String char[] int char[] org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.util.zip.ZipFile int
      StackMap stack: java.io.IOException
            pop
        24: .line 433
            iload 10 /* shouldClose */
            ifeq 34
            aload 9 /* zip */
            ifnull 34
        25: .line 435
            aload 9 /* zip */
            invokevirtual java.util.zip.ZipFile.close:()V
        26: .line 436
            goto 34
      StackMap locals:
      StackMap stack: java.io.IOException
        27: pop
            goto 34
        28: .line 432
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        29: .line 433
            iload 10 /* shouldClose */
            ifeq 33
            aload 9 /* zip */
            ifnull 33
        30: .line 435
            aload 9 /* zip */
            invokevirtual java.util.zip.ZipFile.close:()V
        31: .line 436
            goto 33
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String char[] int char[] org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath java.util.zip.ZipFile int java.lang.Throwable
      StackMap stack: java.io.IOException
        32: pop
        33: .line 437
      StackMap locals:
      StackMap stack:
            aload 11
            athrow
        end local 10 // boolean shouldClose
        end local 9 // java.util.zip.ZipFile zip
        end local 8 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpathEntry
        34: .line 416
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String char[] int char[] org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer int int
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 6 /* i */
            iload 7 /* length */
            if_icmplt 5
        end local 7 // int length
        end local 6 // int i
        36: .line 441
            aload 5 /* answer */
            new org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator
            dup
            aload 5 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.getBinaryType:()Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
            aconst_null
            invokespecial org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator.<init>:(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;Lorg/eclipse/jdt/internal/compiler/classfmt/ExternalAnnotationProvider;)V
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.setBinaryType:(Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;)V
        37: .line 443
      StackMap locals:
      StackMap stack:
            aload 5 /* answer */
            areturn
        end local 5 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer answer
        end local 4 // char[] moduleName
        end local 3 // boolean asBinaryOnly
        end local 2 // char[] typeName
        end local 1 // java.lang.String qualifiedTypeName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   38     0               this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   38     1  qualifiedTypeName  Ljava/lang/String;
            0   38     2           typeName  [C
            0   38     3       asBinaryOnly  Z
            0   38     4         moduleName  [C
            1   38     5             answer  Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            3   36     6                  i  I
            4   36     7             length  I
            6   34     8     classpathEntry  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           10   34     9                zip  Ljava/util/zip/ZipFile;
           11   34    10        shouldClose  Z
      Exception table:
        from    to  target  type
          19    20      21  Class java.io.IOException
          11    18      23  Class java.io.IOException
          25    26      27  Class java.io.IOException
          11    18      28  any
          23    24      28  any
          30    31      32  Class java.io.IOException
    MethodParameters:
                   Name  Flags
      qualifiedTypeName  
      typeName           
      asBinaryOnly       
      moduleName         

  private org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer internalFindClass(java.lang.String, char[], boolean, char[]);
    descriptor: (Ljava/lang/String;[CZ[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=15, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // java.lang.String qualifiedTypeName
        start local 2 // char[] typeName
        start local 3 // boolean asBinaryOnly
        start local 4 // char[] moduleName
         0: .line 446
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.knownFileNames:Ljava/util/Set;
            aload 1 /* qualifiedTypeName */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 1
            aconst_null
            areturn
         1: .line 448
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* qualifiedTypeName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* qualifiedBinaryFileName */
        start local 5 // java.lang.String qualifiedBinaryFileName
         2: .line 450
            aload 1 /* qualifiedTypeName */
            invokevirtual java.lang.String.length:()I
            aload 2 /* typeName */
            arraylength
            if_icmpne 4
         3: .line 451
            getstatic org.eclipse.jdt.internal.compiler.util.Util.EMPTY_STRING:Ljava/lang/String;
            goto 5
         4: .line 452
      StackMap locals: java.lang.String
      StackMap stack:
            aload 5 /* qualifiedBinaryFileName */
            iconst_0
            aload 1 /* qualifiedTypeName */
            invokevirtual java.lang.String.length:()I
            aload 2 /* typeName */
            arraylength
            isub
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
         5: .line 449
      StackMap locals:
      StackMap stack: java.lang.String
            astore 6 /* qualifiedPackageName */
        start local 6 // java.lang.String qualifiedPackageName
         6: .line 454
            aload 4 /* moduleName */
            invokestatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.get:([C)Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            astore 7 /* strategy */
        start local 7 // org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy strategy
         7: .line 455
            aload 7 /* strategy */
            getstatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.Named:Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            if_acmpne 14
         8: .line 456
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            ifnull 13
         9: .line 458
            aload 4 /* moduleName */
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            astore 8 /* moduleNameString */
        start local 8 // java.lang.String moduleNameString
        10: .line 459
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            aload 8 /* moduleNameString */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
            astore 9 /* classpath */
        start local 9 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
        11: .line 460
            aload 9 /* classpath */
            ifnull 13
        12: .line 461
            aload 9 /* classpath */
            aload 2 /* typeName */
            aload 6 /* qualifiedPackageName */
            aload 8 /* moduleNameString */
            aload 5 /* qualifiedBinaryFileName */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.findClass:([CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            areturn
        end local 9 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
        end local 8 // java.lang.String moduleNameString
        13: .line 464
      StackMap locals: java.lang.String org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy
      StackMap stack:
            aconst_null
            areturn
        14: .line 466
      StackMap locals:
      StackMap stack:
            getstatic java.io.File.separatorChar:C
            bipush 47
            if_icmpne 15
            aload 6 /* qualifiedPackageName */
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 6 /* qualifiedPackageName */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        16: astore 8 /* qp2 */
        start local 8 // java.lang.String qp2
        17: .line 467
            aconst_null
            astore 9 /* suggestedAnswer */
        start local 9 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer suggestedAnswer
        18: .line 468
            aload 6 /* qualifiedPackageName */
            aload 8 /* qp2 */
            if_acmpne 36
        19: .line 469
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        20: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            arraylength
            istore 11 /* length */
        start local 11 // int length
        21: goto 34
        22: .line 470
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem java.lang.String char[] int char[] java.lang.String java.lang.String org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy java.lang.String org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer int int
      StackMap stack:
            aload 7 /* strategy */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 10 /* i */
            aaload
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  org/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath.hasModule()Z (9 itf)
                  (Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;)Z
            invokevirtual org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.matches:(Ljava/lang/Object;Ljava/util/function/Predicate;)Z
            ifne 24
        23: .line 471
            goto 33
        24: .line 472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 10 /* i */
            aaload
            aload 2 /* typeName */
            aload 6 /* qualifiedPackageName */
            aconst_null
            aload 5 /* qualifiedBinaryFileName */
            iload 3 /* asBinaryOnly */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.findClass:([CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            astore 12 /* answer */
        start local 12 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer answer
        25: .line 473
            aload 12 /* answer */
            ifnull 33
        26: .line 474
            aload 12 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.moduleName:()[C
            ifnull 28
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            aload 12 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.moduleName:()[C
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 28
        27: .line 475
            goto 33
        28: .line 476
      StackMap locals: org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer
      StackMap stack:
            aload 12 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.ignoreIfBetter:()Z
            ifne 31
        29: .line 477
            aload 12 /* answer */
            aload 9 /* suggestedAnswer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.isBetter:(Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;)Z
            ifeq 33
        30: .line 478
            aload 12 /* answer */
            areturn
        31: .line 479
      StackMap locals:
      StackMap stack:
            aload 12 /* answer */
            aload 9 /* suggestedAnswer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.isBetter:(Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;)Z
            ifeq 33
        32: .line 481
            aload 12 /* answer */
            astore 9 /* suggestedAnswer */
        end local 12 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer answer
        33: .line 469
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 10 /* i */
            iload 11 /* length */
            if_icmplt 22
        end local 11 // int length
        end local 10 // int i
        35: .line 484
            goto 57
        36: .line 485
      StackMap locals:
      StackMap stack:
            aload 5 /* qualifiedBinaryFileName */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 10 /* qb2 */
        start local 10 // java.lang.String qb2
        37: .line 486
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        38: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            arraylength
            istore 12 /* length */
        start local 12 // int length
        39: goto 56
        40: .line 487
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 11 /* i */
            aaload
            astore 13 /* p */
        start local 13 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath p
        41: .line 488
            aload 7 /* strategy */
            aload 13 /* p */
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  org/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath.hasModule()Z (9 itf)
                  (Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;)Z
            invokevirtual org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.matches:(Ljava/lang/Object;Ljava/util/function/Predicate;)Z
            ifne 43
        42: .line 489
            goto 55
        43: .line 490
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
      StackMap stack:
            aload 13 /* p */
            instanceof org.eclipse.jdt.internal.compiler.batch.ClasspathDirectory
            ifne 45
        44: .line 491
            aload 13 /* p */
            aload 2 /* typeName */
            aload 6 /* qualifiedPackageName */
            aconst_null
            aload 5 /* qualifiedBinaryFileName */
            iload 3 /* asBinaryOnly */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.findClass:([CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            goto 46
        45: .line 492
      StackMap locals:
      StackMap stack:
            aload 13 /* p */
            aload 2 /* typeName */
            aload 8 /* qp2 */
            aconst_null
            aload 10 /* qb2 */
            iload 3 /* asBinaryOnly */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.findClass:([CLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
        46: .line 490
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer
            astore 14 /* answer */
        start local 14 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer answer
        47: .line 493
            aload 14 /* answer */
            ifnull 55
        48: .line 494
            aload 14 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.moduleName:()[C
            ifnull 50
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            aload 14 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.moduleName:()[C
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 50
        49: .line 495
            goto 55
        50: .line 496
      StackMap locals: org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer
      StackMap stack:
            aload 14 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.ignoreIfBetter:()Z
            ifne 53
        51: .line 497
            aload 14 /* answer */
            aload 9 /* suggestedAnswer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.isBetter:(Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;)Z
            ifeq 55
        52: .line 498
            aload 14 /* answer */
            areturn
        53: .line 499
      StackMap locals:
      StackMap stack:
            aload 14 /* answer */
            aload 9 /* suggestedAnswer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.isBetter:(Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;)Z
            ifeq 55
        54: .line 501
            aload 14 /* answer */
            astore 9 /* suggestedAnswer */
        end local 14 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer answer
        end local 13 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath p
        55: .line 486
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        56: iload 11 /* i */
            iload 12 /* length */
            if_icmplt 40
        end local 12 // int length
        end local 11 // int i
        end local 10 // java.lang.String qb2
        57: .line 505
      StackMap locals:
      StackMap stack:
            aload 9 /* suggestedAnswer */
            areturn
        end local 9 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer suggestedAnswer
        end local 8 // java.lang.String qp2
        end local 7 // org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy strategy
        end local 6 // java.lang.String qualifiedPackageName
        end local 5 // java.lang.String qualifiedBinaryFileName
        end local 4 // char[] moduleName
        end local 3 // boolean asBinaryOnly
        end local 2 // char[] typeName
        end local 1 // java.lang.String qualifiedTypeName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   58     0                     this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   58     1        qualifiedTypeName  Ljava/lang/String;
            0   58     2                 typeName  [C
            0   58     3             asBinaryOnly  Z
            0   58     4               moduleName  [C
            2   58     5  qualifiedBinaryFileName  Ljava/lang/String;
            6   58     6     qualifiedPackageName  Ljava/lang/String;
            7   58     7                 strategy  Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
           10   13     8         moduleNameString  Ljava/lang/String;
           11   13     9                classpath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           17   58     8                      qp2  Ljava/lang/String;
           18   58     9          suggestedAnswer  Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
           20   35    10                        i  I
           21   35    11                   length  I
           25   33    12                   answer  Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
           37   57    10                      qb2  Ljava/lang/String;
           38   57    11                        i  I
           39   57    12                   length  I
           41   55    13                        p  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           47   55    14                   answer  Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
    MethodParameters:
                   Name  Flags
      qualifiedTypeName  
      typeName           
      asBinaryOnly       
      moduleName         

  public org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer findType(char[][], char[]);
    descriptor: ([[C[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // char[][] compoundName
        start local 2 // char[] moduleName
         0: .line 510
            aload 1 /* compoundName */
            ifnull 7
         1: .line 511
            aload 0 /* this */
         2: .line 512
            new java.lang.String
            dup
            aload 1 /* compoundName */
            bipush 47
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.concatWith:([[CC)[C
            invokespecial java.lang.String.<init>:([C)V
         3: .line 513
            aload 1 /* compoundName */
            aload 1 /* compoundName */
            arraylength
            iconst_1
            isub
            aaload
         4: .line 514
            iconst_0
         5: .line 515
            aload 2 /* moduleName */
         6: .line 511
            invokevirtual org.eclipse.jdt.internal.compiler.batch.FileSystem.findClass:(Ljava/lang/String;[CZ[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            areturn
         7: .line 516
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // char[] moduleName
        end local 1 // char[][] compoundName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0    8     1  compoundName  [[C
            0    8     2    moduleName  [C
    MethodParameters:
              Name  Flags
      compoundName  
      moduleName    

  public char[][][] findTypeNames(char[][]);
    descriptor: ([[C)[[[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // char[][] packageName
         0: .line 519
            aconst_null
            astore 2 /* result */
        start local 2 // char[][][] result
         1: .line 520
            aload 1 /* packageName */
            ifnull 41
         2: .line 521
            new java.lang.String
            dup
            aload 1 /* packageName */
            bipush 47
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.concatWith:([[CC)[C
            invokespecial java.lang.String.<init>:([C)V
            astore 3 /* qualifiedPackageName */
        start local 3 // java.lang.String qualifiedPackageName
         3: .line 522
            getstatic java.io.File.separatorChar:C
            bipush 47
            if_icmpne 4
            aload 3 /* qualifiedPackageName */
            goto 5
      StackMap locals: char[][][] java.lang.String
      StackMap stack:
         4: aload 3 /* qualifiedPackageName */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         5: astore 4 /* qualifiedPackageName2 */
        start local 4 // java.lang.String qualifiedPackageName2
         6: .line 523
            aload 3 /* qualifiedPackageName */
            aload 4 /* qualifiedPackageName2 */
            if_acmpne 22
         7: .line 524
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            arraylength
            istore 6 /* length */
        start local 6 // int length
         9: goto 20
        10: .line 525
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 5 /* i */
            aaload
            aload 3 /* qualifiedPackageName */
            aconst_null
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.findTypeNames:(Ljava/lang/String;Ljava/lang/String;)[[[C
            astore 7 /* answers */
        start local 7 // char[][][] answers
        11: .line 526
            aload 7 /* answers */
            ifnull 19
        12: .line 528
            aload 2 /* result */
            ifnonnull 15
        13: .line 529
            aload 7 /* answers */
            astore 2 /* result */
        14: .line 530
            goto 19
        15: .line 531
      StackMap locals: char[][][]
      StackMap stack:
            aload 2 /* result */
            arraylength
            istore 8 /* resultLength */
        start local 8 // int resultLength
        16: .line 532
            aload 7 /* answers */
            arraylength
            istore 9 /* answersLength */
        start local 9 // int answersLength
        17: .line 533
            aload 2 /* result */
            iconst_0
            iload 9 /* answersLength */
            iload 8 /* resultLength */
            iadd
            anewarray char[][]
            dup
            astore 2 /* result */
            iconst_0
            iload 8 /* resultLength */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        18: .line 534
            aload 7 /* answers */
            iconst_0
            aload 2 /* result */
            iload 8 /* resultLength */
            iload 9 /* answersLength */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 9 // int answersLength
        end local 8 // int resultLength
        end local 7 // char[][][] answers
        19: .line 524
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 5 /* i */
            iload 6 /* length */
            if_icmplt 10
        end local 6 // int length
        end local 5 // int i
        21: .line 538
            goto 41
        22: .line 539
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        23: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            arraylength
            istore 6 /* length */
        start local 6 // int length
        24: goto 40
        25: .line 540
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 5 /* i */
            aaload
            astore 7 /* p */
        start local 7 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath p
        26: .line 541
            aload 7 /* p */
            instanceof org.eclipse.jdt.internal.compiler.batch.ClasspathDirectory
            ifne 27
            aload 7 /* p */
            aload 3 /* qualifiedPackageName */
            aconst_null
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.findTypeNames:(Ljava/lang/String;Ljava/lang/String;)[[[C
            goto 28
        27: .line 542
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
      StackMap stack:
            aload 7 /* p */
            aload 4 /* qualifiedPackageName2 */
            aconst_null
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.findTypeNames:(Ljava/lang/String;Ljava/lang/String;)[[[C
        28: .line 541
      StackMap locals:
      StackMap stack: char[][][]
            astore 8 /* answers */
        start local 8 // char[][][] answers
        29: .line 543
            aload 8 /* answers */
            ifnull 39
        30: .line 545
            aload 2 /* result */
            ifnonnull 33
        31: .line 546
            aload 8 /* answers */
            astore 2 /* result */
        32: .line 547
            goto 39
        33: .line 548
      StackMap locals: char[][][]
      StackMap stack:
            aload 2 /* result */
            arraylength
            istore 9 /* resultLength */
        start local 9 // int resultLength
        34: .line 549
            aload 8 /* answers */
            arraylength
            istore 10 /* answersLength */
        start local 10 // int answersLength
        35: .line 550
            aload 2 /* result */
            iconst_0
            iload 10 /* answersLength */
            iload 9 /* resultLength */
            iadd
            anewarray char[][]
            dup
            astore 2 /* result */
            iconst_0
        36: .line 551
            iload 9 /* resultLength */
        37: .line 550
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        38: .line 552
            aload 8 /* answers */
            iconst_0
            aload 2 /* result */
            iload 9 /* resultLength */
            iload 10 /* answersLength */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 10 // int answersLength
        end local 9 // int resultLength
        end local 8 // char[][][] answers
        end local 7 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath p
        39: .line 539
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 5 /* i */
            iload 6 /* length */
            if_icmplt 25
        end local 6 // int length
        end local 5 // int i
        end local 4 // java.lang.String qualifiedPackageName2
        end local 3 // java.lang.String qualifiedPackageName
        41: .line 558
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem char[][] char[][][]
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // char[][][] result
        end local 1 // char[][] packageName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   42     0                   this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   42     1            packageName  [[C
            1   42     2                 result  [[[C
            3   41     3   qualifiedPackageName  Ljava/lang/String;
            6   41     4  qualifiedPackageName2  Ljava/lang/String;
            8   21     5                      i  I
            9   21     6                 length  I
           11   19     7                answers  [[[C
           16   19     8           resultLength  I
           17   19     9          answersLength  I
           23   41     5                      i  I
           24   41     6                 length  I
           26   39     7                      p  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           29   39     8                answers  [[[C
           34   39     9           resultLength  I
           35   39    10          answersLength  I
    MethodParameters:
             Name  Flags
      packageName  

  public org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer findType(char[], char[][], char[]);
    descriptor: ([C[[C[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // char[] typeName
        start local 2 // char[][] packageName
        start local 3 // char[] moduleName
         0: .line 563
            aload 1 /* typeName */
            ifnull 7
         1: .line 564
            aload 0 /* this */
         2: .line 565
            new java.lang.String
            dup
            aload 2 /* packageName */
            aload 1 /* typeName */
            bipush 47
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.concatWith:([[C[CC)[C
            invokespecial java.lang.String.<init>:([C)V
         3: .line 566
            aload 1 /* typeName */
         4: .line 567
            iconst_0
         5: .line 568
            aload 3 /* moduleName */
         6: .line 564
            invokevirtual org.eclipse.jdt.internal.compiler.batch.FileSystem.findClass:(Ljava/lang/String;[CZ[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            areturn
         7: .line 569
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // char[] moduleName
        end local 2 // char[][] packageName
        end local 1 // char[] typeName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0    8     1     typeName  [C
            0    8     2  packageName  [[C
            0    8     3   moduleName  [C
    MethodParameters:
             Name  Flags
      typeName     
      packageName  
      moduleName   

  public char[][] getModulesDeclaringPackage(char[][], char[]);
    descriptor: ([[C[C)[[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=13, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // char[][] packageName
        start local 2 // char[] moduleName
         0: .line 574
            new java.lang.String
            dup
            aload 1 /* packageName */
            bipush 47
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.concatWith:([[CC)[C
            invokespecial java.lang.String.<init>:([C)V
            astore 3 /* qualifiedPackageName */
        start local 3 // java.lang.String qualifiedPackageName
         1: .line 575
            aload 2 /* moduleName */
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            astore 4 /* moduleNameString */
        start local 4 // java.lang.String moduleNameString
         2: .line 577
            aload 2 /* moduleName */
            invokestatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.get:([C)Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            astore 5 /* strategy */
        start local 5 // org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy strategy
         3: .line 578
            aload 5 /* strategy */
            getstatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.Named:Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            if_acmpne 10
         4: .line 579
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            ifnull 9
         5: .line 581
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            aload 4 /* moduleNameString */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
            astore 6 /* classpath */
        start local 6 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
         6: .line 582
            aload 6 /* classpath */
            ifnull 9
         7: .line 583
            aload 6 /* classpath */
            aload 3 /* qualifiedPackageName */
            aload 4 /* moduleNameString */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.isPackage:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 9
         8: .line 584
            iconst_1
            anewarray char[]
            dup
            iconst_0
            aload 2 /* moduleName */
            aastore
            areturn
        end local 6 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
         9: .line 587
      StackMap locals: java.lang.String java.lang.String org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy
      StackMap stack:
            aconst_null
            areturn
        10: .line 590
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6 /* allNames */
        start local 6 // char[][] allNames
        11: .line 591
            iconst_0
            istore 7 /* hasUnobserable */
        start local 7 // boolean hasUnobserable
        12: .line 592
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 29
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem char[][] char[] java.lang.String java.lang.String org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy char[][] int top int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[]
      StackMap stack:
        13: aload 11
            iload 9
            aaload
            astore 8 /* cp */
        start local 8 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath cp
        14: .line 593
            aload 5 /* strategy */
            aload 8 /* cp */
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  org/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath.hasModule()Z (9 itf)
                  (Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;)Z
            invokevirtual org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.matches:(Ljava/lang/Object;Ljava/util/function/Predicate;)Z
            ifeq 28
        15: .line 594
            aload 5 /* strategy */
            getstatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.Unnamed:Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            if_acmpne 18
        16: .line 596
            aload 8 /* cp */
            aload 3 /* qualifiedPackageName */
            aload 4 /* moduleNameString */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.isPackage:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 28
        17: .line 597
            iconst_1
            anewarray char[]
            dup
            iconst_0
            getstatic org.eclipse.jdt.internal.compiler.lookup.ModuleBinding.UNNAMED:[C
            aastore
            areturn
        18: .line 599
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem char[][] char[] java.lang.String java.lang.String org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy char[][] int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[]
      StackMap stack:
            aload 8 /* cp */
            aload 3 /* qualifiedPackageName */
            aconst_null
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getModulesDeclaringPackage:(Ljava/lang/String;Ljava/lang/String;)[[C
            astore 12 /* declaringModules */
        start local 12 // char[][] declaringModules
        19: .line 600
            aload 12 /* declaringModules */
            ifnull 28
        20: .line 601
            aload 8 /* cp */
            instanceof org.eclipse.jdt.internal.compiler.batch.ClasspathJrt
            ifeq 25
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.hasLimitModules:Z
            ifeq 25
        21: .line 602
            aload 0 /* this */
            aload 12 /* declaringModules */
            invokevirtual org.eclipse.jdt.internal.compiler.batch.FileSystem.filterModules:([[C)[[C
            astore 12 /* declaringModules */
        22: .line 603
            iload 7 /* hasUnobserable */
            aload 12 /* declaringModules */
            ifnonnull 23
            iconst_1
            goto 24
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem char[][] char[] java.lang.String java.lang.String org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy char[][] int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] char[][]
      StackMap stack: int
        23: iconst_0
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem char[][] char[] java.lang.String java.lang.String org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy char[][] int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[] char[][]
      StackMap stack: int int
        24: ior
            istore 7 /* hasUnobserable */
        25: .line 605
      StackMap locals:
      StackMap stack:
            aload 6 /* allNames */
            ifnonnull 27
        26: .line 606
            aload 12 /* declaringModules */
            astore 6 /* allNames */
            goto 28
        27: .line 608
      StackMap locals:
      StackMap stack:
            aload 6 /* allNames */
            aload 12 /* declaringModules */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.arrayConcat:([[C[[C)[[C
            astore 6 /* allNames */
        end local 12 // char[][] declaringModules
        end local 8 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath cp
        28: .line 592
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem char[][] char[] java.lang.String java.lang.String org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy char[][] int top int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        29: iload 9
            iload 10
            if_icmplt 13
        30: .line 613
            aload 6 /* allNames */
            ifnonnull 32
            iload 7 /* hasUnobserable */
            ifeq 32
        31: .line 614
            iconst_1
            anewarray char[]
            dup
            iconst_0
            getstatic org.eclipse.jdt.internal.compiler.lookup.ModuleBinding.UNOBSERVABLE:[C
            aastore
            areturn
        32: .line 615
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem char[][] char[] java.lang.String java.lang.String org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy char[][] int
      StackMap stack:
            aload 6 /* allNames */
            areturn
        end local 7 // boolean hasUnobserable
        end local 6 // char[][] allNames
        end local 5 // org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy strategy
        end local 4 // java.lang.String moduleNameString
        end local 3 // java.lang.String qualifiedPackageName
        end local 2 // char[] moduleName
        end local 1 // char[][] packageName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   33     0                  this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   33     1           packageName  [[C
            0   33     2            moduleName  [C
            1   33     3  qualifiedPackageName  Ljava/lang/String;
            2   33     4      moduleNameString  Ljava/lang/String;
            3   33     5              strategy  Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            6    9     6             classpath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           11   33     6              allNames  [[C
           12   33     7        hasUnobserable  Z
           14   28     8                    cp  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           19   28    12      declaringModules  [[C
    MethodParameters:
             Name  Flags
      packageName  
      moduleName   

  private char[][] filterModules(char[][]);
    descriptor: ([[C)[[C
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // char[][] declaringModules
         0: .line 618
            aload 1 /* declaringModules */
            invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            aload 0 /* this */
            invokedynamic test(Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;)Ljava/util/function/Predicate;
              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;)Z
                  org/eclipse/jdt/internal/compiler/batch/FileSystem.lambda$4([C)Z (7)
                  ([C)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/IntFunction;
              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:
                  (I)Ljava/lang/Object;
                  org/eclipse/jdt/internal/compiler/batch/FileSystem.lambda$5(I)[[C (6)
                  (I)[[C
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast char[][]
            astore 2 /* filtered */
        start local 2 // char[][] filtered
         1: .line 619
            aload 2 /* filtered */
            arraylength
            ifne 3
         2: .line 620
            aconst_null
            areturn
         3: .line 621
      StackMap locals: char[][]
      StackMap stack:
            aload 2 /* filtered */
            areturn
        end local 2 // char[][] filtered
        end local 1 // char[][] declaringModules
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0    4     1  declaringModules  [[C
            1    4     2          filtered  [[C
    MethodParameters:
                  Name  Flags
      declaringModules  

  private org.eclipse.jdt.internal.compiler.parser.Parser getParser();
    descriptor: ()Lorg/eclipse/jdt/internal/compiler/parser/Parser;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
         0: .line 624
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* opts */
        start local 1 // java.util.Map opts
         1: .line 625
            aload 1 /* opts */
            ldc "org.eclipse.jdt.core.compiler.source"
            ldc "9"
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 626
            new org.eclipse.jdt.internal.compiler.parser.Parser
            dup
         3: .line 627
            new org.eclipse.jdt.internal.compiler.problem.ProblemReporter
            dup
            invokestatic org.eclipse.jdt.internal.compiler.DefaultErrorHandlingPolicies.exitOnFirstError:()Lorg/eclipse/jdt/internal/compiler/IErrorHandlingPolicy;
            new org.eclipse.jdt.internal.compiler.impl.CompilerOptions
            dup
            aload 1 /* opts */
            invokespecial org.eclipse.jdt.internal.compiler.impl.CompilerOptions.<init>:(Ljava/util/Map;)V
            new org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory
            dup
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokespecial org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory.<init>:(Ljava/util/Locale;)V
            invokespecial org.eclipse.jdt.internal.compiler.problem.ProblemReporter.<init>:(Lorg/eclipse/jdt/internal/compiler/IErrorHandlingPolicy;Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;Lorg/eclipse/jdt/internal/compiler/IProblemFactory;)V
         4: .line 628
            iconst_0
         5: .line 626
            invokespecial org.eclipse.jdt.internal.compiler.parser.Parser.<init>:(Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;Z)V
            areturn
        end local 1 // java.util.Map opts
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            1    6     1  opts  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public boolean hasCompilationUnit(char[][], char[], boolean);
    descriptor: ([[C[CZ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=11, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // char[][] qualifiedPackageName
        start local 2 // char[] moduleName
        start local 3 // boolean checkCUs
         0: .line 632
            aload 1 /* qualifiedPackageName */
            bipush 47
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.concatWith:([[CC)[C
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            astore 4 /* qPackageName */
        start local 4 // java.lang.String qPackageName
         1: .line 633
            aload 2 /* moduleName */
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            astore 5 /* moduleNameString */
        start local 5 // java.lang.String moduleNameString
         2: .line 634
            aload 2 /* moduleName */
            invokestatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.get:([C)Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            astore 6 /* strategy */
        start local 6 // org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy strategy
         3: .line 635
            iload 3 /* checkCUs */
            ifeq 4
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.compiler.batch.FileSystem.getParser:()Lorg/eclipse/jdt/internal/compiler/parser/Parser;
            goto 5
      StackMap locals: java.lang.String java.lang.String org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy
      StackMap stack:
         4: aconst_null
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.compiler.parser.Parser
         5: astore 7 /* parser */
        start local 7 // org.eclipse.jdt.internal.compiler.parser.Parser parser
         6: .line 636
            aload 7 /* parser */
            invokedynamic apply(Lorg/eclipse/jdt/internal/compiler/parser/Parser;)Ljava/util/function/Function;
              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;
                  org/eclipse/jdt/internal/compiler/batch/FileSystem.lambda$6(Lorg/eclipse/jdt/internal/compiler/parser/Parser;Lorg/eclipse/jdt/internal/compiler/batch/CompilationUnit;)Ljava/lang/String; (6)
                  (Lorg/eclipse/jdt/internal/compiler/batch/CompilationUnit;)Ljava/lang/String;
            astore 8 /* pkgNameExtractor */
        start local 8 // java.util.function.Function pkgNameExtractor
         7: .line 645
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.$SWITCH_TABLE$org$eclipse$jdt$internal$compiler$env$IModuleAwareNameEnvironment$LookupStrategy:()[I
            aload 6 /* strategy */
            invokevirtual org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.ordinal:()I
            iaload
            tableswitch { // 1 - 1
                    1: 8
              default: 15
          }
         8: .line 647
      StackMap locals: org.eclipse.jdt.internal.compiler.parser.Parser java.util.function.Function
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            ifnull 14
         9: .line 648
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            aload 5 /* moduleNameString */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
            astore 9 /* location */
        start local 9 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath location
        10: .line 649
            aload 9 /* location */
            ifnull 14
        11: .line 650
            iload 3 /* checkCUs */
            ifeq 12
            aload 9 /* location */
            aload 4 /* qPackageName */
            aload 8 /* pkgNameExtractor */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.hasCUDeclaringPackage:(Ljava/lang/String;Ljava/util/function/Function;)Z
            goto 13
        12: .line 651
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
      StackMap stack:
            aload 9 /* location */
            aload 4 /* qPackageName */
            aload 5 /* moduleNameString */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.hasCompilationUnit:(Ljava/lang/String;Ljava/lang/String;)Z
        13: .line 650
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 9 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath location
        14: .line 653
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        15: .line 655
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        16: goto 22
        17: .line 656
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 9 /* i */
            aaload
            astore 10 /* location */
        start local 10 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath location
        18: .line 657
            aload 6 /* strategy */
            aload 10 /* location */
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  org/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath.hasModule()Z (9 itf)
                  (Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;)Z
            invokevirtual org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.matches:(Ljava/lang/Object;Ljava/util/function/Predicate;)Z
            ifeq 21
        19: .line 658
            aload 10 /* location */
            aload 4 /* qPackageName */
            aload 5 /* moduleNameString */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.hasCompilationUnit:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 21
        20: .line 659
            iconst_1
            ireturn
        end local 10 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath location
        21: .line 655
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 9 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            arraylength
            if_icmplt 17
        end local 9 // int i
        23: .line 661
            iconst_0
            ireturn
        end local 8 // java.util.function.Function pkgNameExtractor
        end local 7 // org.eclipse.jdt.internal.compiler.parser.Parser parser
        end local 6 // org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy strategy
        end local 5 // java.lang.String moduleNameString
        end local 4 // java.lang.String qPackageName
        end local 3 // boolean checkCUs
        end local 2 // char[] moduleName
        end local 1 // char[][] qualifiedPackageName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   24     0                  this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   24     1  qualifiedPackageName  [[C
            0   24     2            moduleName  [C
            0   24     3              checkCUs  Z
            1   24     4          qPackageName  Ljava/lang/String;
            2   24     5      moduleNameString  Ljava/lang/String;
            3   24     6              strategy  Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            6   24     7                parser  Lorg/eclipse/jdt/internal/compiler/parser/Parser;
            7   24     8      pkgNameExtractor  Ljava/util/function/Function<Lorg/eclipse/jdt/internal/compiler/batch/CompilationUnit;Ljava/lang/String;>;
           10   14     9              location  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
           16   23     9                     i  I
           18   21    10              location  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    MethodParameters:
                      Name  Flags
      qualifiedPackageName  
      moduleName            
      checkCUs              

  public org.eclipse.jdt.internal.compiler.env.IModule getModule(char[]);
    descriptor: ([C)Lorg/eclipse/jdt/internal/compiler/env/IModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // char[] name
         0: .line 667
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.module:Lorg/eclipse/jdt/internal/compiler/env/IModule;
            ifnull 2
            aload 1 /* name */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.module:Lorg/eclipse/jdt/internal/compiler/env/IModule;
            invokeinterface org.eclipse.jdt.internal.compiler.env.IModule.name:()[C
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.equals:([C[C)Z
            ifeq 2
         1: .line 668
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.module:Lorg/eclipse/jdt/internal/compiler/env/IModule;
            areturn
         2: .line 670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            new java.lang.String
            dup
            aload 1 /* name */
            invokespecial java.lang.String.<init>:([C)V
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 10
         3: .line 671
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 9
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem char[] top int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[]
      StackMap stack:
         4: aload 5
            iload 3
            aaload
            astore 2 /* classpath */
        start local 2 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
         5: .line 672
            aload 2 /* classpath */
            aload 1 /* name */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getModule:([C)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            astore 6 /* mod */
        start local 6 // org.eclipse.jdt.internal.compiler.env.IModule mod
         6: .line 673
            aload 6 /* mod */
            ifnull 8
         7: .line 674
            aload 6 /* mod */
            areturn
        end local 6 // org.eclipse.jdt.internal.compiler.env.IModule mod
        end local 2 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
         8: .line 671
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         9: iload 3
            iload 4
            if_icmplt 4
        10: .line 678
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem char[]
      StackMap stack:
            aconst_null
            areturn
        end local 1 // char[] name
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   11     1       name  [C
            5    8     2  classpath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            6    8     6        mod  Lorg/eclipse/jdt/internal/compiler/env/IModule;
    MethodParameters:
      Name  Flags
      name  

  public org.eclipse.jdt.internal.compiler.env.IModule getModuleFromEnvironment(char[]);
    descriptor: ([C)Lorg/eclipse/jdt/internal/compiler/env/IModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // char[] name
         0: .line 681
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.module:Lorg/eclipse/jdt/internal/compiler/env/IModule;
            ifnull 2
            aload 1 /* name */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.module:Lorg/eclipse/jdt/internal/compiler/env/IModule;
            invokeinterface org.eclipse.jdt.internal.compiler.env.IModule.name:()[C
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.equals:([C[C)Z
            ifeq 2
         1: .line 682
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.module:Lorg/eclipse/jdt/internal/compiler/env/IModule;
            areturn
         2: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem char[] top int int org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* classpath */
        start local 2 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
         4: .line 685
            aload 2 /* classpath */
            aload 1 /* name */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getModule:([C)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            astore 6 /* mod */
        start local 6 // org.eclipse.jdt.internal.compiler.env.IModule mod
         5: .line 686
            aload 6 /* mod */
            ifnull 7
         6: .line 687
            aload 6 /* mod */
            areturn
        end local 6 // org.eclipse.jdt.internal.compiler.env.IModule mod
        end local 2 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
         7: .line 684
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 3
         9: .line 690
            aconst_null
            areturn
        end local 1 // char[] name
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0   10     1       name  [C
            4    7     2  classpath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            5    7     6        mod  Lorg/eclipse/jdt/internal/compiler/env/IModule;
    MethodParameters:
      Name  Flags
      name  

  public char[][] getAllAutomaticModules();
    descriptor: ()[[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
         0: .line 695
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* set */
        start local 1 // java.util.Set set
         1: .line 696
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            arraylength
            istore 3 /* l */
        start local 3 // int l
         3: goto 7
         4: .line 697
      StackMap locals: java.util.Set int int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 2 /* i */
            aaload
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.isAutomaticModule:()Z
            ifeq 6
         5: .line 698
            aload 1 /* set */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.classpaths:[Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
            iload 2 /* i */
            aaload
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.getModule:()Lorg/eclipse/jdt/internal/compiler/env/IModule;
            invokeinterface org.eclipse.jdt.internal.compiler.env.IModule.name:()[C
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 696
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            iload 3 /* l */
            if_icmplt 4
        end local 3 // int l
        end local 2 // int i
         8: .line 701
            aload 1 /* set */
            aload 1 /* set */
            invokeinterface java.util.Set.size:()I
            anewarray char[]
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast char[][]
            areturn
        end local 1 // java.util.Set set
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            1    9     1   set  Ljava/util/Set<[C>;
            2    8     2     i  I
            3    8     3     l  I

  public char[][] listPackages(char[]);
    descriptor: ([C)[[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // char[] moduleName
         0: .line 706
            invokestatic org.eclipse.jdt.internal.compiler.batch.FileSystem.$SWITCH_TABLE$org$eclipse$jdt$internal$compiler$env$IModuleAwareNameEnvironment$LookupStrategy:()[I
            aload 1 /* moduleName */
            invokestatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.get:([C)Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            invokevirtual org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.ordinal:()I
            iaload
            tableswitch { // 1 - 1
                    1: 1
              default: 5
          }
         1: .line 708
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            new java.lang.String
            dup
            aload 1 /* moduleName */
            invokespecial java.lang.String.<init>:([C)V
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
            astore 2 /* classpath */
        start local 2 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
         2: .line 709
            aload 2 /* classpath */
            ifnull 4
         3: .line 710
            aload 2 /* classpath */
            invokeinterface org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath.listPackages:()[[C
            areturn
         4: .line 711
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath
      StackMap stack:
            getstatic org.eclipse.jdt.core.compiler.CharOperation.NO_CHAR_CHAR:[[C
            areturn
        end local 2 // org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath classpath
         5: .line 713
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            ldc "can list packages only of a named module"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // char[] moduleName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0    6     1  moduleName  [C
            2    5     2   classpath  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem$Classpath;
    MethodParameters:
            Name  Flags
      moduleName  

  void addModuleUpdate(java.lang.String, java.util.function.Consumer<org.eclipse.jdt.internal.compiler.env.IUpdatableModule>, org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdateKind);
    descriptor: (Ljava/lang/String;Ljava/util/function/Consumer;Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule$UpdateKind;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // java.lang.String moduleName
        start local 2 // java.util.function.Consumer update
        start local 3 // org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdateKind kind
         0: .line 718
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleUpdates:Ljava/util/Map;
            aload 1 /* moduleName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind
            astore 4 /* updates */
        start local 4 // org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind updates
         1: .line 719
            aload 4 /* updates */
            ifnonnull 3
         2: .line 720
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleUpdates:Ljava/util/Map;
            aload 1 /* moduleName */
            new org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind
            dup
            invokespecial org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind.<init>:()V
            dup
            astore 4 /* updates */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 722
      StackMap locals: org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind
      StackMap stack:
            aload 4 /* updates */
            aload 3 /* kind */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind.getList:(Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule$UpdateKind;Z)Ljava/util/List;
            aload 2 /* update */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 723
            return
        end local 4 // org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind updates
        end local 3 // org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdateKind kind
        end local 2 // java.util.function.Consumer update
        end local 1 // java.lang.String moduleName
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0    5     1  moduleName  Ljava/lang/String;
            0    5     2      update  Ljava/util/function/Consumer<Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule;>;
            0    5     3        kind  Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule$UpdateKind;
            1    5     4     updates  Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule$UpdatesByKind;
    Signature: (Ljava/lang/String;Ljava/util/function/Consumer<Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule;>;Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule$UpdateKind;)V
    MethodParameters:
            Name  Flags
      moduleName  
      update      
      kind        

  public void applyModuleUpdates(org.eclipse.jdt.internal.compiler.env.IUpdatableModule, org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdateKind);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule;Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule$UpdateKind;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.env.IUpdatableModule compilerModule
        start local 2 // org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdateKind kind
         0: .line 726
            aload 1 /* compilerModule */
            invokeinterface org.eclipse.jdt.internal.compiler.env.IUpdatableModule.name:()[C
            astore 3 /* name */
        start local 3 // char[] name
         1: .line 727
            aload 3 /* name */
            getstatic org.eclipse.jdt.internal.compiler.lookup.ModuleBinding.UNNAMED:[C
            if_acmpeq 8
         2: .line 728
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleUpdates:Ljava/util/Map;
            aload 3 /* name */
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind
            astore 4 /* updates */
        start local 4 // org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind updates
         3: .line 729
            aload 4 /* updates */
            ifnull 8
         4: .line 730
            aload 4 /* updates */
            aload 2 /* kind */
            iconst_0
            invokevirtual org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind.getList:(Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule$UpdateKind;Z)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem org.eclipse.jdt.internal.compiler.env.IUpdatableModule org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdateKind char[] org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.function.Consumer
            astore 5 /* update */
        start local 5 // java.util.function.Consumer update
         6: .line 731
            aload 5 /* update */
            aload 1 /* compilerModule */
            invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
        end local 5 // java.util.function.Consumer update
         7: .line 730
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 4 // org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind updates
         8: .line 734
      StackMap locals: org.eclipse.jdt.internal.compiler.batch.FileSystem org.eclipse.jdt.internal.compiler.env.IUpdatableModule org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdateKind char[]
      StackMap stack:
            return
        end local 3 // char[] name
        end local 2 // org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdateKind kind
        end local 1 // org.eclipse.jdt.internal.compiler.env.IUpdatableModule compilerModule
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0    9     1  compilerModule  Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule;
            0    9     2            kind  Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule$UpdateKind;
            1    9     3            name  [C
            3    8     4         updates  Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule$UpdatesByKind;
            6    7     5          update  Ljava/util/function/Consumer<Lorg/eclipse/jdt/internal/compiler/env/IUpdatableModule;>;
    MethodParameters:
                Name  Flags
      compilerModule  
      kind            

  static int[] $SWITCH_TABLE$org$eclipse$jdt$internal$compiler$env$IModuleAwareNameEnvironment$LookupStrategy();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 59
            getstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.$SWITCH_TABLE$org$eclipse$jdt$internal$compiler$env$IModuleAwareNameEnvironment$LookupStrategy:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.values:()[Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.Any:Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            invokevirtual org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.AnyNamed:Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            invokevirtual org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.Named:Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            invokevirtual org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.Unnamed:Lorg/eclipse/jdt/internal/compiler/env/IModuleAwareNameEnvironment$LookupStrategy;
            invokevirtual org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic org.eclipse.jdt.internal.compiler.batch.FileSystem.$SWITCH_TABLE$org$eclipse$jdt$internal$compiler$env$IModuleAwareNameEnvironment$LookupStrategy:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  private org.eclipse.jdt.internal.compiler.env.IModule lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/eclipse/jdt/internal/compiler/env/IModule;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // java.lang.String m
         0: .line 256
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.internal.compiler.batch.FileSystem.getModuleFromEnvironment:([C)Lorg/eclipse/jdt/internal/compiler/env/IModule;
            areturn
        end local 1 // java.lang.String m
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0    1     1     m  Ljava/lang/String;

  private boolean lambda$4(char[]);
    descriptor: ([C)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
        start local 1 // char[] m
         0: .line 618
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.batch.FileSystem.moduleLocations:Ljava/util/Map;
            new java.lang.String
            dup
            aload 1 /* m */
            invokespecial java.lang.String.<init>:([C)V
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // char[] m
        end local 0 // org.eclipse.jdt.internal.compiler.batch.FileSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/batch/FileSystem;
            0    1     1     m  [C

  private static char[][] lambda$5(int);
    descriptor: (I)[[C
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray char[]
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.String lambda$6(org.eclipse.jdt.internal.compiler.parser.Parser, org.eclipse.jdt.internal.compiler.batch.CompilationUnit);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/parser/Parser;Lorg/eclipse/jdt/internal/compiler/batch/CompilationUnit;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=5, args_size=2
        start local 1 // org.eclipse.jdt.internal.compiler.batch.CompilationUnit sourceUnit
         0: .line 637
            aconst_null
            astore 2 /* pkgName */
        start local 2 // java.lang.String pkgName
         1: .line 638
            new org.eclipse.jdt.internal.compiler.CompilationResult
            dup
            aload 1 /* sourceUnit */
            iconst_0
            iconst_0
            iconst_1
            invokespecial org.eclipse.jdt.internal.compiler.CompilationResult.<init>:(Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;III)V
            astore 3 /* compilationResult */
        start local 3 // org.eclipse.jdt.internal.compiler.CompilationResult compilationResult
         2: .line 639
            aload 0
            aload 1 /* sourceUnit */
            invokevirtual org.eclipse.jdt.internal.compiler.batch.CompilationUnit.getContents:()[C
            aload 3 /* compilationResult */
            invokevirtual org.eclipse.jdt.internal.compiler.parser.Parser.parsePackageDeclaration:([CLorg/eclipse/jdt/internal/compiler/CompilationResult;)[[C
            astore 4 /* name */
        start local 4 // char[][] name
         3: .line 640
            aload 4 /* name */
            ifnull 5
         4: .line 641
            aload 4 /* name */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.toString:([[C)Ljava/lang/String;
            astore 2 /* pkgName */
         5: .line 643
      StackMap locals: java.lang.String org.eclipse.jdt.internal.compiler.CompilationResult char[][]
      StackMap stack:
            aload 2 /* pkgName */
            areturn
        end local 4 // char[][] name
        end local 3 // org.eclipse.jdt.internal.compiler.CompilationResult compilationResult
        end local 2 // java.lang.String pkgName
        end local 1 // org.eclipse.jdt.internal.compiler.batch.CompilationUnit sourceUnit
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     1         sourceUnit  Lorg/eclipse/jdt/internal/compiler/batch/CompilationUnit;
            1    6     2            pkgName  Ljava/lang/String;
            2    6     3  compilationResult  Lorg/eclipse/jdt/internal/compiler/CompilationResult;
            3    6     4               name  [[C
}
SourceFile: "FileSystem.java"
NestMembers:
  org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath  org.eclipse.jdt.internal.compiler.batch.FileSystem$ClasspathNormalizer  org.eclipse.jdt.internal.compiler.batch.FileSystem$ClasspathSectionProblemReporter
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Classpath = org.eclipse.jdt.internal.compiler.batch.FileSystem$Classpath of org.eclipse.jdt.internal.compiler.batch.FileSystem
  public ClasspathNormalizer = org.eclipse.jdt.internal.compiler.batch.FileSystem$ClasspathNormalizer of org.eclipse.jdt.internal.compiler.batch.FileSystem
  public abstract ClasspathSectionProblemReporter = org.eclipse.jdt.internal.compiler.batch.FileSystem$ClasspathSectionProblemReporter of org.eclipse.jdt.internal.compiler.batch.FileSystem
  public abstract ZipFileProducer = org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator$ZipFileProducer of org.eclipse.jdt.internal.compiler.classfmt.ExternalAnnotationDecorator
  public abstract LookupStrategy = org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment$LookupStrategy of org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment
  public final UpdateKind = org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdateKind of org.eclipse.jdt.internal.compiler.env.IUpdatableModule
  public UpdatesByKind = org.eclipse.jdt.internal.compiler.env.IUpdatableModule$UpdatesByKind of org.eclipse.jdt.internal.compiler.env.IUpdatableModule