public class com.sun.tools.javac.code.ModuleFinder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.code.ModuleFinder
  super_class: java.lang.Object
{
  protected static final com.sun.tools.javac.util.Context$Key<com.sun.tools.javac.code.ModuleFinder> moduleFinderKey;
    descriptor: Lcom/sun/tools/javac/util/Context$Key;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Signature: Lcom/sun/tools/javac/util/Context$Key<Lcom/sun/tools/javac/code/ModuleFinder;>;

  private final com.sun.tools.javac.util.Log log;
    descriptor: Lcom/sun/tools/javac/util/Log;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.tools.javac.code.Symtab syms;
    descriptor: Lcom/sun/tools/javac/code/Symtab;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.tools.javac.util.Names names;
    descriptor: Lcom/sun/tools/javac/util/Names;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.tools.javac.code.ClassFinder classFinder;
    descriptor: Lcom/sun/tools/javac/code/ClassFinder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.tools.JavaFileManager fileManager;
    descriptor: Ljavax/tools/JavaFileManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.tools.javac.util.JCDiagnostic$Factory diags;
    descriptor: Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.tools.javac.code.DeferredCompletionFailureHandler dcfh;
    descriptor: Lcom/sun/tools/javac/code/DeferredCompletionFailureHandler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.sun.tools.javac.jvm.ModuleNameReader moduleNameReader;
    descriptor: Lcom/sun/tools/javac/jvm/ModuleNameReader;
    flags: (0x0002) ACC_PRIVATE

  public com.sun.tools.javac.code.ModuleFinder$ModuleNameFromSourceReader moduleNameFromSourceReader;
    descriptor: Lcom/sun/tools/javac/code/ModuleFinder$ModuleNameFromSourceReader;
    flags: (0x0001) ACC_PUBLIC

  com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator moduleLocationIterator;
    descriptor: Lcom/sun/tools/javac/code/ModuleFinder$ModuleLocationIterator;
    flags: (0x0000) 

  private static volatile int[] $SWITCH_TABLE$javax$tools$JavaFileObject$Kind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$javax$tools$StandardLocation;
    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 73
            new com.sun.tools.javac.util.Context$Key
            dup
            invokespecial com.sun.tools.javac.util.Context$Key.<init>:()V
            putstatic com.sun.tools.javac.code.ModuleFinder.moduleFinderKey:Lcom/sun/tools/javac/util/Context$Key;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.sun.tools.javac.code.ModuleFinder instance(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/ModuleFinder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.util.Context context
         0: .line 100
            aload 0 /* context */
            getstatic com.sun.tools.javac.code.ModuleFinder.moduleFinderKey:Lcom/sun/tools/javac/util/Context$Key;
            invokevirtual com.sun.tools.javac.util.Context.get:(Lcom/sun/tools/javac/util/Context$Key;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.ModuleFinder
            astore 1 /* instance */
        start local 1 // com.sun.tools.javac.code.ModuleFinder instance
         1: .line 101
            aload 1 /* instance */
            ifnonnull 3
         2: .line 102
            new com.sun.tools.javac.code.ModuleFinder
            dup
            aload 0 /* context */
            invokespecial com.sun.tools.javac.code.ModuleFinder.<init>:(Lcom/sun/tools/javac/util/Context;)V
            astore 1 /* instance */
         3: .line 103
      StackMap locals: com.sun.tools.javac.code.ModuleFinder
      StackMap stack:
            aload 1 /* instance */
            areturn
        end local 1 // com.sun.tools.javac.code.ModuleFinder instance
        end local 0 // com.sun.tools.javac.util.Context context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   context  Lcom/sun/tools/javac/util/Context;
            1    4     1  instance  Lcom/sun/tools/javac/code/ModuleFinder;
    MethodParameters:
         Name  Flags
      context  

  protected void <init>(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
        start local 1 // com.sun.tools.javac.util.Context context
         0: .line 107
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 165
            aload 0 /* this */
            new com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator.<init>:(Lcom/sun/tools/javac/code/ModuleFinder;)V
            putfield com.sun.tools.javac.code.ModuleFinder.moduleLocationIterator:Lcom/sun/tools/javac/code/ModuleFinder$ModuleLocationIterator;
         2: .line 108
            aload 1 /* context */
            getstatic com.sun.tools.javac.code.ModuleFinder.moduleFinderKey:Lcom/sun/tools/javac/util/Context$Key;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.util.Context.put:(Lcom/sun/tools/javac/util/Context$Key;Ljava/lang/Object;)V
         3: .line 109
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.util.Names.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Names;
            putfield com.sun.tools.javac.code.ModuleFinder.names:Lcom/sun/tools/javac/util/Names;
         4: .line 110
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.code.Symtab.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Symtab;
            putfield com.sun.tools.javac.code.ModuleFinder.syms:Lcom/sun/tools/javac/code/Symtab;
         5: .line 111
            aload 0 /* this */
            aload 1 /* context */
            ldc Ljavax/tools/JavaFileManager;
            invokevirtual com.sun.tools.javac.util.Context.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.tools.JavaFileManager
            putfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
         6: .line 112
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.util.Log.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Log;
            putfield com.sun.tools.javac.code.ModuleFinder.log:Lcom/sun/tools/javac/util/Log;
         7: .line 113
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.code.ClassFinder.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/ClassFinder;
            putfield com.sun.tools.javac.code.ModuleFinder.classFinder:Lcom/sun/tools/javac/code/ClassFinder;
         8: .line 115
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.util.JCDiagnostic$Factory.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
            putfield com.sun.tools.javac.code.ModuleFinder.diags:Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
         9: .line 116
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.code.DeferredCompletionFailureHandler.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/DeferredCompletionFailureHandler;
            putfield com.sun.tools.javac.code.ModuleFinder.dcfh:Lcom/sun/tools/javac/code/DeferredCompletionFailureHandler;
        10: .line 117
            return
        end local 1 // com.sun.tools.javac.util.Context context
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/sun/tools/javac/code/ModuleFinder;
            0   11     1  context  Lcom/sun/tools/javac/util/Context;
    MethodParameters:
         Name  Flags
      context  

  public com.sun.tools.javac.code.Symbol$ModuleSymbol findModule(com.sun.tools.javac.util.Name);
    descriptor: (Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
        start local 1 // com.sun.tools.javac.util.Name name
         0: .line 168
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.syms:Lcom/sun/tools/javac/code/Symtab;
            aload 1 /* name */
            invokevirtual com.sun.tools.javac.code.Symtab.enterModule:(Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.findModule:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            areturn
        end local 1 // com.sun.tools.javac.util.Name name
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/ModuleFinder;
            0    1     1  name  Lcom/sun/tools/javac/util/Name;
    MethodParameters:
      Name  Flags
      name  

  public com.sun.tools.javac.code.Symbol$ModuleSymbol findModule(com.sun.tools.javac.code.Symbol$ModuleSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
        start local 1 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
         0: .line 172
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.ERR:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpeq 4
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.sourceLocation:Ljavax/tools/JavaFileManager$Location;
            ifnonnull 4
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.classLocation:Ljavax/tools/JavaFileManager$Location;
            ifnonnull 4
         1: .line 174
            aload 0 /* this */
            aload 1 /* msym */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.scanModulePath:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)Lcom/sun/tools/javac/util/List;
            astore 2 /* list */
        start local 2 // com.sun.tools.javac.util.List list
         2: .line 175
            aload 2 /* list */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 4
         3: .line 176
            aload 1 /* msym */
            getstatic com.sun.tools.javac.code.Kinds$Kind.ERR:Lcom/sun/tools/javac/code/Kinds$Kind;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
        end local 2 // com.sun.tools.javac.util.List list
         4: .line 179
      StackMap locals:
      StackMap stack:
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.ERR:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpeq 6
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.sourcefile:Ljavax/tools/JavaFileObject;
            ifnonnull 6
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
            ifnonnull 6
         5: .line 181
            aload 0 /* this */
            aload 1 /* msym */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.findModuleInfo:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
         6: .line 183
      StackMap locals:
      StackMap stack:
            aload 1 /* msym */
            areturn
        end local 1 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/code/ModuleFinder;
            0    7     1  msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            2    4     2  list  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;>;
    MethodParameters:
      Name  Flags
      msym  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$ModuleSymbol> findAllModules();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
         0: .line 187
            aload 0 /* this */
            aconst_null
            invokevirtual com.sun.tools.javac.code.ModuleFinder.scanModulePath:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)Lcom/sun/tools/javac/util/List;
            astore 1 /* list */
        start local 1 // com.sun.tools.javac.util.List list
         1: .line 188
            aload 1 /* list */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.sun.tools.javac.code.ModuleFinder com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$ModuleSymbol
            astore 2 /* msym */
        start local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
         3: .line 189
            aload 2 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.ERR:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpeq 5
            aload 2 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.sourcefile:Ljavax/tools/JavaFileObject;
            ifnonnull 5
            aload 2 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
            ifnonnull 5
         4: .line 191
            aload 0 /* this */
            aload 2 /* msym */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.findModuleInfo:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
        end local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
         5: .line 188
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 194
            aload 1 /* list */
            areturn
        end local 1 // com.sun.tools.javac.util.List list
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/code/ModuleFinder;
            1    7     1  list  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;>;
            3    5     2  msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;>;

  public com.sun.tools.javac.code.Symbol$ModuleSymbol findSingleModule();
    descriptor: ()Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
         0: .line 199
            aload 0 /* this */
            getstatic javax.tools.StandardLocation.SOURCE_PATH:Ljavax/tools/StandardLocation;
            getstatic javax.tools.JavaFileObject$Kind.SOURCE:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getModuleInfoFromLocation:(Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            astore 1 /* src_fo */
        start local 1 // javax.tools.JavaFileObject src_fo
         1: .line 200
            aload 0 /* this */
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getModuleInfoFromLocation:(Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            astore 2 /* class_fo */
        start local 2 // javax.tools.JavaFileObject class_fo
         2: .line 201
            aload 1 /* src_fo */
            ifnonnull 3
            aload 2 /* class_fo */
            goto 5
         3: .line 202
      StackMap locals: javax.tools.JavaFileObject javax.tools.JavaFileObject
      StackMap stack:
            aload 2 /* class_fo */
            ifnonnull 4
            aload 1 /* src_fo */
            goto 5
         4: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.classFinder:Lcom/sun/tools/javac/code/ClassFinder;
            aload 1 /* src_fo */
            aload 2 /* class_fo */
            invokevirtual com.sun.tools.javac.code.ClassFinder.preferredFileObject:(Ljavax/tools/JavaFileObject;Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
         5: .line 201
      StackMap locals:
      StackMap stack: javax.tools.JavaFileObject
            astore 3 /* fo */
        start local 3 // javax.tools.JavaFileObject fo
         6: .line 206
            aload 3 /* fo */
            ifnonnull 9
         7: .line 207
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.unnamedModule:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            astore 4 /* msym */
        start local 4 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
         8: .line 208
            goto 10
        end local 4 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
         9: .line 209
      StackMap locals: javax.tools.JavaFileObject
      StackMap stack:
            aload 0 /* this */
            aload 3 /* fo */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.readModule:(Ljavax/tools/JavaFileObject;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            astore 4 /* msym */
        start local 4 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        10: .line 212
      StackMap locals: com.sun.tools.javac.code.Symbol$ModuleSymbol
      StackMap stack:
            aload 4 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchLocation:Ljavax/tools/JavaFileManager$Location;
            ifnonnull 13
        11: .line 213
            aload 4 /* msym */
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.classLocation:Ljavax/tools/JavaFileManager$Location;
        12: .line 214
            goto 14
        13: .line 215
      StackMap locals:
      StackMap stack:
            aload 4 /* msym */
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchOutputLocation:Ljavax/tools/JavaFileManager$Location;
        14: .line 217
      StackMap locals:
      StackMap stack:
            aload 4 /* msym */
        15: areturn
        end local 4 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 3 // javax.tools.JavaFileObject fo
        end local 2 // javax.tools.JavaFileObject class_fo
        end local 1 // javax.tools.JavaFileObject src_fo
        16: .line 219
      StackMap locals: com.sun.tools.javac.code.ModuleFinder
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
        17: .line 220
            new java.lang.Error
            dup
            aload 1 /* e */
            invokespecial java.lang.Error.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lcom/sun/tools/javac/code/ModuleFinder;
            1   16     1    src_fo  Ljavax/tools/JavaFileObject;
            2   16     2  class_fo  Ljavax/tools/JavaFileObject;
            6   16     3        fo  Ljavax/tools/JavaFileObject;
            8    9     4      msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
           10   16     4      msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
           17   18     1         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0    15      16  Class java.io.IOException

  private com.sun.tools.javac.code.Symbol$ModuleSymbol readModule(javax.tools.JavaFileObject);
    descriptor: (Ljavax/tools/JavaFileObject;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
        start local 1 // javax.tools.JavaFileObject fo
         0: .line 226
            invokestatic com.sun.tools.javac.code.ModuleFinder.$SWITCH_TABLE$javax$tools$JavaFileObject$Kind:()[I
            aload 1 /* fo */
            invokeinterface javax.tools.JavaFileObject.getKind:()Ljavax/tools/JavaFileObject$Kind;
            invokevirtual javax.tools.JavaFileObject$Kind.ordinal:()I
            iaload
            tableswitch { // 1 - 2
                    1: 1
                    2: 7
              default: 12
          }
         1: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.moduleNameFromSourceReader:Lcom/sun/tools/javac/code/ModuleFinder$ModuleNameFromSourceReader;
            aload 1 /* fo */
            invokeinterface com.sun.tools.javac.code.ModuleFinder$ModuleNameFromSourceReader.readModuleName:(Ljavax/tools/JavaFileObject;)Lcom/sun/tools/javac/util/Name;
            astore 2 /* name */
        start local 2 // com.sun.tools.javac.util.Name name
         2: .line 229
            aload 2 /* name */
            ifnonnull 14
         3: .line 231
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.diags:Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
            getstatic com.sun.tools.javac.resources.CompilerProperties$Fragments.FileDoesNotContainModule:Lcom/sun/tools/javac/util/JCDiagnostic$Fragment;
            invokevirtual com.sun.tools.javac.util.JCDiagnostic$Factory.fragment:(Lcom/sun/tools/javac/util/JCDiagnostic$Fragment;)Lcom/sun/tools/javac/util/JCDiagnostic;
         4: .line 230
            astore 3 /* diag */
        start local 3 // com.sun.tools.javac.util.JCDiagnostic diag
         5: .line 232
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.syms:Lcom/sun/tools/javac/code/Symtab;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.module_info:Lcom/sun/tools/javac/util/Name;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.errModule:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokevirtual com.sun.tools.javac.code.Symtab.defineClass:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            astore 4 /* errModuleInfo */
        start local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol errModuleInfo
         6: .line 233
            new com.sun.tools.javac.code.ClassFinder$BadClassFile
            dup
            aload 4 /* errModuleInfo */
            aload 1 /* fo */
            aload 3 /* diag */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.diags:Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.dcfh:Lcom/sun/tools/javac/code/DeferredCompletionFailureHandler;
            invokespecial com.sun.tools.javac.code.ClassFinder$BadClassFile.<init>:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Ljavax/tools/JavaFileObject;Lcom/sun/tools/javac/util/JCDiagnostic;Lcom/sun/tools/javac/util/JCDiagnostic$Factory;Lcom/sun/tools/javac/code/DeferredCompletionFailureHandler;)V
            athrow
        end local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol errModuleInfo
        end local 3 // com.sun.tools.javac.util.JCDiagnostic diag
        end local 2 // com.sun.tools.javac.util.Name name
         7: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.names:Lcom/sun/tools/javac/util/Names;
            aload 0 /* this */
            aload 1 /* fo */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.readModuleName:(Ljavax/tools/JavaFileObject;)Ljava/lang/String;
            invokevirtual com.sun.tools.javac.util.Names.fromString:(Ljava/lang/String;)Lcom/sun/tools/javac/util/Name;
            astore 2 /* name */
        start local 2 // com.sun.tools.javac.util.Name name
         8: .line 239
            goto 14
        end local 2 // com.sun.tools.javac.util.Name name
      StackMap locals:
      StackMap stack: java.lang.Exception
         9: pop
        10: .line 241
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.error:Lcom/sun/tools/javac/util/Name;
            astore 2 /* name */
        start local 2 // com.sun.tools.javac.util.Name name
        11: .line 243
            goto 14
        end local 2 // com.sun.tools.javac.util.Name name
        12: .line 245
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.tools.javac.util.Assert.error:()V
        13: .line 246
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.error:Lcom/sun/tools/javac/util/Name;
            astore 2 /* name */
        start local 2 // com.sun.tools.javac.util.Name name
        14: .line 250
      StackMap locals: com.sun.tools.javac.util.Name
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.syms:Lcom/sun/tools/javac/code/Symtab;
            aload 2 /* name */
            invokevirtual com.sun.tools.javac.code.Symtab.enterModule:(Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            astore 3 /* msym */
        start local 3 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        15: .line 252
            aload 3 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
            ifnonnull 27
        16: .line 253
            aload 3 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            aload 1 /* fo */
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
        17: .line 254
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            getstatic javax.tools.StandardLocation.PATCH_MODULE_PATH:Ljavax/tools/StandardLocation;
            invokeinterface javax.tools.JavaFileManager.hasLocation:(Ljavax/tools/JavaFileManager$Location;)Z
            ifeq 25
            aload 2 /* name */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.error:Lcom/sun/tools/javac/util/Name;
            if_acmpeq 25
        18: .line 255
            aload 3 /* msym */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            getstatic javax.tools.StandardLocation.PATCH_MODULE_PATH:Ljavax/tools/StandardLocation;
            aload 2 /* name */
            invokevirtual com.sun.tools.javac.util.Name.toString:()Ljava/lang/String;
            invokeinterface javax.tools.JavaFileManager.getLocationForModule:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;)Ljavax/tools/JavaFileManager$Location;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchLocation:Ljavax/tools/JavaFileManager$Location;
        19: .line 257
            aload 3 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchLocation:Ljavax/tools/JavaFileManager$Location;
            ifnull 25
        20: .line 258
            aload 0 /* this */
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getModuleInfoFromLocation:(Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            astore 4 /* patchFO */
        start local 4 // javax.tools.JavaFileObject patchFO
        21: .line 259
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchLocation:Ljavax/tools/JavaFileManager$Location;
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getModuleInfoFromLocation:(Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            aload 4 /* patchFO */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.preferredFileObject:(Ljavax/tools/JavaFileObject;Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            astore 4 /* patchFO */
        22: .line 260
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchLocation:Ljavax/tools/JavaFileManager$Location;
            getstatic javax.tools.JavaFileObject$Kind.SOURCE:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getModuleInfoFromLocation:(Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            aload 4 /* patchFO */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.preferredFileObject:(Ljavax/tools/JavaFileObject;Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            astore 4 /* patchFO */
        23: .line 262
            aload 4 /* patchFO */
            ifnull 25
        24: .line 263
            aload 3 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            aload 4 /* patchFO */
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
        end local 4 // javax.tools.JavaFileObject patchFO
        25: .line 268
      StackMap locals: com.sun.tools.javac.code.Symbol$ModuleSymbol
      StackMap stack:
            aload 3 /* msym */
            getstatic com.sun.tools.javac.code.Symbol$Completer.NULL_COMPLETER:Lcom/sun/tools/javac/code/Symbol$Completer;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.completer:Lcom/sun/tools/javac/code/Symbol$Completer;
        26: .line 269
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.classFinder:Lcom/sun/tools/javac/code/ClassFinder;
            aload 3 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokevirtual com.sun.tools.javac.code.ClassFinder.fillIn:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)V
        27: .line 272
      StackMap locals:
      StackMap stack:
            aload 3 /* msym */
            areturn
        end local 3 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 2 // com.sun.tools.javac.util.Name name
        end local 1 // javax.tools.JavaFileObject fo
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   28     0           this  Lcom/sun/tools/javac/code/ModuleFinder;
            0   28     1             fo  Ljavax/tools/JavaFileObject;
            2    7     2           name  Lcom/sun/tools/javac/util/Name;
            8    9     2           name  Lcom/sun/tools/javac/util/Name;
           11   12     2           name  Lcom/sun/tools/javac/util/Name;
           14   28     2           name  Lcom/sun/tools/javac/util/Name;
            5    7     3           diag  Lcom/sun/tools/javac/util/JCDiagnostic;
            6    7     4  errModuleInfo  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
           15   28     3           msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
           21   25     4        patchFO  Ljavax/tools/JavaFileObject;
      Exception table:
        from    to  target  type
           7     8       9  Class com.sun.tools.javac.jvm.ModuleNameReader$BadClassFile
           7     8       9  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      fo    

  private java.lang.String readModuleName(javax.tools.JavaFileObject);
    descriptor: (Ljavax/tools/JavaFileObject;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
        start local 1 // javax.tools.JavaFileObject jfo
         0: .line 276
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.moduleNameReader:Lcom/sun/tools/javac/jvm/ModuleNameReader;
            ifnonnull 2
         1: .line 277
            aload 0 /* this */
            new com.sun.tools.javac.jvm.ModuleNameReader
            dup
            invokespecial com.sun.tools.javac.jvm.ModuleNameReader.<init>:()V
            putfield com.sun.tools.javac.code.ModuleFinder.moduleNameReader:Lcom/sun/tools/javac/jvm/ModuleNameReader;
         2: .line 278
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.moduleNameReader:Lcom/sun/tools/javac/jvm/ModuleNameReader;
            aload 1 /* jfo */
            invokevirtual com.sun.tools.javac.jvm.ModuleNameReader.readModuleName:(Ljavax/tools/JavaFileObject;)Ljava/lang/String;
            areturn
        end local 1 // javax.tools.JavaFileObject jfo
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/ModuleFinder;
            0    3     1   jfo  Ljavax/tools/JavaFileObject;
    Exceptions:
      throws java.io.IOException, com.sun.tools.javac.jvm.ModuleNameReader$BadClassFile
    MethodParameters:
      Name  Flags
      jfo   

  private javax.tools.JavaFileObject getModuleInfoFromLocation(javax.tools.JavaFileManager$Location, javax.tools.JavaFileObject$Kind);
    descriptor: (Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
        start local 1 // javax.tools.JavaFileManager$Location location
        start local 2 // javax.tools.JavaFileObject$Kind kind
         0: .line 282
            aload 1 /* location */
            ifnull 1
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            aload 1 /* location */
            invokeinterface javax.tools.JavaFileManager.hasLocation:(Ljavax/tools/JavaFileManager$Location;)Z
            ifne 2
         1: .line 283
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            aload 1 /* location */
         3: .line 286
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.module_info:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.util.Name.toString:()Ljava/lang/String;
         4: .line 287
            aload 2 /* kind */
         5: .line 285
            invokeinterface javax.tools.JavaFileManager.getJavaFileForInput:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            areturn
        end local 2 // javax.tools.JavaFileObject$Kind kind
        end local 1 // javax.tools.JavaFileManager$Location location
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/sun/tools/javac/code/ModuleFinder;
            0    6     1  location  Ljavax/tools/JavaFileManager$Location;
            0    6     2      kind  Ljavax/tools/JavaFileObject$Kind;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      location  
      kind      

  private com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$ModuleSymbol> scanModulePath(com.sun.tools.javac.code.Symbol$ModuleSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)Lcom/sun/tools/javac/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
        start local 1 // com.sun.tools.javac.code.Symbol$ModuleSymbol toFind
         0: .line 291
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* results */
        start local 2 // com.sun.tools.javac.util.ListBuffer results
         1: .line 292
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* namesInSet */
        start local 3 // java.util.Map namesInSet
         2: .line 293
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            getstatic javax.tools.StandardLocation.MODULE_SOURCE_PATH:Ljavax/tools/StandardLocation;
            invokeinterface javax.tools.JavaFileManager.hasLocation:(Ljavax/tools/JavaFileManager$Location;)Z
            istore 4 /* multiModuleMode */
        start local 4 // boolean multiModuleMode
         3: .line 294
            goto 53
         4: .line 295
      StackMap locals: com.sun.tools.javac.util.ListBuffer java.util.Map int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.moduleLocationIterator:Lcom/sun/tools/javac/code/ModuleFinder$ModuleLocationIterator;
            invokevirtual com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator.next:()Ljava/util/Set;
            astore 5 /* locns */
        start local 5 // java.util.Set locns
         5: .line 296
            aload 3 /* namesInSet */
            invokeinterface java.util.Map.clear:()V
         6: .line 297
            aload 5 /* locns */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 50
      StackMap locals: com.sun.tools.javac.code.ModuleFinder com.sun.tools.javac.code.Symbol$ModuleSymbol com.sun.tools.javac.util.ListBuffer java.util.Map int java.util.Set top java.util.Iterator
      StackMap stack:
         7: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.tools.JavaFileManager$Location
            astore 6 /* l */
        start local 6 // javax.tools.JavaFileManager$Location l
         8: .line 299
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.names:Lcom/sun/tools/javac/util/Names;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            aload 6 /* l */
            invokeinterface javax.tools.JavaFileManager.inferModuleName:(Ljavax/tools/JavaFileManager$Location;)Ljava/lang/String;
            invokevirtual com.sun.tools.javac.util.Names.fromString:(Ljava/lang/String;)Lcom/sun/tools/javac/util/Name;
            astore 8 /* n */
        start local 8 // com.sun.tools.javac.util.Name n
         9: .line 300
            aload 3 /* namesInSet */
            aload 8 /* n */
            aload 6 /* l */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 45
        10: .line 301
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.syms:Lcom/sun/tools/javac/code/Symtab;
            aload 8 /* n */
            invokevirtual com.sun.tools.javac.code.Symtab.enterModule:(Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            astore 9 /* msym */
        start local 9 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        11: .line 302
            aload 9 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.sourceLocation:Ljavax/tools/JavaFileManager$Location;
            ifnonnull 50
            aload 9 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.classLocation:Ljavax/tools/JavaFileManager$Location;
            ifnull 13
        12: .line 304
            goto 50
        13: .line 306
      StackMap locals: com.sun.tools.javac.code.ModuleFinder com.sun.tools.javac.code.Symbol$ModuleSymbol com.sun.tools.javac.util.ListBuffer java.util.Map int java.util.Set javax.tools.JavaFileManager$Location java.util.Iterator com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$ModuleSymbol
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            getstatic javax.tools.StandardLocation.PATCH_MODULE_PATH:Ljavax/tools/StandardLocation;
            invokeinterface javax.tools.JavaFileManager.hasLocation:(Ljavax/tools/JavaFileManager$Location;)Z
            ifeq 28
        14: .line 307
            aload 9 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchLocation:Ljavax/tools/JavaFileManager$Location;
            ifnonnull 28
        15: .line 308
            aload 9 /* msym */
        16: .line 309
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            getstatic javax.tools.StandardLocation.PATCH_MODULE_PATH:Ljavax/tools/StandardLocation;
        17: .line 310
            aload 9 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.name:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.util.Name.toString:()Ljava/lang/String;
        18: .line 309
            invokeinterface javax.tools.JavaFileManager.getLocationForModule:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;)Ljavax/tools/JavaFileManager$Location;
        19: .line 308
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchLocation:Ljavax/tools/JavaFileManager$Location;
        20: .line 311
            aload 9 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchLocation:Ljavax/tools/JavaFileManager$Location;
            ifnull 28
        21: .line 312
            iload 4 /* multiModuleMode */
            ifeq 28
        22: .line 313
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            invokeinterface javax.tools.JavaFileManager.hasLocation:(Ljavax/tools/JavaFileManager$Location;)Z
            ifeq 28
        23: .line 314
            aload 9 /* msym */
        24: .line 315
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
        25: .line 316
            aload 9 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.name:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.util.Name.toString:()Ljava/lang/String;
        26: .line 315
            invokeinterface javax.tools.JavaFileManager.getLocationForModule:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;)Ljavax/tools/JavaFileManager$Location;
        27: .line 314
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchOutputLocation:Ljavax/tools/JavaFileManager$Location;
        28: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.moduleLocationIterator:Lcom/sun/tools/javac/code/ModuleFinder$ModuleLocationIterator;
            getfield com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator.outer:Ljavax/tools/StandardLocation;
            getstatic javax.tools.StandardLocation.MODULE_SOURCE_PATH:Ljavax/tools/StandardLocation;
            if_acmpne 37
        29: .line 320
            aload 9 /* msym */
            aload 6 /* l */
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.sourceLocation:Ljavax/tools/JavaFileManager$Location;
        30: .line 321
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            invokeinterface javax.tools.JavaFileManager.hasLocation:(Ljavax/tools/JavaFileManager$Location;)Z
            ifeq 38
        31: .line 322
            aload 9 /* msym */
        32: .line 323
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
        33: .line 324
            aload 9 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.name:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.util.Name.toString:()Ljava/lang/String;
        34: .line 323
            invokeinterface javax.tools.JavaFileManager.getLocationForModule:(Ljavax/tools/JavaFileManager$Location;Ljava/lang/String;)Ljavax/tools/JavaFileManager$Location;
        35: .line 322
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.classLocation:Ljavax/tools/JavaFileManager$Location;
        36: .line 326
            goto 38
        37: .line 327
      StackMap locals:
      StackMap stack:
            aload 9 /* msym */
            aload 6 /* l */
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.classLocation:Ljavax/tools/JavaFileManager$Location;
        38: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.moduleLocationIterator:Lcom/sun/tools/javac/code/ModuleFinder$ModuleLocationIterator;
            getfield com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator.outer:Ljavax/tools/StandardLocation;
            getstatic javax.tools.StandardLocation.SYSTEM_MODULES:Ljavax/tools/StandardLocation;
            if_acmpeq 40
        39: .line 330
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.moduleLocationIterator:Lcom/sun/tools/javac/code/ModuleFinder$ModuleLocationIterator;
            getfield com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator.outer:Ljavax/tools/StandardLocation;
            getstatic javax.tools.StandardLocation.UPGRADE_MODULE_PATH:Ljavax/tools/StandardLocation;
            if_acmpne 41
        40: .line 331
      StackMap locals:
      StackMap stack:
            aload 9 /* msym */
            dup
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.flags_field:J
            ldc 9007199254740992
            lor
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.flags_field:J
        41: .line 333
      StackMap locals:
      StackMap stack:
            aload 1 /* toFind */
            ifnull 43
        42: .line 334
            aload 1 /* toFind */
            aload 9 /* msym */
            if_acmpne 50
            aload 9 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.sourceLocation:Ljavax/tools/JavaFileManager$Location;
            ifnonnull 43
            aload 9 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.classLocation:Ljavax/tools/JavaFileManager$Location;
            ifnull 50
        43: .line 337
      StackMap locals:
      StackMap stack:
            aload 2 /* results */
            aload 9 /* msym */
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        44: .line 339
            goto 50
        45: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.log:Lcom/sun/tools/javac/util/Log;
        46: .line 341
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.moduleLocationIterator:Lcom/sun/tools/javac/code/ModuleFinder$ModuleLocationIterator;
            getfield com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator.outer:Ljavax/tools/StandardLocation;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getDescription:(Ljavax/tools/StandardLocation;)Lcom/sun/tools/javac/util/JCDiagnostic$Fragment;
            aload 8 /* n */
        47: .line 340
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.DuplicateModuleOnPath:(Lcom/sun/tools/javac/util/JCDiagnostic$Fragment;Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
            invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
        end local 8 // com.sun.tools.javac.util.Name n
        48: .line 343
            goto 50
      StackMap locals: com.sun.tools.javac.code.ModuleFinder com.sun.tools.javac.code.Symbol$ModuleSymbol com.sun.tools.javac.util.ListBuffer java.util.Map int java.util.Set javax.tools.JavaFileManager$Location java.util.Iterator
      StackMap stack: java.io.IOException
        49: pop
        end local 6 // javax.tools.JavaFileManager$Location l
        50: .line 297
      StackMap locals: com.sun.tools.javac.code.ModuleFinder com.sun.tools.javac.code.Symbol$ModuleSymbol com.sun.tools.javac.util.ListBuffer java.util.Map int java.util.Set top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        51: .line 347
            aload 1 /* toFind */
            ifnull 53
            aload 2 /* results */
            invokevirtual com.sun.tools.javac.util.ListBuffer.nonEmpty:()Z
            ifeq 53
        52: .line 348
            aload 2 /* results */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 5 // java.util.Set locns
        53: .line 294
      StackMap locals: com.sun.tools.javac.code.ModuleFinder com.sun.tools.javac.code.Symbol$ModuleSymbol com.sun.tools.javac.util.ListBuffer java.util.Map int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.moduleLocationIterator:Lcom/sun/tools/javac/code/ModuleFinder$ModuleLocationIterator;
            invokevirtual com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator.hasNext:()Z
            ifne 4
        54: .line 351
            aload 2 /* results */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 4 // boolean multiModuleMode
        end local 3 // java.util.Map namesInSet
        end local 2 // com.sun.tools.javac.util.ListBuffer results
        end local 1 // com.sun.tools.javac.code.Symbol$ModuleSymbol toFind
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   55     0             this  Lcom/sun/tools/javac/code/ModuleFinder;
            0   55     1           toFind  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            1   55     2          results  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;>;
            2   55     3       namesInSet  Ljava/util/Map<Lcom/sun/tools/javac/util/Name;Ljavax/tools/JavaFileManager$Location;>;
            3   55     4  multiModuleMode  Z
            5   53     5            locns  Ljava/util/Set<Ljavax/tools/JavaFileManager$Location;>;
            8   50     6                l  Ljavax/tools/JavaFileManager$Location;
            9   48     8                n  Lcom/sun/tools/javac/util/Name;
           11   44     9             msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
      Exception table:
        from    to  target  type
           8    12      49  Class java.io.IOException
          13    48      49  Class java.io.IOException
    Signature: (Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;>;
    MethodParameters:
        Name  Flags
      toFind  

  private void findModuleInfo(com.sun.tools.javac.code.Symbol$ModuleSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
        start local 1 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
         0: .line 358
            aload 0 /* this */
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchOutputLocation:Ljavax/tools/JavaFileManager$Location;
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getModuleInfoFromLocation:(Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            astore 2 /* fo */
        start local 2 // javax.tools.JavaFileObject fo
         1: .line 359
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchLocation:Ljavax/tools/JavaFileManager$Location;
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getModuleInfoFromLocation:(Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            aload 2 /* fo */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.preferredFileObject:(Ljavax/tools/JavaFileObject;Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            astore 2 /* fo */
         2: .line 360
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.patchLocation:Ljavax/tools/JavaFileManager$Location;
            getstatic javax.tools.JavaFileObject$Kind.SOURCE:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getModuleInfoFromLocation:(Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            aload 2 /* fo */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.preferredFileObject:(Ljavax/tools/JavaFileObject;Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            astore 2 /* fo */
         3: .line 362
            aload 2 /* fo */
            ifnonnull 6
         4: .line 363
            aload 0 /* this */
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.classLocation:Ljavax/tools/JavaFileManager$Location;
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getModuleInfoFromLocation:(Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            astore 2 /* fo */
         5: .line 364
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.sourceLocation:Ljavax/tools/JavaFileManager$Location;
            getstatic javax.tools.JavaFileObject$Kind.SOURCE:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual com.sun.tools.javac.code.ModuleFinder.getModuleInfoFromLocation:(Ljavax/tools/JavaFileManager$Location;Ljavax/tools/JavaFileObject$Kind;)Ljavax/tools/JavaFileObject;
            aload 2 /* fo */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.preferredFileObject:(Ljavax/tools/JavaFileObject;Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            astore 2 /* fo */
         6: .line 367
      StackMap locals: javax.tools.JavaFileObject
      StackMap stack:
            aload 2 /* fo */
            ifnonnull 17
         7: .line 368
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.sourceLocation:Ljavax/tools/JavaFileManager$Location;
            ifnonnull 9
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.classLocation:Ljavax/tools/JavaFileManager$Location;
            ifnull 9
         8: .line 369
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.fileManager:Ljavax/tools/JavaFileManager;
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.classLocation:Ljavax/tools/JavaFileManager$Location;
            invokeinterface javax.tools.JavaFileManager.inferModuleName:(Ljavax/tools/JavaFileManager$Location;)Ljava/lang/String;
            goto 10
      StackMap locals:
      StackMap stack:
         9: aconst_null
        10: .line 368
      StackMap locals:
      StackMap stack: java.lang.String
            astore 3 /* moduleName */
        start local 3 // java.lang.String moduleName
        11: .line 370
            aload 3 /* moduleName */
            ifnull 15
        12: .line 371
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            aconst_null
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
        13: .line 372
            aload 1 /* msym */
            dup
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.flags_field:J
            ldc 4503599627370496
            lor
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.flags_field:J
        14: .line 373
            goto 22
        15: .line 374
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* msym */
            getstatic com.sun.tools.javac.code.Kinds$Kind.ERR:Lcom/sun/tools/javac/code/Kinds$Kind;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
        end local 3 // java.lang.String moduleName
        16: .line 376
            goto 22
        17: .line 377
      StackMap locals:
      StackMap stack:
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            aload 2 /* fo */
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
        18: .line 378
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.module_info:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            new com.sun.tools.javac.code.ModuleFinder$1
            dup
            aload 0 /* this */
            aload 1 /* msym */
            invokespecial com.sun.tools.javac.code.ModuleFinder$1.<init>:(Lcom/sun/tools/javac/code/ModuleFinder;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.completer:Lcom/sun/tools/javac/code/Symbol$Completer;
        end local 2 // javax.tools.JavaFileObject fo
        19: .line 389
            goto 22
      StackMap locals: com.sun.tools.javac.code.ModuleFinder com.sun.tools.javac.code.Symbol$ModuleSymbol
      StackMap stack: java.io.IOException
        20: pop
        21: .line 390
            aload 1 /* msym */
            getstatic com.sun.tools.javac.code.Kinds$Kind.ERR:Lcom/sun/tools/javac/code/Kinds$Kind;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
        22: .line 392
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Lcom/sun/tools/javac/code/ModuleFinder;
            0   23     1        msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            1   19     2          fo  Ljavax/tools/JavaFileObject;
           11   16     3  moduleName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0    19      20  Class java.io.IOException
    MethodParameters:
      Name  Flags
      msym  

  private javax.tools.JavaFileObject preferredFileObject(javax.tools.JavaFileObject, javax.tools.JavaFileObject);
    descriptor: (Ljavax/tools/JavaFileObject;Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
        start local 1 // javax.tools.JavaFileObject fo1
        start local 2 // javax.tools.JavaFileObject fo2
         0: .line 395
            aload 1 /* fo1 */
            ifnonnull 1
            aload 2 /* fo2 */
            areturn
         1: .line 396
      StackMap locals:
      StackMap stack:
            aload 2 /* fo2 */
            ifnonnull 2
            aload 1 /* fo1 */
            areturn
         2: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.ModuleFinder.classFinder:Lcom/sun/tools/javac/code/ClassFinder;
            aload 1 /* fo1 */
            aload 2 /* fo2 */
            invokevirtual com.sun.tools.javac.code.ClassFinder.preferredFileObject:(Ljavax/tools/JavaFileObject;Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            areturn
        end local 2 // javax.tools.JavaFileObject fo2
        end local 1 // javax.tools.JavaFileObject fo1
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/ModuleFinder;
            0    3     1   fo1  Ljavax/tools/JavaFileObject;
            0    3     2   fo2  Ljavax/tools/JavaFileObject;
    MethodParameters:
      Name  Flags
      fo1   
      fo2   

  com.sun.tools.javac.util.JCDiagnostic$Fragment getDescription(javax.tools.StandardLocation);
    descriptor: (Ljavax/tools/StandardLocation;)Lcom/sun/tools/javac/util/JCDiagnostic$Fragment;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.ModuleFinder this
        start local 1 // javax.tools.StandardLocation l
         0: .line 401
            invokestatic com.sun.tools.javac.code.ModuleFinder.$SWITCH_TABLE$javax$tools$StandardLocation:()[I
            aload 1 /* l */
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            iaload
            tableswitch { // 9 - 12
                    9: 2
                   10: 4
                   11: 3
                   12: 1
              default: 5
          }
         1: .line 402
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.resources.CompilerProperties$Fragments.LocnModule_path:Lcom/sun/tools/javac/util/JCDiagnostic$Fragment;
            areturn
         2: .line 403
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.resources.CompilerProperties$Fragments.LocnModule_source_path:Lcom/sun/tools/javac/util/JCDiagnostic$Fragment;
            areturn
         3: .line 404
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.resources.CompilerProperties$Fragments.LocnSystem_modules:Lcom/sun/tools/javac/util/JCDiagnostic$Fragment;
            areturn
         4: .line 405
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.resources.CompilerProperties$Fragments.LocnUpgrade_module_path:Lcom/sun/tools/javac/util/JCDiagnostic$Fragment;
            areturn
         5: .line 407
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 1 // javax.tools.StandardLocation l
        end local 0 // com.sun.tools.javac.code.ModuleFinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/code/ModuleFinder;
            0    6     1     l  Ljavax/tools/StandardLocation;
    MethodParameters:
      Name  Flags
      l     

  static int[] $SWITCH_TABLE$javax$tools$JavaFileObject$Kind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 71
            getstatic com.sun.tools.javac.code.ModuleFinder.$SWITCH_TABLE$javax$tools$JavaFileObject$Kind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.tools.JavaFileObject$Kind.values:()[Ljavax/tools/JavaFileObject$Kind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual javax.tools.JavaFileObject$Kind.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.tools.JavaFileObject$Kind.HTML:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual javax.tools.JavaFileObject$Kind.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.tools.JavaFileObject$Kind.OTHER:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual javax.tools.JavaFileObject$Kind.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.tools.JavaFileObject$Kind.SOURCE:Ljavax/tools/JavaFileObject$Kind;
            invokevirtual javax.tools.JavaFileObject$Kind.ordinal:()I
            iconst_1
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic com.sun.tools.javac.code.ModuleFinder.$SWITCH_TABLE$javax$tools$JavaFileObject$Kind:[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

  static int[] $SWITCH_TABLE$javax$tools$StandardLocation();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 71
            getstatic com.sun.tools.javac.code.ModuleFinder.$SWITCH_TABLE$javax$tools$StandardLocation:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.tools.StandardLocation.values:()[Ljavax/tools/StandardLocation;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.tools.StandardLocation.ANNOTATION_PROCESSOR_MODULE_PATH:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            bipush 6
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.tools.StandardLocation.ANNOTATION_PROCESSOR_PATH:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            iconst_5
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.tools.StandardLocation.CLASS_OUTPUT:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.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 javax.tools.StandardLocation.CLASS_PATH:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic javax.tools.StandardLocation.MODULE_PATH:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            bipush 12
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic javax.tools.StandardLocation.MODULE_SOURCE_PATH:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            bipush 9
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic javax.tools.StandardLocation.NATIVE_HEADER_OUTPUT:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            bipush 8
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic javax.tools.StandardLocation.PATCH_MODULE_PATH:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            bipush 13
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic javax.tools.StandardLocation.PLATFORM_CLASS_PATH:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            bipush 7
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic javax.tools.StandardLocation.SOURCE_OUTPUT:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            iconst_2
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic javax.tools.StandardLocation.SOURCE_PATH:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            iconst_4
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic javax.tools.StandardLocation.SYSTEM_MODULES:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            bipush 11
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic javax.tools.StandardLocation.UPGRADE_MODULE_PATH:Ljavax/tools/StandardLocation;
            invokevirtual javax.tools.StandardLocation.ordinal:()I
            bipush 10
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            dup
            putstatic com.sun.tools.javac.code.ModuleFinder.$SWITCH_TABLE$javax$tools$StandardLocation:[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
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
}
SourceFile: "ModuleFinder.java"
NestMembers:
  com.sun.tools.javac.code.ModuleFinder$1  com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator  com.sun.tools.javac.code.ModuleFinder$ModuleNameFromSourceReader
InnerClasses:
  public BadClassFile = com.sun.tools.javac.code.ClassFinder$BadClassFile of com.sun.tools.javac.code.ClassFinder
  public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
  com.sun.tools.javac.code.ModuleFinder$1
  ModuleLocationIterator = com.sun.tools.javac.code.ModuleFinder$ModuleLocationIterator of com.sun.tools.javac.code.ModuleFinder
  public abstract ModuleNameFromSourceReader = com.sun.tools.javac.code.ModuleFinder$ModuleNameFromSourceReader of com.sun.tools.javac.code.ModuleFinder
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  public abstract Completer = com.sun.tools.javac.code.Symbol$Completer of com.sun.tools.javac.code.Symbol
  public ModuleSymbol = com.sun.tools.javac.code.Symbol$ModuleSymbol of com.sun.tools.javac.code.Symbol
  public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
  public BadClassFile = com.sun.tools.javac.jvm.ModuleNameReader$BadClassFile of com.sun.tools.javac.jvm.ModuleNameReader
  public Errors = com.sun.tools.javac.resources.CompilerProperties$Errors of com.sun.tools.javac.resources.CompilerProperties
  public Fragments = com.sun.tools.javac.resources.CompilerProperties$Fragments of com.sun.tools.javac.resources.CompilerProperties
  public Key = com.sun.tools.javac.util.Context$Key of com.sun.tools.javac.util.Context
  public final Error = com.sun.tools.javac.util.JCDiagnostic$Error of com.sun.tools.javac.util.JCDiagnostic
  public Factory = com.sun.tools.javac.util.JCDiagnostic$Factory of com.sun.tools.javac.util.JCDiagnostic
  public final Fragment = com.sun.tools.javac.util.JCDiagnostic$Fragment of com.sun.tools.javac.util.JCDiagnostic
  public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager
  public final Kind = javax.tools.JavaFileObject$Kind of javax.tools.JavaFileObject