class com.sun.tools.javac.comp.Modules$ModuleVisitor extends com.sun.tools.javac.tree.JCTree$Visitor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.comp.Modules$ModuleVisitor
  super_class: com.sun.tools.javac.tree.JCTree$Visitor
{
  private com.sun.tools.javac.code.Symbol$ModuleSymbol sym;
    descriptor: Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    flags: (0x0002) ACC_PRIVATE

  private final java.util.Set<com.sun.tools.javac.code.Symbol$ModuleSymbol> allRequires;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;>;

  private final java.util.Map<com.sun.tools.javac.code.Symbol$PackageSymbol, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Directive$ExportsDirective>> allExports;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/sun/tools/javac/code/Symbol$PackageSymbol;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Directive$ExportsDirective;>;>;

  private final java.util.Map<com.sun.tools.javac.code.Symbol$PackageSymbol, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Directive$OpensDirective>> allOpens;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/sun/tools/javac/code/Symbol$PackageSymbol;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Directive$OpensDirective;>;>;

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

  void <init>(com.sun.tools.javac.comp.Modules);
    descriptor: (Lcom/sun/tools/javac/comp/Modules;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
         0: .line 756
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            aload 0 /* this */
            invokespecial com.sun.tools.javac.tree.JCTree$Visitor.<init>:()V
         1: .line 758
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.sun.tools.javac.comp.Modules$ModuleVisitor.allRequires:Ljava/util/Set;
         2: .line 759
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.tools.javac.comp.Modules$ModuleVisitor.allExports:Ljava/util/Map;
         3: .line 760
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.tools.javac.comp.Modules$ModuleVisitor.allOpens:Ljava/util/Map;
         4: .line 756
            return
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
    MethodParameters:
        Name  Flags
      this$0  final

  public void visitModuleDef(com.sun.tools.javac.tree.JCTree$JCModuleDecl);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCModuleDecl;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCModuleDecl tree
         0: .line 764
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCModuleDecl.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokestatic com.sun.tools.javac.util.Assert.checkNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$ModuleSymbol
            putfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
         1: .line 766
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCModuleDecl.getModuleType:()Lcom/sun/source/tree/ModuleTree$ModuleKind;
            getstatic com.sun.source.tree.ModuleTree$ModuleKind.OPEN:Lcom/sun/source/tree/ModuleTree$ModuleKind;
            if_acmpne 3
         2: .line 767
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.flags:Ljava/util/Set;
            getstatic com.sun.tools.javac.code.Symbol$ModuleFlags.OPEN:Lcom/sun/tools/javac/code/Symbol$ModuleFlags;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 769
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            dup
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.flags_field:J
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCModuleDecl.mods:Lcom/sun/tools/javac/tree/JCTree$JCModifiers;
            getfield com.sun.tools.javac.tree.JCTree$JCModifiers.flags:J
            ldc 131072
            land
            lor
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.flags_field:J
         4: .line 771
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.requires:Lcom/sun/tools/javac/util/List;
         5: .line 772
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.exports:Lcom/sun/tools/javac/util/List;
         6: .line 773
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.opens:Lcom/sun/tools/javac/util/List;
         7: .line 774
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCModuleDecl.directives:Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            invokedynamic accept(Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;)Ljava/util/function/Consumer;
              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;)V
                  com/sun/tools/javac/comp/Modules$ModuleVisitor.lambda$0(Lcom/sun/tools/javac/tree/JCTree$JCDirective;)V (7)
                  (Lcom/sun/tools/javac/tree/JCTree$JCDirective;)V
            invokevirtual com.sun.tools.javac.util.List.forEach:(Ljava/util/function/Consumer;)V
         8: .line 775
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.requires:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.reverse:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.requires:Lcom/sun/tools/javac/util/List;
         9: .line 776
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.exports:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.reverse:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.exports:Lcom/sun/tools/javac/util/List;
        10: .line 777
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.opens:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.reverse:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.opens:Lcom/sun/tools/javac/util/List;
        11: .line 778
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.ensureJavaBase:()V
        12: .line 779
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCModuleDecl tree
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0   13     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCModuleDecl;
    MethodParameters:
      Name  Flags
      tree  

  public void visitRequires(com.sun.tools.javac.tree.JCTree$JCRequires);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCRequires;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCRequires tree
         0: .line 783
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.moduleName:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.lookupModule:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            astore 2 /* msym */
        start local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
         1: .line 784
            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.MDL:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpeq 5
         2: .line 785
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.moduleName:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 2 /* msym */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ModuleNotFound:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
            invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
         3: .line 786
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.warnedMissing:Ljava/util/Set;
            aload 2 /* msym */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 787
            goto 23
      StackMap locals: com.sun.tools.javac.code.Symbol$ModuleSymbol
      StackMap stack:
         5: aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.allRequires:Ljava/util/Set;
            aload 2 /* msym */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 788
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.moduleName:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 2 /* msym */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.DuplicateRequires:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
            invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
         7: .line 789
            goto 23
         8: .line 790
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.allRequires:Ljava/util/Set;
            aload 2 /* msym */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 791
            ldc Lcom/sun/tools/javac/code/Directive$RequiresFlag;
            invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            astore 3 /* flags */
        start local 3 // java.util.Set flags
        10: .line 792
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.isTransitive:Z
            ifeq 15
        11: .line 793
            aload 2 /* msym */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.java_base:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            if_acmpne 14
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.source:Lcom/sun/tools/javac/code/Source;
            getstatic com.sun.tools.javac.code.Source.JDK10:Lcom/sun/tools/javac/code/Source;
            invokevirtual com.sun.tools.javac.code.Source.compareTo:(Ljava/lang/Enum;)I
            iflt 14
        12: .line 794
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCRequires.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.transitive:Lcom/sun/tools/javac/util/Name;
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ModifierNotAllowedHere:(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$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
        13: .line 795
            goto 15
        14: .line 796
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* flags */
            getstatic com.sun.tools.javac.code.Directive$RequiresFlag.TRANSITIVE:Lcom/sun/tools/javac/code/Directive$RequiresFlag;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        15: .line 799
      StackMap locals:
      StackMap stack:
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.isStaticPhase:Z
            ifeq 20
        16: .line 800
            aload 2 /* msym */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.java_base:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            if_acmpne 19
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.source:Lcom/sun/tools/javac/code/Source;
            getstatic com.sun.tools.javac.code.Source.JDK10:Lcom/sun/tools/javac/code/Source;
            invokevirtual com.sun.tools.javac.code.Source.compareTo:(Ljava/lang/Enum;)I
            iflt 19
        17: .line 801
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCRequires.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            getstatic com.sun.tools.javac.code.Flags$Flag.STATIC:Lcom/sun/tools/javac/code/Flags$Flag;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ModNotAllowedHere:(Ljava/util/Set;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
            invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
        18: .line 802
            goto 20
        19: .line 803
      StackMap locals:
      StackMap stack:
            aload 3 /* flags */
            getstatic com.sun.tools.javac.code.Directive$RequiresFlag.STATIC_PHASE:Lcom/sun/tools/javac/code/Directive$RequiresFlag;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        20: .line 806
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.code.Directive$RequiresDirective
            dup
            aload 2 /* msym */
            aload 3 /* flags */
            invokespecial com.sun.tools.javac.code.Directive$RequiresDirective.<init>:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Ljava/util/Set;)V
            astore 4 /* d */
        start local 4 // com.sun.tools.javac.code.Directive$RequiresDirective d
        21: .line 807
            aload 1 /* tree */
            aload 4 /* d */
            putfield com.sun.tools.javac.tree.JCTree$JCRequires.directive:Lcom/sun/tools/javac/code/Directive$RequiresDirective;
        22: .line 808
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.requires:Lcom/sun/tools/javac/util/List;
            aload 4 /* d */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.requires:Lcom/sun/tools/javac/util/List;
        end local 4 // com.sun.tools.javac.code.Directive$RequiresDirective d
        end local 3 // java.util.Set flags
        23: .line 810
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 1 // com.sun.tools.javac.tree.JCTree$JCRequires tree
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   24     0   this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0   24     1   tree  Lcom/sun/tools/javac/tree/JCTree$JCRequires;
            1   24     2   msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
           10   23     3  flags  Ljava/util/Set<Lcom/sun/tools/javac/code/Directive$RequiresFlag;>;
           21   23     4      d  Lcom/sun/tools/javac/code/Directive$RequiresDirective;
    MethodParameters:
      Name  Flags
      tree  

  public void visitExports(com.sun.tools.javac.tree.JCTree$JCExports);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCExports;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCExports tree
         0: .line 814
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCExports.qualid:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokestatic com.sun.tools.javac.tree.TreeInfo.fullName:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/Name;
            astore 2 /* name */
        start local 2 // com.sun.tools.javac.util.Name name
         1: .line 815
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.syms:Lcom/sun/tools/javac/code/Symtab;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 2 /* name */
            invokevirtual com.sun.tools.javac.code.Symtab.enterPackage:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            astore 3 /* packge */
        start local 3 // com.sun.tools.javac.code.Symbol$PackageSymbol packge
         2: .line 816
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.attr:Lcom/sun/tools/javac/comp/Attr;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCExports.qualid:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 3 /* packge */
            invokevirtual com.sun.tools.javac.comp.Attr.setPackageSymbols:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol;)V
         3: .line 818
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.allExports:Ljava/util/Map;
            aload 3 /* packge */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/sun/tools/javac/comp/Modules$ModuleVisitor.lambda$1(Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)Lcom/sun/tools/javac/util/List; (6)
                  (Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)Lcom/sun/tools/javac/util/List;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.List
            astore 4 /* exportsForPackage */
        start local 4 // com.sun.tools.javac.util.List exportsForPackage
         4: .line 819
            aload 4 /* exportsForPackage */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCExports com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.util.List java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Directive$ExportsDirective
            pop
         6: .line 820
            aload 0 /* this */
            aload 1 /* tree */
            aload 3 /* packge */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.reportExportsConflict:(Lcom/sun/tools/javac/tree/JCTree$JCExports;Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)V
         7: .line 819
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 823
            aconst_null
            astore 5 /* toModules */
        start local 5 // com.sun.tools.javac.util.List toModules
         9: .line 824
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCExports.moduleNames:Lcom/sun/tools/javac/util/List;
            ifnull 23
        10: .line 825
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 6 /* to */
        start local 6 // java.util.Set to
        11: .line 826
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCExports.moduleNames:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 21
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCExports com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.util.List com.sun.tools.javac.util.List java.util.Set top java.util.Iterator
      StackMap stack:
        12: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree$JCExpression
            astore 7 /* n */
        start local 7 // com.sun.tools.javac.tree.JCTree$JCExpression n
        13: .line 827
            aload 0 /* this */
            aload 7 /* n */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.lookupModule:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            astore 9 /* msym */
        start local 9 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        14: .line 828
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.chk:Lcom/sun/tools/javac/comp/Check;
            aload 7 /* n */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 9 /* msym */
            invokevirtual com.sun.tools.javac.comp.Check.checkModuleExists:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
        15: .line 829
            aload 4 /* exportsForPackage */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 18
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCExports com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.util.List com.sun.tools.javac.util.List java.util.Set com.sun.tools.javac.tree.JCTree$JCExpression java.util.Iterator com.sun.tools.javac.code.Symbol$ModuleSymbol top java.util.Iterator
      StackMap stack:
        16: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Directive$ExportsDirective
            astore 10 /* d */
        start local 10 // com.sun.tools.javac.code.Directive$ExportsDirective d
        17: .line 830
            aload 0 /* this */
            aload 7 /* n */
            aload 9 /* msym */
            aload 10 /* d */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.checkDuplicateExportsToModule:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/code/Directive$ExportsDirective;)V
        end local 10 // com.sun.tools.javac.code.Directive$ExportsDirective d
        18: .line 829
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        19: .line 832
            aload 6 /* to */
            aload 9 /* msym */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifne 21
        20: .line 833
            aload 0 /* this */
            aload 7 /* n */
            aload 9 /* msym */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.reportExportsConflictToModule:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
        end local 9 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 7 // com.sun.tools.javac.tree.JCTree$JCExpression n
        21: .line 826
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCExports com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.util.List com.sun.tools.javac.util.List java.util.Set top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        22: .line 836
            aload 6 /* to */
            invokestatic com.sun.tools.javac.util.List.from:(Ljava/lang/Iterable;)Lcom/sun/tools/javac/util/List;
            astore 5 /* toModules */
        end local 6 // java.util.Set to
        23: .line 839
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCExports com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.util.List com.sun.tools.javac.util.List
      StackMap stack:
            aload 5 /* toModules */
            ifnull 24
            aload 5 /* toModules */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifne 29
        24: .line 840
      StackMap locals:
      StackMap stack:
            ldc Lcom/sun/tools/javac/code/Directive$ExportsFlag;
            invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            astore 6 /* flags */
        start local 6 // java.util.Set flags
        25: .line 841
            new com.sun.tools.javac.code.Directive$ExportsDirective
            dup
            aload 3 /* packge */
            aload 5 /* toModules */
            aload 6 /* flags */
            invokespecial com.sun.tools.javac.code.Directive$ExportsDirective.<init>:(Lcom/sun/tools/javac/code/Symbol$PackageSymbol;Lcom/sun/tools/javac/util/List;Ljava/util/Set;)V
            astore 7 /* d */
        start local 7 // com.sun.tools.javac.code.Directive$ExportsDirective d
        26: .line 842
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.exports:Lcom/sun/tools/javac/util/List;
            aload 7 /* d */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.exports:Lcom/sun/tools/javac/util/List;
        27: .line 843
            aload 1 /* tree */
            aload 7 /* d */
            putfield com.sun.tools.javac.tree.JCTree$JCExports.directive:Lcom/sun/tools/javac/code/Directive$ExportsDirective;
        28: .line 845
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.allExports:Ljava/util/Map;
            aload 3 /* packge */
            aload 4 /* exportsForPackage */
            aload 7 /* d */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // com.sun.tools.javac.code.Directive$ExportsDirective d
        end local 6 // java.util.Set flags
        29: .line 847
      StackMap locals:
      StackMap stack:
            return
        end local 5 // com.sun.tools.javac.util.List toModules
        end local 4 // com.sun.tools.javac.util.List exportsForPackage
        end local 3 // com.sun.tools.javac.code.Symbol$PackageSymbol packge
        end local 2 // com.sun.tools.javac.util.Name name
        end local 1 // com.sun.tools.javac.tree.JCTree$JCExports tree
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   30     0               this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0   30     1               tree  Lcom/sun/tools/javac/tree/JCTree$JCExports;
            1   30     2               name  Lcom/sun/tools/javac/util/Name;
            2   30     3             packge  Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            4   30     4  exportsForPackage  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Directive$ExportsDirective;>;
            9   30     5          toModules  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;>;
           11   23     6                 to  Ljava/util/Set<Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;>;
           13   21     7                  n  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
           14   21     9               msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
           17   18    10                  d  Lcom/sun/tools/javac/code/Directive$ExportsDirective;
           25   29     6              flags  Ljava/util/Set<Lcom/sun/tools/javac/code/Directive$ExportsFlag;>;
           26   29     7                  d  Lcom/sun/tools/javac/code/Directive$ExportsDirective;
    MethodParameters:
      Name  Flags
      tree  

  private void reportExportsConflict(com.sun.tools.javac.tree.JCTree$JCExports, com.sun.tools.javac.code.Symbol$PackageSymbol);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCExports;Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCExports tree
        start local 2 // com.sun.tools.javac.code.Symbol$PackageSymbol packge
         0: .line 850
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCExports.qualid:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 2 /* packge */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ConflictingExports:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
            invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
         1: .line 851
            return
        end local 2 // com.sun.tools.javac.code.Symbol$PackageSymbol packge
        end local 1 // com.sun.tools.javac.tree.JCTree$JCExports tree
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0    2     1    tree  Lcom/sun/tools/javac/tree/JCTree$JCExports;
            0    2     2  packge  Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
    MethodParameters:
        Name  Flags
      tree    
      packge  

  private void checkDuplicateExportsToModule(com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.code.Symbol$ModuleSymbol, com.sun.tools.javac.code.Directive$ExportsDirective);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/code/Directive$ExportsDirective;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCExpression name
        start local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        start local 3 // com.sun.tools.javac.code.Directive$ExportsDirective d
         0: .line 855
            aload 3 /* d */
            getfield com.sun.tools.javac.code.Directive$ExportsDirective.modules:Lcom/sun/tools/javac/util/List;
            ifnull 6
         1: .line 856
            aload 3 /* d */
            getfield com.sun.tools.javac.code.Directive$ExportsDirective.modules:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCExpression com.sun.tools.javac.code.Symbol$ModuleSymbol com.sun.tools.javac.code.Directive$ExportsDirective top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$ModuleSymbol
            astore 4 /* other */
        start local 4 // com.sun.tools.javac.code.Symbol$ModuleSymbol other
         3: .line 857
            aload 2 /* msym */
            aload 4 /* other */
            if_acmpne 5
         4: .line 858
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* msym */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.reportExportsConflictToModule:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
        end local 4 // com.sun.tools.javac.code.Symbol$ModuleSymbol other
         5: .line 856
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 862
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCExpression com.sun.tools.javac.code.Symbol$ModuleSymbol com.sun.tools.javac.code.Directive$ExportsDirective
      StackMap stack:
            return
        end local 3 // com.sun.tools.javac.code.Directive$ExportsDirective d
        end local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 1 // com.sun.tools.javac.tree.JCTree$JCExpression name
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0    7     1   name  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            0    7     2   msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            0    7     3      d  Lcom/sun/tools/javac/code/Directive$ExportsDirective;
            3    5     4  other  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    MethodParameters:
      Name  Flags
      name  
      msym  
      d     

  private void reportExportsConflictToModule(com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.code.Symbol$ModuleSymbol);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCExpression name
        start local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
         0: .line 865
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* name */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 2 /* msym */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ConflictingExportsToModule:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
            invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
         1: .line 866
            return
        end local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 1 // com.sun.tools.javac.tree.JCTree$JCExpression name
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0    2     1  name  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            0    2     2  msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    MethodParameters:
      Name  Flags
      name  
      msym  

  public void visitOpens(com.sun.tools.javac.tree.JCTree$JCOpens);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCOpens;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCOpens tree
         0: .line 870
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCOpens.qualid:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokestatic com.sun.tools.javac.tree.TreeInfo.fullName:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/Name;
            astore 2 /* name */
        start local 2 // com.sun.tools.javac.util.Name name
         1: .line 871
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.syms:Lcom/sun/tools/javac/code/Symtab;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 2 /* name */
            invokevirtual com.sun.tools.javac.code.Symtab.enterPackage:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            astore 3 /* packge */
        start local 3 // com.sun.tools.javac.code.Symbol$PackageSymbol packge
         2: .line 872
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.attr:Lcom/sun/tools/javac/comp/Attr;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCOpens.qualid:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 3 /* packge */
            invokevirtual com.sun.tools.javac.comp.Attr.setPackageSymbols:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol;)V
         3: .line 874
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.flags:Ljava/util/Set;
            getstatic com.sun.tools.javac.code.Symbol$ModuleFlags.OPEN:Lcom/sun/tools/javac/code/Symbol$ModuleFlags;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 875
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCOpens.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            getstatic com.sun.tools.javac.resources.CompilerProperties$Errors.NoOpensUnlessStrong:Lcom/sun/tools/javac/util/JCDiagnostic$Error;
            invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
         5: .line 877
      StackMap locals: com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$PackageSymbol
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.allOpens:Ljava/util/Map;
            aload 3 /* packge */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/sun/tools/javac/comp/Modules$ModuleVisitor.lambda$2(Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)Lcom/sun/tools/javac/util/List; (6)
                  (Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)Lcom/sun/tools/javac/util/List;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.List
            astore 4 /* opensForPackage */
        start local 4 // com.sun.tools.javac.util.List opensForPackage
         6: .line 878
            aload 4 /* opensForPackage */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 9
      StackMap locals: com.sun.tools.javac.util.List java.util.Iterator
      StackMap stack:
         7: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Directive$OpensDirective
            pop
         8: .line 879
            aload 0 /* this */
            aload 1 /* tree */
            aload 3 /* packge */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.reportOpensConflict:(Lcom/sun/tools/javac/tree/JCTree$JCOpens;Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)V
         9: .line 878
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 882
            aconst_null
            astore 5 /* toModules */
        start local 5 // com.sun.tools.javac.util.List toModules
        11: .line 883
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCOpens.moduleNames:Lcom/sun/tools/javac/util/List;
            ifnull 25
        12: .line 884
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 6 /* to */
        start local 6 // java.util.Set to
        13: .line 885
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCOpens.moduleNames:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 23
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCOpens com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.util.List com.sun.tools.javac.util.List java.util.Set top java.util.Iterator
      StackMap stack:
        14: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree$JCExpression
            astore 7 /* n */
        start local 7 // com.sun.tools.javac.tree.JCTree$JCExpression n
        15: .line 886
            aload 0 /* this */
            aload 7 /* n */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.lookupModule:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            astore 9 /* msym */
        start local 9 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        16: .line 887
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.chk:Lcom/sun/tools/javac/comp/Check;
            aload 7 /* n */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 9 /* msym */
            invokevirtual com.sun.tools.javac.comp.Check.checkModuleExists:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
        17: .line 888
            aload 4 /* opensForPackage */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 20
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCOpens com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.util.List com.sun.tools.javac.util.List java.util.Set com.sun.tools.javac.tree.JCTree$JCExpression java.util.Iterator com.sun.tools.javac.code.Symbol$ModuleSymbol top java.util.Iterator
      StackMap stack:
        18: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Directive$OpensDirective
            astore 10 /* d */
        start local 10 // com.sun.tools.javac.code.Directive$OpensDirective d
        19: .line 889
            aload 0 /* this */
            aload 7 /* n */
            aload 9 /* msym */
            aload 10 /* d */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.checkDuplicateOpensToModule:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/code/Directive$OpensDirective;)V
        end local 10 // com.sun.tools.javac.code.Directive$OpensDirective d
        20: .line 888
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        21: .line 891
            aload 6 /* to */
            aload 9 /* msym */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifne 23
        22: .line 892
            aload 0 /* this */
            aload 7 /* n */
            aload 9 /* msym */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.reportOpensConflictToModule:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
        end local 9 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 7 // com.sun.tools.javac.tree.JCTree$JCExpression n
        23: .line 885
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCOpens com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.util.List com.sun.tools.javac.util.List java.util.Set top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        24: .line 895
            aload 6 /* to */
            invokestatic com.sun.tools.javac.util.List.from:(Ljava/lang/Iterable;)Lcom/sun/tools/javac/util/List;
            astore 5 /* toModules */
        end local 6 // java.util.Set to
        25: .line 898
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCOpens com.sun.tools.javac.util.Name com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.util.List com.sun.tools.javac.util.List
      StackMap stack:
            aload 5 /* toModules */
            ifnull 26
            aload 5 /* toModules */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifne 31
        26: .line 899
      StackMap locals:
      StackMap stack:
            ldc Lcom/sun/tools/javac/code/Directive$OpensFlag;
            invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            astore 6 /* flags */
        start local 6 // java.util.Set flags
        27: .line 900
            new com.sun.tools.javac.code.Directive$OpensDirective
            dup
            aload 3 /* packge */
            aload 5 /* toModules */
            aload 6 /* flags */
            invokespecial com.sun.tools.javac.code.Directive$OpensDirective.<init>:(Lcom/sun/tools/javac/code/Symbol$PackageSymbol;Lcom/sun/tools/javac/util/List;Ljava/util/Set;)V
            astore 7 /* d */
        start local 7 // com.sun.tools.javac.code.Directive$OpensDirective d
        28: .line 901
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.opens:Lcom/sun/tools/javac/util/List;
            aload 7 /* d */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.opens:Lcom/sun/tools/javac/util/List;
        29: .line 902
            aload 1 /* tree */
            aload 7 /* d */
            putfield com.sun.tools.javac.tree.JCTree$JCOpens.directive:Lcom/sun/tools/javac/code/Directive$OpensDirective;
        30: .line 904
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.allOpens:Ljava/util/Map;
            aload 3 /* packge */
            aload 4 /* opensForPackage */
            aload 7 /* d */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // com.sun.tools.javac.code.Directive$OpensDirective d
        end local 6 // java.util.Set flags
        31: .line 906
      StackMap locals:
      StackMap stack:
            return
        end local 5 // com.sun.tools.javac.util.List toModules
        end local 4 // com.sun.tools.javac.util.List opensForPackage
        end local 3 // com.sun.tools.javac.code.Symbol$PackageSymbol packge
        end local 2 // com.sun.tools.javac.util.Name name
        end local 1 // com.sun.tools.javac.tree.JCTree$JCOpens tree
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0             this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0   32     1             tree  Lcom/sun/tools/javac/tree/JCTree$JCOpens;
            1   32     2             name  Lcom/sun/tools/javac/util/Name;
            2   32     3           packge  Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            6   32     4  opensForPackage  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Directive$OpensDirective;>;
           11   32     5        toModules  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;>;
           13   25     6               to  Ljava/util/Set<Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;>;
           15   23     7                n  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
           16   23     9             msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
           19   20    10                d  Lcom/sun/tools/javac/code/Directive$OpensDirective;
           27   31     6            flags  Ljava/util/Set<Lcom/sun/tools/javac/code/Directive$OpensFlag;>;
           28   31     7                d  Lcom/sun/tools/javac/code/Directive$OpensDirective;
    MethodParameters:
      Name  Flags
      tree  

  private void reportOpensConflict(com.sun.tools.javac.tree.JCTree$JCOpens, com.sun.tools.javac.code.Symbol$PackageSymbol);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCOpens;Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCOpens tree
        start local 2 // com.sun.tools.javac.code.Symbol$PackageSymbol packge
         0: .line 909
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCOpens.qualid:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 2 /* packge */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ConflictingOpens:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
            invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
         1: .line 910
            return
        end local 2 // com.sun.tools.javac.code.Symbol$PackageSymbol packge
        end local 1 // com.sun.tools.javac.tree.JCTree$JCOpens tree
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0    2     1    tree  Lcom/sun/tools/javac/tree/JCTree$JCOpens;
            0    2     2  packge  Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
    MethodParameters:
        Name  Flags
      tree    
      packge  

  private void checkDuplicateOpensToModule(com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.code.Symbol$ModuleSymbol, com.sun.tools.javac.code.Directive$OpensDirective);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/code/Directive$OpensDirective;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCExpression name
        start local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        start local 3 // com.sun.tools.javac.code.Directive$OpensDirective d
         0: .line 914
            aload 3 /* d */
            getfield com.sun.tools.javac.code.Directive$OpensDirective.modules:Lcom/sun/tools/javac/util/List;
            ifnull 6
         1: .line 915
            aload 3 /* d */
            getfield com.sun.tools.javac.code.Directive$OpensDirective.modules:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCExpression com.sun.tools.javac.code.Symbol$ModuleSymbol com.sun.tools.javac.code.Directive$OpensDirective top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$ModuleSymbol
            astore 4 /* other */
        start local 4 // com.sun.tools.javac.code.Symbol$ModuleSymbol other
         3: .line 916
            aload 2 /* msym */
            aload 4 /* other */
            if_acmpne 5
         4: .line 917
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* msym */
            invokevirtual com.sun.tools.javac.comp.Modules$ModuleVisitor.reportOpensConflictToModule:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
        end local 4 // com.sun.tools.javac.code.Symbol$ModuleSymbol other
         5: .line 915
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 921
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor com.sun.tools.javac.tree.JCTree$JCExpression com.sun.tools.javac.code.Symbol$ModuleSymbol com.sun.tools.javac.code.Directive$OpensDirective
      StackMap stack:
            return
        end local 3 // com.sun.tools.javac.code.Directive$OpensDirective d
        end local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 1 // com.sun.tools.javac.tree.JCTree$JCExpression name
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0    7     1   name  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            0    7     2   msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            0    7     3      d  Lcom/sun/tools/javac/code/Directive$OpensDirective;
            3    5     4  other  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    MethodParameters:
      Name  Flags
      name  
      msym  
      d     

  private void reportOpensConflictToModule(com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.code.Symbol$ModuleSymbol);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCExpression name
        start local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
         0: .line 924
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 1 /* name */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 2 /* msym */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ConflictingOpensToModule:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
            invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
         1: .line 925
            return
        end local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 1 // com.sun.tools.javac.tree.JCTree$JCExpression name
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0    2     1  name  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            0    2     2  msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    MethodParameters:
      Name  Flags
      name  
      msym  

  public void visitProvides(com.sun.tools.javac.tree.JCTree$JCProvides);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCProvides;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCProvides tree
         0: .line 928
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCProvides tree
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0    1     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCProvides;
    MethodParameters:
      Name  Flags
      tree  

  public void visitUses(com.sun.tools.javac.tree.JCTree$JCUses);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCUses;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCUses tree
         0: .line 931
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCUses tree
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0    1     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCUses;
    MethodParameters:
      Name  Flags
      tree  

  private void ensureJavaBase();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
         0: .line 934
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.name:Lcom/sun/tools/javac/util/Name;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.java_base:Lcom/sun/tools/javac/util/Name;
            if_acmpne 2
         1: .line 935
            return
         2: .line 937
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.requires:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: com.sun.tools.javac.comp.Modules$ModuleVisitor top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Directive$RequiresDirective
            astore 1 /* d */
        start local 1 // com.sun.tools.javac.code.Directive$RequiresDirective d
         4: .line 938
            aload 1 /* d */
            getfield com.sun.tools.javac.code.Directive$RequiresDirective.module:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.name:Lcom/sun/tools/javac/util/Name;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.java_base:Lcom/sun/tools/javac/util/Name;
            if_acmpne 6
         5: .line 939
            return
        end local 1 // com.sun.tools.javac.code.Directive$RequiresDirective d
         6: .line 937
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         7: .line 942
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.syms:Lcom/sun/tools/javac/code/Symtab;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.java_base:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.code.Symtab.enterModule:(Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            astore 1 /* java_base */
        start local 1 // com.sun.tools.javac.code.Symbol$ModuleSymbol java_base
         8: .line 944
            new com.sun.tools.javac.code.Directive$RequiresDirective
            dup
            aload 1 /* java_base */
         9: .line 945
            getstatic com.sun.tools.javac.code.Directive$RequiresFlag.MANDATED:Lcom/sun/tools/javac/code/Directive$RequiresFlag;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
        10: .line 944
            invokespecial com.sun.tools.javac.code.Directive$RequiresDirective.<init>:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Ljava/util/Set;)V
        11: .line 943
            astore 2 /* d */
        start local 2 // com.sun.tools.javac.code.Directive$RequiresDirective d
        12: .line 946
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.sym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.requires:Lcom/sun/tools/javac/util/List;
            aload 2 /* d */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.requires:Lcom/sun/tools/javac/util/List;
        13: .line 947
            return
        end local 2 // com.sun.tools.javac.code.Directive$RequiresDirective d
        end local 1 // com.sun.tools.javac.code.Symbol$ModuleSymbol java_base
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            4    6     1          d  Lcom/sun/tools/javac/code/Directive$RequiresDirective;
            8   14     1  java_base  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
           12   14     2          d  Lcom/sun/tools/javac/code/Directive$RequiresDirective;

  private com.sun.tools.javac.code.Symbol$ModuleSymbol lookupModule(com.sun.tools.javac.tree.JCTree$JCExpression);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCExpression;)Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCExpression moduleName
         0: .line 950
            aload 1 /* moduleName */
            invokestatic com.sun.tools.javac.tree.TreeInfo.fullName:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/Name;
            astore 2 /* name */
        start local 2 // com.sun.tools.javac.util.Name name
         1: .line 951
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$ModuleVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.moduleFinder:Lcom/sun/tools/javac/code/ModuleFinder;
            aload 2 /* name */
            invokevirtual com.sun.tools.javac.code.ModuleFinder.findModule:(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
         2: .line 952
            aload 1 /* moduleName */
            aload 3 /* msym */
            invokestatic com.sun.tools.javac.tree.TreeInfo.setSymbol:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Symbol;)V
         3: .line 953
            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 // com.sun.tools.javac.tree.JCTree$JCExpression moduleName
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0    4     1  moduleName  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            1    4     2        name  Lcom/sun/tools/javac/util/Name;
            2    4     3        msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    MethodParameters:
            Name  Flags
      moduleName  

  private void lambda$0(com.sun.tools.javac.tree.JCTree$JCDirective);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCDirective;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCDirective t
         0: .line 774
            aload 1 /* t */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCDirective.accept:(Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCDirective t
        end local 0 // com.sun.tools.javac.comp.Modules$ModuleVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/Modules$ModuleVisitor;
            0    1     1     t  Lcom/sun/tools/javac/tree/JCTree$JCDirective;

  private static com.sun.tools.javac.util.List lambda$1(com.sun.tools.javac.code.Symbol$PackageSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)Lcom/sun/tools/javac/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$PackageSymbol p
         0: .line 818
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$PackageSymbol p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     p  Lcom/sun/tools/javac/code/Symbol$PackageSymbol;

  private static com.sun.tools.javac.util.List lambda$2(com.sun.tools.javac.code.Symbol$PackageSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)Lcom/sun/tools/javac/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$PackageSymbol p
         0: .line 877
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$PackageSymbol p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     p  Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
}
SourceFile: "Modules.java"
NestHost: com.sun.tools.javac.comp.Modules
InnerClasses:
  public final ModuleKind = com.sun.source.tree.ModuleTree$ModuleKind of com.sun.source.tree.ModuleTree
  public ExportsDirective = com.sun.tools.javac.code.Directive$ExportsDirective of com.sun.tools.javac.code.Directive
  public final ExportsFlag = com.sun.tools.javac.code.Directive$ExportsFlag of com.sun.tools.javac.code.Directive
  public OpensDirective = com.sun.tools.javac.code.Directive$OpensDirective of com.sun.tools.javac.code.Directive
  public final OpensFlag = com.sun.tools.javac.code.Directive$OpensFlag of com.sun.tools.javac.code.Directive
  public RequiresDirective = com.sun.tools.javac.code.Directive$RequiresDirective of com.sun.tools.javac.code.Directive
  public final RequiresFlag = com.sun.tools.javac.code.Directive$RequiresFlag of com.sun.tools.javac.code.Directive
  public final Flag = com.sun.tools.javac.code.Flags$Flag of com.sun.tools.javac.code.Flags
  public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
  public final ModuleFlags = com.sun.tools.javac.code.Symbol$ModuleFlags of com.sun.tools.javac.code.Symbol
  public ModuleSymbol = com.sun.tools.javac.code.Symbol$ModuleSymbol of com.sun.tools.javac.code.Symbol
  public PackageSymbol = com.sun.tools.javac.code.Symbol$PackageSymbol of com.sun.tools.javac.code.Symbol
  ModuleVisitor = com.sun.tools.javac.comp.Modules$ModuleVisitor of com.sun.tools.javac.comp.Modules
  public Errors = com.sun.tools.javac.resources.CompilerProperties$Errors of com.sun.tools.javac.resources.CompilerProperties
  public abstract JCDirective = com.sun.tools.javac.tree.JCTree$JCDirective of com.sun.tools.javac.tree.JCTree
  public JCExports = com.sun.tools.javac.tree.JCTree$JCExports of com.sun.tools.javac.tree.JCTree
  public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree
  public JCModifiers = com.sun.tools.javac.tree.JCTree$JCModifiers of com.sun.tools.javac.tree.JCTree
  public JCModuleDecl = com.sun.tools.javac.tree.JCTree$JCModuleDecl of com.sun.tools.javac.tree.JCTree
  public JCOpens = com.sun.tools.javac.tree.JCTree$JCOpens of com.sun.tools.javac.tree.JCTree
  public JCProvides = com.sun.tools.javac.tree.JCTree$JCProvides of com.sun.tools.javac.tree.JCTree
  public JCRequires = com.sun.tools.javac.tree.JCTree$JCRequires of com.sun.tools.javac.tree.JCTree
  public JCUses = com.sun.tools.javac.tree.JCTree$JCUses of com.sun.tools.javac.tree.JCTree
  public abstract Visitor = com.sun.tools.javac.tree.JCTree$Visitor of com.sun.tools.javac.tree.JCTree
  public abstract DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic
  public final Error = com.sun.tools.javac.util.JCDiagnostic$Error of com.sun.tools.javac.util.JCDiagnostic
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles