class org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment extends org.eclipse.jdt.internal.core.builder.NameEnvironment
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment
  super_class: org.eclipse.jdt.internal.core.builder.NameEnvironment
{
  java.util.Set<java.lang.String> modules;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  public void <init>(org.eclipse.jdt.core.IJavaProject);
    descriptor: (Lorg/eclipse/jdt/core/IJavaProject;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
        start local 1 // org.eclipse.jdt.core.IJavaProject javaProject
         0: .line 49
            aload 0 /* this */
            aload 1 /* javaProject */
            getstatic org.eclipse.jdt.internal.core.CompilationGroup.MAIN:Lorg/eclipse/jdt/internal/core/CompilationGroup;
            invokespecial org.eclipse.jdt.internal.core.builder.NameEnvironment.<init>:(Lorg/eclipse/jdt/core/IJavaProject;Lorg/eclipse/jdt/internal/core/CompilationGroup;)V
         1: .line 52
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment.modules:Ljava/util/Set;
         2: .line 50
            return
        end local 1 // org.eclipse.jdt.core.IJavaProject javaProject
        end local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/eclipse/jdt/internal/core/util/ModuleUtil$ModuleAccumulatorEnvironment;
            0    3     1  javaProject  Lorg/eclipse/jdt/core/IJavaProject;
    MethodParameters:
             Name  Flags
      javaProject  

  public java.lang.String[] getModules();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
         0: .line 54
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment.modules:Ljava/util/Set;
            getstatic org.eclipse.jdt.internal.compiler.lookup.TypeConstants.JAVA_BASE:[C
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 55
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment.modules:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.String
            astore 1 /* mods */
        start local 1 // java.lang.String[] mods
         2: .line 56
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment.modules:Ljava/util/Set;
            aload 1 /* mods */
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 1 // java.lang.String[] mods
        end local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jdt/internal/core/util/ModuleUtil$ModuleAccumulatorEnvironment;
            2    3     1  mods  [Ljava/lang/String;

  protected boolean isOnModulePath(org.eclipse.jdt.internal.core.ClasspathEntry);
    descriptor: (Lorg/eclipse/jdt/internal/core/ClasspathEntry;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
        start local 1 // org.eclipse.jdt.internal.core.ClasspathEntry entry
         0: .line 61
            iconst_1
            ireturn
        end local 1 // org.eclipse.jdt.internal.core.ClasspathEntry entry
        end local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/eclipse/jdt/internal/core/util/ModuleUtil$ModuleAccumulatorEnvironment;
            0    1     1  entry  Lorg/eclipse/jdt/internal/core/ClasspathEntry;
    MethodParameters:
       Name  Flags
      entry  

  public void cleanup();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
         0: .line 66
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment.modules:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
         1: .line 67
            return
        end local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/core/util/ModuleUtil$ModuleAccumulatorEnvironment;

  public org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer findType(char[][], char[]);
    descriptor: ([[C[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
        start local 1 // char[][] compoundTypeName
        start local 2 // char[] moduleName
         0: .line 71
            aload 0 /* this */
            aload 1 /* compoundTypeName */
            aload 2 /* moduleName */
            invokespecial org.eclipse.jdt.internal.core.builder.NameEnvironment.findType:([[C[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            astore 3 /* answer */
        start local 3 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer answer
         1: .line 72
            aload 3 /* answer */
            ifnull 3
            aload 3 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.moduleName:()[C
            ifnull 3
         2: .line 73
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment.modules:Ljava/util/Set;
            aload 3 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.moduleName:()[C
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 75
      StackMap locals: org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer
      StackMap stack:
            aload 3 /* answer */
            areturn
        end local 3 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer answer
        end local 2 // char[] moduleName
        end local 1 // char[][] compoundTypeName
        end local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lorg/eclipse/jdt/internal/core/util/ModuleUtil$ModuleAccumulatorEnvironment;
            0    4     1  compoundTypeName  [[C
            0    4     2        moduleName  [C
            1    4     3            answer  Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
    MethodParameters:
                  Name  Flags
      compoundTypeName  
      moduleName        

  public org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer findType(char[], char[][], char[]);
    descriptor: ([C[[C[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
        start local 1 // char[] typeName
        start local 2 // char[][] packageName
        start local 3 // char[] moduleName
         0: .line 80
            aload 0 /* this */
            aload 1 /* typeName */
            aload 2 /* packageName */
            aload 3 /* moduleName */
            invokespecial org.eclipse.jdt.internal.core.builder.NameEnvironment.findType:([C[[C[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            astore 4 /* answer */
        start local 4 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer answer
         1: .line 81
            aload 4 /* answer */
            ifnull 3
            aload 4 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.moduleName:()[C
            ifnull 3
         2: .line 82
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment.modules:Ljava/util/Set;
            aload 4 /* answer */
            invokevirtual org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer.moduleName:()[C
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 84
      StackMap locals: org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer
      StackMap stack:
            aload 4 /* answer */
            areturn
        end local 4 // org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer answer
        end local 3 // char[] moduleName
        end local 2 // char[][] packageName
        end local 1 // char[] typeName
        end local 0 // org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/eclipse/jdt/internal/core/util/ModuleUtil$ModuleAccumulatorEnvironment;
            0    4     1     typeName  [C
            0    4     2  packageName  [[C
            0    4     3   moduleName  [C
            1    4     4       answer  Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
    MethodParameters:
             Name  Flags
      typeName     
      packageName  
      moduleName   
}
SourceFile: "ModuleUtil.java"
NestHost: org.eclipse.jdt.internal.core.util.ModuleUtil
InnerClasses:
  ModuleAccumulatorEnvironment = org.eclipse.jdt.internal.core.util.ModuleUtil$ModuleAccumulatorEnvironment of org.eclipse.jdt.internal.core.util.ModuleUtil