class com.sun.tools.javac.file.Locations$SystemModulesLocationHandler extends com.sun.tools.javac.file.Locations$BasicLocationHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.file.Locations$SystemModulesLocationHandler
  super_class: com.sun.tools.javac.file.Locations$BasicLocationHandler
{
  private java.nio.file.Path systemJavaHome;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.file.Path modules;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javac.file.Locations$ModuleTable moduleTable;
    descriptor: Lcom/sun/tools/javac/file/Locations$ModuleTable;
    flags: (0x0002) ACC_PRIVATE

  final com.sun.tools.javac.file.Locations this$0;
    descriptor: Lcom/sun/tools/javac/file/Locations;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.sun.tools.javac.file.Locations);
    descriptor: (Lcom/sun/tools/javac/file/Locations;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
         0: .line 1839
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.this$0:Lcom/sun/tools/javac/file/Locations;
         1: .line 1840
            aload 0 /* this */
            getstatic javax.tools.StandardLocation.SYSTEM_MODULES:Ljavax/tools/StandardLocation;
            iconst_1
            anewarray com.sun.tools.javac.main.Option
            dup
            iconst_0
            getstatic com.sun.tools.javac.main.Option.SYSTEM:Lcom/sun/tools/javac/main/Option;
            aastore
            invokespecial com.sun.tools.javac.file.Locations$BasicLocationHandler.<init>:(Ljavax/tools/JavaFileManager$Location;[Lcom/sun/tools/javac/main/Option;)V
         2: .line 1841
            aload 0 /* this */
            getstatic com.sun.tools.javac.file.Locations.javaHome:Ljava/nio/file/Path;
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
         3: .line 1842
            return
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
    MethodParameters:
        Name  Flags
      this$0  final

  boolean handleOption(com.sun.tools.javac.main.Option, java.lang.String);
    descriptor: (Lcom/sun/tools/javac/main/Option;Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
        start local 1 // com.sun.tools.javac.main.Option option
        start local 2 // java.lang.String value
         0: .line 1846
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.options:Ljava/util/Set;
            aload 1 /* option */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 1847
            iconst_0
            ireturn
         2: .line 1850
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.explicit:Z
         3: .line 1852
            aload 2 /* value */
            ifnonnull 6
         4: .line 1853
            aload 0 /* this */
            getstatic com.sun.tools.javac.file.Locations.javaHome:Ljava/nio/file/Path;
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
         5: .line 1854
            goto 10
      StackMap locals:
      StackMap stack:
         6: aload 2 /* value */
            ldc "none"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 1855
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
         8: .line 1856
            goto 10
         9: .line 1857
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.this$0:Lcom/sun/tools/javac/file/Locations;
            aload 2 /* value */
            iconst_0
            anewarray java.lang.String
            invokevirtual com.sun.tools.javac.file.Locations.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.update:(Ljava/nio/file/Path;)V
        10: .line 1860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.modules:Ljava/nio/file/Path;
        11: .line 1861
            iconst_1
            ireturn
        end local 2 // java.lang.String value
        end local 1 // com.sun.tools.javac.main.Option option
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
            0   12     1  option  Lcom/sun/tools/javac/main/Option;
            0   12     2   value  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      option  
      value   

  java.util.Collection<java.nio.file.Path> getPaths();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
         0: .line 1866
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
            ifnonnull 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
      StackMap locals:
      StackMap stack: java.util.Set
         2: areturn
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
    Signature: ()Ljava/util/Collection<Ljava/nio/file/Path;>;

  void setPaths(java.lang.Iterable<? extends java.nio.file.Path>);
    descriptor: (Ljava/lang/Iterable;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
        start local 1 // java.lang.Iterable files
         0: .line 1871
            aload 1 /* files */
            ifnonnull 3
         1: .line 1872
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
         2: .line 1873
            goto 6
         3: .line 1874
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.explicit:Z
         4: .line 1876
            aload 0 /* this */
            aload 1 /* files */
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.checkSingletonDirectory:(Ljava/lang/Iterable;)Ljava/nio/file/Path;
            astore 2 /* dir */
        start local 2 // java.nio.file.Path dir
         5: .line 1877
            aload 0 /* this */
            aload 2 /* dir */
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.update:(Ljava/nio/file/Path;)V
        end local 2 // java.nio.file.Path dir
         6: .line 1879
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Iterable files
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
            0    7     1  files  Ljava/lang/Iterable<+Ljava/nio/file/Path;>;
            5    6     2    dir  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Iterable<+Ljava/nio/file/Path;>;)V
    MethodParameters:
       Name  Flags
      files  

  void setPathsForModule(java.lang.String, java.lang.Iterable<? extends java.nio.file.Path>);
    descriptor: (Ljava/lang/String;Ljava/lang/Iterable;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
        start local 1 // java.lang.String name
        start local 2 // java.lang.Iterable paths
         0: .line 1883
            aload 0 /* this */
            aload 2 /* paths */
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.checkPaths:(Ljava/lang/Iterable;)Ljava/util/List;
            astore 3 /* checkedPaths */
        start local 3 // java.util.List checkedPaths
         1: .line 1884
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.initSystemModules:()V
         2: .line 1885
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
            aload 1 /* name */
            invokevirtual com.sun.tools.javac.file.Locations$ModuleTable.get:(Ljava/lang/String;)Lcom/sun/tools/javac/file/Locations$ModuleLocationHandler;
            astore 4 /* l */
        start local 4 // com.sun.tools.javac.file.Locations$ModuleLocationHandler l
         3: .line 1886
            aload 4 /* l */
            ifnonnull 12
         4: .line 1887
            new com.sun.tools.javac.file.Locations$ModuleLocationHandler
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.this$0:Lcom/sun/tools/javac/file/Locations;
            aload 0 /* this */
         5: .line 1888
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.location:Ljavax/tools/JavaFileManager$Location;
            invokeinterface javax.tools.JavaFileManager$Location.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 1889
            aload 1 /* name */
         7: .line 1890
            aload 3 /* checkedPaths */
         8: .line 1891
            iconst_1
         9: .line 1887
            invokespecial com.sun.tools.javac.file.Locations$ModuleLocationHandler.<init>:(Lcom/sun/tools/javac/file/Locations;Lcom/sun/tools/javac/file/Locations$LocationHandler;Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;Z)V
            astore 4 /* l */
        10: .line 1892
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
            aload 4 /* l */
            invokevirtual com.sun.tools.javac.file.Locations$ModuleTable.add:(Lcom/sun/tools/javac/file/Locations$ModuleLocationHandler;)V
        11: .line 1893
            goto 14
        12: .line 1894
      StackMap locals: java.util.List com.sun.tools.javac.file.Locations$ModuleLocationHandler
      StackMap stack:
            aload 4 /* l */
            aload 3 /* checkedPaths */
            putfield com.sun.tools.javac.file.Locations$ModuleLocationHandler.searchPath:Ljava/util/Collection;
        13: .line 1895
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
            aload 4 /* l */
            invokevirtual com.sun.tools.javac.file.Locations$ModuleTable.updatePaths:(Lcom/sun/tools/javac/file/Locations$ModuleLocationHandler;)V
        14: .line 1897
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.explicit:Z
        15: .line 1898
            return
        end local 4 // com.sun.tools.javac.file.Locations$ModuleLocationHandler l
        end local 3 // java.util.List checkedPaths
        end local 2 // java.lang.Iterable paths
        end local 1 // java.lang.String name
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
            0   16     1          name  Ljava/lang/String;
            0   16     2         paths  Ljava/lang/Iterable<+Ljava/nio/file/Path;>;
            1   16     3  checkedPaths  Ljava/util/List<Ljava/nio/file/Path;>;
            3   16     4             l  Lcom/sun/tools/javac/file/Locations$ModuleLocationHandler;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;Ljava/lang/Iterable<+Ljava/nio/file/Path;>;)V
    MethodParameters:
       Name  Flags
      name   
      paths  

  private java.util.List<java.nio.file.Path> checkPaths(java.lang.Iterable<? extends java.nio.file.Path>);
    descriptor: (Ljava/lang/Iterable;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
        start local 1 // java.lang.Iterable paths
         0: .line 1901
            aload 1 /* paths */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1902
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* validPaths */
        start local 2 // java.util.List validPaths
         2: .line 1903
            aload 1 /* paths */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: com.sun.tools.javac.file.Locations$SystemModulesLocationHandler java.lang.Iterable java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 3 /* p */
        start local 3 // java.nio.file.Path p
         4: .line 1904
            aload 2 /* validPaths */
            aload 0 /* this */
            aload 3 /* p */
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.checkDirectory:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.nio.file.Path p
         5: .line 1903
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 1906
            aload 2 /* validPaths */
            areturn
        end local 2 // java.util.List validPaths
        end local 1 // java.lang.Iterable paths
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
            0    7     1       paths  Ljava/lang/Iterable<+Ljava/nio/file/Path;>;
            2    7     2  validPaths  Ljava/util/List<Ljava/nio/file/Path;>;
            4    5     3           p  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Iterable<+Ljava/nio/file/Path;>;)Ljava/util/List<Ljava/nio/file/Path;>;
    MethodParameters:
       Name  Flags
      paths  

  private void update(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
        start local 1 // java.nio.file.Path p
         0: .line 1910
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.isCurrentPlatform:(Ljava/nio/file/Path;)Z
            ifne 3
            aload 1 /* p */
            ldc "lib"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            ldc "jrt-fs.jar"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 3
         1: .line 1911
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
            ldc "modules"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 3
         2: .line 1912
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* p */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1913
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
         4: .line 1914
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.modules:Ljava/nio/file/Path;
         5: .line 1915
            return
        end local 1 // java.nio.file.Path p
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
            0    6     1     p  Ljava/nio/file/Path;
    MethodParameters:
      Name  Flags
      p     

  private boolean isCurrentPlatform(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
        start local 1 // java.nio.file.Path p
         0: .line 1919
            aload 1 /* p */
            getstatic com.sun.tools.javac.file.Locations.javaHome:Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.isSameFile:(Ljava/nio/file/Path;Ljava/nio/file/Path;)Z
         1: ireturn
         2: .line 1920
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* ex */
        start local 2 // java.io.IOException ex
         3: .line 1921
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* p */
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            aload 2 /* ex */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException ex
        end local 1 // java.nio.file.Path p
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
            0    4     1     p  Ljava/nio/file/Path;
            3    4     2    ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    MethodParameters:
      Name  Flags
      p     

  javax.tools.JavaFileManager$Location getLocationForModule(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/tools/JavaFileManager$Location;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
        start local 1 // java.lang.String name
         0: .line 1927
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.initSystemModules:()V
         1: .line 1928
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
            aload 1 /* name */
            invokevirtual com.sun.tools.javac.file.Locations$ModuleTable.get:(Ljava/lang/String;)Lcom/sun/tools/javac/file/Locations$ModuleLocationHandler;
            areturn
        end local 1 // java.lang.String name
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
            0    2     1  name  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      name  

  javax.tools.JavaFileManager$Location getLocationForModule(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljavax/tools/JavaFileManager$Location;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
        start local 1 // java.nio.file.Path file
         0: .line 1933
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.initSystemModules:()V
         1: .line 1934
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
            aload 1 /* file */
            invokevirtual com.sun.tools.javac.file.Locations$ModuleTable.get:(Ljava/nio/file/Path;)Lcom/sun/tools/javac/file/Locations$ModuleLocationHandler;
            areturn
        end local 1 // java.nio.file.Path file
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
            0    2     1  file  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  java.lang.Iterable<java.util.Set<javax.tools.JavaFileManager$Location>> listLocationsForModules();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
         0: .line 1939
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.initSystemModules:()V
         1: .line 1940
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
            invokevirtual com.sun.tools.javac.file.Locations$ModuleTable.locations:()Ljava/util/Set;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            areturn
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
    Exceptions:
      throws java.io.IOException
    Signature: ()Ljava/lang/Iterable<Ljava/util/Set<Ljavax/tools/JavaFileManager$Location;>;>;

  boolean contains(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
        start local 1 // java.nio.file.Path file
         0: .line 1945
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.initSystemModules:()V
         1: .line 1946
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
            aload 1 /* file */
            invokevirtual com.sun.tools.javac.file.Locations$ModuleTable.contains:(Ljava/nio/file/Path;)Z
            ireturn
        end local 1 // java.nio.file.Path file
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
            0    2     1  file  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  private void initSystemModules();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=9, args_size=1
        start local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
         0: .line 1950
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
            ifnull 2
         1: .line 1951
            return
         2: .line 1953
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
            ifnonnull 5
         3: .line 1954
            aload 0 /* this */
            new com.sun.tools.javac.file.Locations$ModuleTable
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.this$0:Lcom/sun/tools/javac/file/Locations;
            invokespecial com.sun.tools.javac.file.Locations$ModuleTable.<init>:(Lcom/sun/tools/javac/file/Locations;)V
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
         4: .line 1955
            return
         5: .line 1958
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.modules:Ljava/nio/file/Path;
            ifnonnull 28
         6: .line 1960
            ldc "jrt:/"
            invokestatic java.net.URI.create:(Ljava/lang/String;)Ljava/net/URI;
            astore 1 /* jrtURI */
        start local 1 // java.net.URI jrtURI
         7: .line 1963
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
            invokevirtual com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.isCurrentPlatform:(Ljava/nio/file/Path;)Z
            ifeq 10
         8: .line 1964
            aload 1 /* jrtURI */
            invokestatic java.nio.file.FileSystems.getFileSystem:(Ljava/net/URI;)Ljava/nio/file/FileSystem;
            astore 2 /* jrtfs */
        start local 2 // java.nio.file.FileSystem jrtfs
         9: .line 1965
            goto 22
        end local 2 // java.nio.file.FileSystem jrtfs
        10: .line 1968
      StackMap locals: java.net.URI
      StackMap stack:
            ldc "java.home"
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
        11: .line 1967
            astore 3 /* attrMap */
        start local 3 // java.util.Map attrMap
        12: .line 1969
            aload 1 /* jrtURI */
            aload 3 /* attrMap */
            invokestatic java.nio.file.FileSystems.newFileSystem:(Ljava/net/URI;Ljava/util/Map;)Ljava/nio/file/FileSystem;
            astore 2 /* jrtfs */
        end local 3 // java.util.Map attrMap
        start local 2 // java.nio.file.FileSystem jrtfs
        13: .line 1970
            goto 21
        end local 2 // java.nio.file.FileSystem jrtfs
      StackMap locals:
      StackMap stack: java.nio.file.ProviderNotFoundException
        14: pop
        15: .line 1971
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
            ldc "jrt-fs.jar"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toUri:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            astore 3 /* javaHomeURL */
        start local 3 // java.net.URL javaHomeURL
        16: .line 1972
            ldc Lcom/sun/tools/javac/file/Locations;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 4 /* currentLoader */
        start local 4 // java.lang.ClassLoader currentLoader
        17: .line 1974
            new java.net.URLClassLoader
            dup
            iconst_1
            anewarray java.net.URL
            dup
            iconst_0
            aload 3 /* javaHomeURL */
            aastore
            aload 4 /* currentLoader */
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
        18: .line 1973
            astore 5 /* fsLoader */
        start local 5 // java.net.URLClassLoader fsLoader
        19: .line 1976
            aload 1 /* jrtURI */
            invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
            aload 5 /* fsLoader */
            invokestatic java.nio.file.FileSystems.newFileSystem:(Ljava/net/URI;Ljava/util/Map;Ljava/lang/ClassLoader;)Ljava/nio/file/FileSystem;
            astore 2 /* jrtfs */
        start local 2 // java.nio.file.FileSystem jrtfs
        20: .line 1978
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.this$0:Lcom/sun/tools/javac/file/Locations;
            getfield com.sun.tools.javac.file.Locations.closeables:Ljava/util/List;
            aload 5 /* fsLoader */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.net.URLClassLoader fsLoader
        end local 4 // java.lang.ClassLoader currentLoader
        end local 3 // java.net.URL javaHomeURL
        21: .line 1981
      StackMap locals: java.nio.file.FileSystem
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.this$0:Lcom/sun/tools/javac/file/Locations;
            getfield com.sun.tools.javac.file.Locations.closeables:Ljava/util/List;
            aload 2 /* jrtfs */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        22: .line 1984
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* jrtfs */
            ldc "/modules"
            iconst_0
            anewarray java.lang.String
            invokevirtual java.nio.file.FileSystem.getPath:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.modules:Ljava/nio/file/Path;
        end local 2 // java.nio.file.FileSystem jrtfs
        end local 1 // java.net.URI jrtURI
        23: .line 1985
            goto 28
      StackMap locals: com.sun.tools.javac.file.Locations$SystemModulesLocationHandler
      StackMap stack: java.lang.RuntimeException
        24: astore 1 /* e */
        start local 1 // java.lang.RuntimeException e
        25: .line 1986
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.systemJavaHome:Ljava/nio/file/Path;
            ldc "modules"
            invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.modules:Ljava/nio/file/Path;
        26: .line 1987
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.modules:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifne 28
        27: .line 1988
            new java.io.IOException
            dup
            ldc "can't find system classes"
            aload 1 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.RuntimeException e
        28: .line 1992
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.tools.javac.file.Locations$ModuleTable
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.this$0:Lcom/sun/tools/javac/file/Locations;
            invokespecial com.sun.tools.javac.file.Locations$ModuleTable.<init>:(Lcom/sun/tools/javac/file/Locations;)V
            putfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
        29: .line 1993
            aconst_null
            astore 1
            aconst_null
            astore 2
        30: aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.modules:Ljava/nio/file/Path;
            invokedynamic accept()Ljava/nio/file/DirectoryStream$Filter;
              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
                  com/sun/tools/javac/file/Locations$SystemModulesLocationHandler.lambda$1(Ljava/nio/file/Path;)Z (6)
                  (Ljava/nio/file/Path;)Z
            invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;Ljava/nio/file/DirectoryStream$Filter;)Ljava/nio/file/DirectoryStream;
            astore 3 /* stream */
        start local 3 // java.nio.file.DirectoryStream stream
        31: .line 1994
            aload 3 /* stream */
            invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
            astore 5
            goto 39
      StackMap locals: com.sun.tools.javac.file.Locations$SystemModulesLocationHandler java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream top java.util.Iterator
      StackMap stack:
        32: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 4 /* entry */
        start local 4 // java.nio.file.Path entry
        33: .line 1995
            aload 4 /* entry */
            invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
            astore 6 /* moduleName */
        start local 6 // java.lang.String moduleName
        34: .line 1996
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.location:Ljavax/tools/JavaFileManager$Location;
            invokeinterface javax.tools.JavaFileManager$Location.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* moduleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* name */
        start local 7 // java.lang.String name
        35: .line 1997
            new com.sun.tools.javac.file.Locations$ModuleLocationHandler
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.this$0:Lcom/sun/tools/javac/file/Locations;
            aload 0 /* this */
        36: .line 1998
            aload 7 /* name */
            aload 6 /* moduleName */
            aload 4 /* entry */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            iconst_0
        37: .line 1997
            invokespecial com.sun.tools.javac.file.Locations$ModuleLocationHandler.<init>:(Lcom/sun/tools/javac/file/Locations;Lcom/sun/tools/javac/file/Locations$LocationHandler;Ljava/lang/String;Ljava/lang/String;Ljava/util/Collection;Z)V
            astore 8 /* h */
        start local 8 // com.sun.tools.javac.file.Locations$ModuleLocationHandler h
        38: .line 1999
            aload 0 /* this */
            getfield com.sun.tools.javac.file.Locations$SystemModulesLocationHandler.moduleTable:Lcom/sun/tools/javac/file/Locations$ModuleTable;
            aload 8 /* h */
            invokevirtual com.sun.tools.javac.file.Locations$ModuleTable.add:(Lcom/sun/tools/javac/file/Locations$ModuleLocationHandler;)V
        end local 8 // com.sun.tools.javac.file.Locations$ModuleLocationHandler h
        end local 7 // java.lang.String name
        end local 6 // java.lang.String moduleName
        end local 4 // java.nio.file.Path entry
        39: .line 1994
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        40: .line 2001
            aload 3 /* stream */
            ifnull 46
            aload 3 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
            goto 46
      StackMap locals: com.sun.tools.javac.file.Locations$SystemModulesLocationHandler java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
      StackMap stack: java.lang.Throwable
        41: astore 1
            aload 3 /* stream */
            ifnull 42
            aload 3 /* stream */
            invokeinterface java.nio.file.DirectoryStream.close:()V
        end local 3 // java.nio.file.DirectoryStream stream
      StackMap locals:
      StackMap stack:
        42: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        43: astore 2
            aload 1
            ifnonnull 44
            aload 2
            astore 1
            goto 45
      StackMap locals:
      StackMap stack:
        44: aload 1
            aload 2
            if_acmpeq 45
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        45: aload 1
            athrow
        46: .line 2002
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.tools.javac.file.Locations$SystemModulesLocationHandler this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   47     0           this  Lcom/sun/tools/javac/file/Locations$SystemModulesLocationHandler;
            7   23     1         jrtURI  Ljava/net/URI;
            9   10     2          jrtfs  Ljava/nio/file/FileSystem;
           13   14     2          jrtfs  Ljava/nio/file/FileSystem;
           20   23     2          jrtfs  Ljava/nio/file/FileSystem;
           12   13     3        attrMap  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
           16   21     3    javaHomeURL  Ljava/net/URL;
           17   21     4  currentLoader  Ljava/lang/ClassLoader;
           19   21     5       fsLoader  Ljava/net/URLClassLoader;
           25   28     1              e  Ljava/lang/RuntimeException;
           31   42     3         stream  Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
           33   39     4          entry  Ljava/nio/file/Path;
           34   39     6     moduleName  Ljava/lang/String;
           35   39     7           name  Ljava/lang/String;
           38   39     8              h  Lcom/sun/tools/javac/file/Locations$ModuleLocationHandler;
      Exception table:
        from    to  target  type
          10    13      14  Class java.nio.file.ProviderNotFoundException
           6    23      24  Class java.nio.file.FileSystemNotFoundException
           6    23      24  Class java.nio.file.ProviderNotFoundException
          31    40      41  any
          30    43      43  any
    Exceptions:
      throws java.io.IOException

  private static boolean lambda$1(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.nio.file.Path  arg0
         0: aload 0 /*  arg0 */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.isDirectory:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ireturn
        end local 0 // java.nio.file.Path  arg0
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   arg0  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
}
SourceFile: "Locations.java"
NestHost: com.sun.tools.javac.file.Locations
InnerClasses:
  private abstract BasicLocationHandler = com.sun.tools.javac.file.Locations$BasicLocationHandler of com.sun.tools.javac.file.Locations
  protected abstract LocationHandler = com.sun.tools.javac.file.Locations$LocationHandler of com.sun.tools.javac.file.Locations
  private ModuleLocationHandler = com.sun.tools.javac.file.Locations$ModuleLocationHandler of com.sun.tools.javac.file.Locations
  private ModuleTable = com.sun.tools.javac.file.Locations$ModuleTable of com.sun.tools.javac.file.Locations
  private SystemModulesLocationHandler = com.sun.tools.javac.file.Locations$SystemModulesLocationHandler of com.sun.tools.javac.file.Locations
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Filter = java.nio.file.DirectoryStream$Filter of java.nio.file.DirectoryStream
  public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager