class com.sun.tools.javac.comp.Modules$UsesProvidesVisitor 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$UsesProvidesVisitor
  super_class: com.sun.tools.javac.tree.JCTree$Visitor
{
  private final com.sun.tools.javac.code.Symbol$ModuleSymbol msym;
    descriptor: Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext> env;
    descriptor: Lcom/sun/tools/javac/comp/Env;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;

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

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

  java.util.Map<com.sun.tools.javac.code.Directive$ProvidesDirective, com.sun.tools.javac.tree.JCTree$JCProvides> directiveToTreeMap;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Lcom/sun/tools/javac/code/Directive$ProvidesDirective;Lcom/sun/tools/javac/tree/JCTree$JCProvides;>;

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

  public void <init>(com.sun.tools.javac.code.Symbol$ModuleSymbol, com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>);
    descriptor: (Lcom/sun/tools/javac/comp/Modules;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/comp/Env;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
        start local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        start local 3 // com.sun.tools.javac.comp.Env env
         0: .line 978
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            aload 0 /* this */
            invokespecial com.sun.tools.javac.tree.JCTree$Visitor.<init>:()V
         1: .line 975
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.allUses:Ljava/util/Set;
         2: .line 976
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.allProvides:Ljava/util/Map;
         3: .line 1058
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.directiveToTreeMap:Ljava/util/Map;
         4: .line 979
            aload 0 /* this */
            aload 2 /* msym */
            putfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
         5: .line 980
            aload 0 /* this */
            aload 3 /* env */
            putfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.env:Lcom/sun/tools/javac/comp/Env;
         6: .line 981
            return
        end local 3 // com.sun.tools.javac.comp.Env env
        end local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            0    7     2  msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            0    7     3   env  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
    Signature: (Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;)V
    MethodParameters:
        Name  Flags
      this$0  final
      msym    
      env     

  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=5, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCModuleDecl tree
         0: .line 985
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym: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.directives:Lcom/sun/tools/javac/util/List;
         1: .line 986
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym: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.provides:Lcom/sun/tools/javac/util/List;
         2: .line 987
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym: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.uses:Lcom/sun/tools/javac/util/List;
         3: .line 988
            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$UsesProvidesVisitor;)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$UsesProvidesVisitor.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
         4: .line 989
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.directives: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.directives:Lcom/sun/tools/javac/util/List;
         5: .line 990
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.provides: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.provides:Lcom/sun/tools/javac/util/List;
         6: .line 991
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.uses: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.uses:Lcom/sun/tools/javac/util/List;
         7: .line 993
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym: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.nonEmpty:()Z
            ifeq 9
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.requires:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Directive$RequiresDirective
            getfield com.sun.tools.javac.code.Directive$RequiresDirective.flags:Ljava/util/Set;
            getstatic com.sun.tools.javac.code.Directive$RequiresFlag.MANDATED:Lcom/sun/tools/javac/code/Directive$RequiresFlag;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 994
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.directives:Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.requires:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Directive
            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.directives:Lcom/sun/tools/javac/util/List;
         9: .line 996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.directives:Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.addReads:Ljava/util/Map;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Iterable
            invokestatic com.sun.tools.javac.util.List.from:(Ljava/lang/Iterable;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.appendList:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Symbol$ModuleSymbol.directives:Lcom/sun/tools/javac/util/List;
        10: .line 998
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.checkForCorrectness:()V
        11: .line 999
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCModuleDecl tree
        end local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            0   12     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCModuleDecl;
    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=3, locals=8, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCExports tree
         0: .line 1003
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCExports.directive:Lcom/sun/tools/javac/code/Directive$ExportsDirective;
            getfield com.sun.tools.javac.code.Directive$ExportsDirective.packge:Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$PackageSymbol.members:()Lcom/sun/tools/javac/code/Scope$WriteableScope;
            invokevirtual com.sun.tools.javac.code.Scope$WriteableScope.getSymbols:()Ljava/lang/Iterable;
            astore 2 /* packageContent */
        start local 2 // java.lang.Iterable packageContent
         1: .line 1004
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            astore 3 /* filesToCheck */
        start local 3 // com.sun.tools.javac.util.List filesToCheck
         2: .line 1005
            iconst_0
            istore 4 /* packageNotEmpty */
        start local 4 // boolean packageNotEmpty
         3: .line 1006
            aload 2 /* packageContent */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCExports java.lang.Iterable com.sun.tools.javac.util.List int top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 5 /* sym */
        start local 5 // com.sun.tools.javac.code.Symbol sym
         5: .line 1007
            aload 5 /* sym */
            getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.TYP:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpeq 7
         6: .line 1008
            goto 15
         7: .line 1009
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCExports java.lang.Iterable com.sun.tools.javac.util.List int com.sun.tools.javac.code.Symbol java.util.Iterator
      StackMap stack:
            aload 5 /* sym */
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 7 /* csym */
        start local 7 // com.sun.tools.javac.code.Symbol$ClassSymbol csym
         8: .line 1010
            aload 5 /* sym */
            getfield com.sun.tools.javac.code.Symbol.completer:Lcom/sun/tools/javac/code/Symbol$Completer;
            invokeinterface com.sun.tools.javac.code.Symbol$Completer.isTerminal:()Z
            ifne 10
         9: .line 1011
            aload 7 /* csym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
            invokeinterface javax.tools.JavaFileObject.getKind:()Ljavax/tools/JavaFileObject$Kind;
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            if_acmpne 13
        10: .line 1012
      StackMap locals: com.sun.tools.javac.code.Symbol$ClassSymbol
      StackMap stack:
            iconst_1
            istore 4 /* packageNotEmpty */
        11: .line 1013
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            astore 3 /* filesToCheck */
        12: .line 1014
            goto 16
        13: .line 1016
      StackMap locals:
      StackMap stack:
            aload 7 /* csym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
            invokeinterface javax.tools.JavaFileObject.getKind:()Ljavax/tools/JavaFileObject$Kind;
            getstatic javax.tools.JavaFileObject$Kind.SOURCE:Ljavax/tools/JavaFileObject$Kind;
            if_acmpne 15
        14: .line 1017
            aload 3 /* filesToCheck */
            aload 7 /* csym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 3 /* filesToCheck */
        end local 7 // com.sun.tools.javac.code.Symbol$ClassSymbol csym
        end local 5 // com.sun.tools.javac.code.Symbol sym
        15: .line 1006
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCExports java.lang.Iterable com.sun.tools.javac.util.List int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        16: .line 1020
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCExports java.lang.Iterable com.sun.tools.javac.util.List int
      StackMap stack:
            aload 3 /* filesToCheck */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 21
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCExports java.lang.Iterable com.sun.tools.javac.util.List int top java.util.Iterator
      StackMap stack:
        17: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.tools.JavaFileObject
            astore 5 /* jfo */
        start local 5 // javax.tools.JavaFileObject jfo
        18: .line 1021
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.findPackageInFile:Lcom/sun/tools/javac/comp/Modules$PackageNameFinder;
            aload 5 /* jfo */
            invokeinterface com.sun.tools.javac.comp.Modules$PackageNameFinder.findPackageNameOf:(Ljavax/tools/JavaFileObject;)Lcom/sun/tools/javac/util/Name;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCExports.directive:Lcom/sun/tools/javac/code/Directive$ExportsDirective;
            getfield com.sun.tools.javac.code.Directive$ExportsDirective.packge:Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            getfield com.sun.tools.javac.code.Symbol$PackageSymbol.fullname:Lcom/sun/tools/javac/util/Name;
            if_acmpne 21
        19: .line 1022
            iconst_1
            istore 4 /* packageNotEmpty */
        20: .line 1023
            goto 22
        end local 5 // javax.tools.JavaFileObject jfo
        21: .line 1020
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        22: .line 1026
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCExports java.lang.Iterable com.sun.tools.javac.util.List int
      StackMap stack:
            iload 4 /* packageNotEmpty */
            ifne 24
        23: .line 1027
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCExports.directive:Lcom/sun/tools/javac/code/Directive$ExportsDirective;
            getfield com.sun.tools.javac.code.Directive$ExportsDirective.packge:Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.PackageEmptyOrNotFound:(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
        24: .line 1029
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.directives:Lcom/sun/tools/javac/util/List;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCExports.directive:Lcom/sun/tools/javac/code/Directive$ExportsDirective;
            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.directives:Lcom/sun/tools/javac/util/List;
        25: .line 1030
            return
        end local 4 // boolean packageNotEmpty
        end local 3 // com.sun.tools.javac.util.List filesToCheck
        end local 2 // java.lang.Iterable packageContent
        end local 1 // com.sun.tools.javac.tree.JCTree$JCExports tree
        end local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0             this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            0   26     1             tree  Lcom/sun/tools/javac/tree/JCTree$JCExports;
            1   26     2   packageContent  Ljava/lang/Iterable<Lcom/sun/tools/javac/code/Symbol;>;
            2   26     3     filesToCheck  Lcom/sun/tools/javac/util/List<Ljavax/tools/JavaFileObject;>;
            3   26     4  packageNotEmpty  Z
            5   15     5              sym  Lcom/sun/tools/javac/code/Symbol;
            8   15     7             csym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
           18   21     5              jfo  Ljavax/tools/JavaFileObject;
    MethodParameters:
      Name  Flags
      tree  

  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=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCOpens tree
         0: .line 1034
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.chk:Lcom/sun/tools/javac/comp/Check;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCOpens.qualid:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCOpens.directive:Lcom/sun/tools/javac/code/Directive$OpensDirective;
            getfield com.sun.tools.javac.code.Directive$OpensDirective.packge:Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            invokevirtual com.sun.tools.javac.comp.Check.checkPackageExistsForOpens:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol$PackageSymbol;)V
         1: .line 1035
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.directives:Lcom/sun/tools/javac/util/List;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCOpens.directive:Lcom/sun/tools/javac/code/Directive$OpensDirective;
            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.directives:Lcom/sun/tools/javac/util/List;
         2: .line 1036
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCOpens tree
        end local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            0    3     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCOpens;
    MethodParameters:
      Name  Flags
      tree  

  com.sun.tools.javac.code.Symbol$MethodSymbol noArgsConstructor(com.sun.tools.javac.code.Symbol$ClassSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
        start local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol tsym
         0: .line 1039
            aload 1 /* tsym */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.members:()Lcom/sun/tools/javac/code/Scope$WriteableScope;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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.init:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.code.Scope$WriteableScope.getSymbolsByName:(Lcom/sun/tools/javac/util/Name;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.code.Symbol$ClassSymbol top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 2 /* sym */
        start local 2 // com.sun.tools.javac.code.Symbol sym
         2: .line 1040
            aload 2 /* sym */
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            astore 4 /* mSym */
        start local 4 // com.sun.tools.javac.code.Symbol$MethodSymbol mSym
         3: .line 1041
            aload 4 /* mSym */
            invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.params:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 5
         4: .line 1042
            aload 4 /* mSym */
            areturn
        end local 4 // com.sun.tools.javac.code.Symbol$MethodSymbol mSym
        end local 2 // com.sun.tools.javac.code.Symbol sym
         5: .line 1039
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 1045
            aconst_null
            areturn
        end local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol tsym
        end local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            0    7     1  tsym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            2    5     2   sym  Lcom/sun/tools/javac/code/Symbol;
            3    5     4  mSym  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
    MethodParameters:
      Name  Flags
      tsym  

  com.sun.tools.javac.code.Symbol$MethodSymbol factoryMethod(com.sun.tools.javac.code.Symbol$ClassSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
        start local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol tsym
         0: .line 1049
            aload 1 /* tsym */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.members:()Lcom/sun/tools/javac/code/Scope$WriteableScope;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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.provider:Lcom/sun/tools/javac/util/Name;
            invokedynamic accepts()Lcom/sun/tools/javac/util/Filter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/sun/tools/javac/comp/Modules$UsesProvidesVisitor.lambda$1(Lcom/sun/tools/javac/code/Symbol;)Z (6)
                  (Lcom/sun/tools/javac/code/Symbol;)Z
            invokevirtual com.sun.tools.javac.code.Scope$WriteableScope.getSymbolsByName:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/util/Filter;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.code.Symbol$ClassSymbol top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 2 /* sym */
        start local 2 // com.sun.tools.javac.code.Symbol sym
         2: .line 1050
            aload 2 /* sym */
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            astore 4 /* mSym */
        start local 4 // com.sun.tools.javac.code.Symbol$MethodSymbol mSym
         3: .line 1051
            aload 4 /* mSym */
            invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.isStatic:()Z
            ifeq 5
            aload 4 /* mSym */
            invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.flags:()J
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 5
            aload 4 /* mSym */
            invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.params:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 5
         4: .line 1052
            aload 4 /* mSym */
            areturn
        end local 4 // com.sun.tools.javac.code.Symbol$MethodSymbol mSym
        end local 2 // com.sun.tools.javac.code.Symbol sym
         5: .line 1049
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         6: .line 1055
            aconst_null
            areturn
        end local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol tsym
        end local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            0    7     1  tsym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            2    5     2   sym  Lcom/sun/tools/javac/code/Symbol;
            3    5     4  mSym  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
    MethodParameters:
      Name  Flags
      tsym  

  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=4, locals=12, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCProvides tree
         0: .line 1062
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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$JCProvides.serviceName:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.env:Lcom/sun/tools/javac/comp/Env;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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.objectType:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.comp.Attr.attribType:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* st */
        start local 2 // com.sun.tools.javac.code.Type st
         1: .line 1063
            aload 2 /* st */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 3 /* service */
        start local 3 // com.sun.tools.javac.code.Symbol$ClassSymbol service
         2: .line 1064
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.allProvides:Ljava/util/Map;
            aload 3 /* service */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 1065
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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$JCProvides.serviceName:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 3 /* service */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.RepeatedProvidesForService:(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
         4: .line 1067
      StackMap locals: com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol
      StackMap stack:
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 4 /* impls */
        start local 4 // com.sun.tools.javac.util.ListBuffer impls
         5: .line 1068
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCProvides.implNames:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 44
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCProvides com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree$JCExpression
            astore 5 /* implName */
        start local 5 // com.sun.tools.javac.tree.JCTree$JCExpression implName
         7: .line 1070
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.env:Lcom/sun/tools/javac/comp/Env;
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            getfield com.sun.tools.javac.comp.AttrContext.visitingServiceImplementation:Z
            istore 8 /* prevVisitingServiceImplementation */
        start local 8 // boolean prevVisitingServiceImplementation
         8: .line 1072
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.env:Lcom/sun/tools/javac/comp/Env;
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            iconst_1
            putfield com.sun.tools.javac.comp.AttrContext.visitingServiceImplementation:Z
         9: .line 1073
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.attr:Lcom/sun/tools/javac/comp/Attr;
            aload 5 /* implName */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.env:Lcom/sun/tools/javac/comp/Env;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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.objectType:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.comp.Attr.attribType:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 7 /* it */
        start local 7 // com.sun.tools.javac.code.Type it
        10: .line 1074
            goto 14
        end local 7 // com.sun.tools.javac.code.Type it
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCProvides com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree$JCExpression java.util.Iterator top int
      StackMap stack: java.lang.Throwable
        11: astore 9
        12: .line 1075
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.env:Lcom/sun/tools/javac/comp/Env;
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            iload 8 /* prevVisitingServiceImplementation */
            putfield com.sun.tools.javac.comp.AttrContext.visitingServiceImplementation:Z
        13: .line 1076
            aload 9
            athrow
        start local 7 // com.sun.tools.javac.code.Type it
        14: .line 1075
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCProvides com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree$JCExpression java.util.Iterator com.sun.tools.javac.code.Type int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.env:Lcom/sun/tools/javac/comp/Env;
            getfield com.sun.tools.javac.comp.Env.info:Ljava/lang/Object;
            checkcast com.sun.tools.javac.comp.AttrContext
            iload 8 /* prevVisitingServiceImplementation */
            putfield com.sun.tools.javac.comp.AttrContext.visitingServiceImplementation:Z
        15: .line 1077
            aload 7 /* it */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 9 /* impl */
        start local 9 // com.sun.tools.javac.code.Symbol$ClassSymbol impl
        16: .line 1078
            aload 9 /* impl */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.flags_field:J
            lconst_1
            land
            lconst_0
            lcmp
            ifne 18
        17: .line 1079
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 5 /* implName */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 9 /* impl */
            aload 9 /* impl */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.location:()Lcom/sun/tools/javac/code/Symbol;
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.NotDefPublic:(Lcom/sun/tools/javac/code/Symbol;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
        18: .line 1082
      StackMap locals: com.sun.tools.javac.code.Symbol$ClassSymbol
      StackMap stack:
            aload 0 /* this */
            aload 9 /* impl */
            invokevirtual com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.factoryMethod:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            astore 10 /* factory */
        start local 10 // com.sun.tools.javac.code.Symbol$MethodSymbol factory
        19: .line 1083
            aload 10 /* factory */
            ifnull 24
        20: .line 1084
            aload 10 /* factory */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            astore 11 /* returnType */
        start local 11 // com.sun.tools.javac.code.Type returnType
        21: .line 1085
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.types:Lcom/sun/tools/javac/code/Types;
            aload 11 /* returnType */
            aload 2 /* st */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 39
        22: .line 1086
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 5 /* implName */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            getstatic com.sun.tools.javac.resources.CompilerProperties$Errors.ServiceImplementationProviderReturnMustBeSubtypeOfServiceInterface: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
        end local 11 // com.sun.tools.javac.code.Type returnType
        23: .line 1088
            goto 39
        24: .line 1089
      StackMap locals: com.sun.tools.javac.code.Symbol$MethodSymbol
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.types:Lcom/sun/tools/javac/code/Types;
            aload 7 /* it */
            aload 2 /* st */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 27
        25: .line 1090
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 5 /* implName */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            getstatic com.sun.tools.javac.resources.CompilerProperties$Errors.ServiceImplementationMustBeSubtypeOfServiceInterface: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
        26: .line 1091
            goto 39
      StackMap locals:
      StackMap stack:
        27: aload 9 /* impl */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.flags:()J
            ldc 1024
            land
            lconst_0
            lcmp
            ifeq 30
        28: .line 1092
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 5 /* implName */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 9 /* impl */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ServiceImplementationIsAbstract:(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
        29: .line 1093
            goto 39
      StackMap locals:
      StackMap stack:
        30: aload 9 /* impl */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.isInner:()Z
            ifeq 33
        31: .line 1094
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 5 /* implName */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 9 /* impl */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ServiceImplementationIsInner:(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
        32: .line 1095
            goto 39
        33: .line 1096
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* impl */
            invokevirtual com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.noArgsConstructor:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            astore 11 /* constr */
        start local 11 // com.sun.tools.javac.code.Symbol$MethodSymbol constr
        34: .line 1097
            aload 11 /* constr */
            ifnonnull 37
        35: .line 1098
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 5 /* implName */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 9 /* impl */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ServiceImplementationDoesntHaveANoArgsConstructor:(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
        36: .line 1099
            goto 39
      StackMap locals: com.sun.tools.javac.code.Symbol$MethodSymbol
      StackMap stack:
        37: aload 11 /* constr */
            invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.flags:()J
            lconst_1
            land
            lconst_0
            lcmp
            ifne 39
        38: .line 1100
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 5 /* implName */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 9 /* impl */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ServiceImplementationNoArgsConstructorNotPublic:(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
        end local 11 // com.sun.tools.javac.code.Symbol$MethodSymbol constr
        39: .line 1104
      StackMap locals:
      StackMap stack:
            aload 7 /* it */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 44
        40: .line 1105
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.allProvides:Ljava/util/Map;
            aload 3 /* service */
            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$UsesProvidesVisitor.lambda$2(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Ljava/util/Set; (6)
                  (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Set
            aload 9 /* impl */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 43
        41: .line 1106
            aload 4 /* impls */
            aload 9 /* impl */
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        42: .line 1107
            goto 44
        43: .line 1108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 5 /* implName */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 3 /* service */
            aload 9 /* impl */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.DuplicateProvides:(Lcom/sun/tools/javac/code/Symbol;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
        end local 10 // com.sun.tools.javac.code.Symbol$MethodSymbol factory
        end local 9 // com.sun.tools.javac.code.Symbol$ClassSymbol impl
        end local 8 // boolean prevVisitingServiceImplementation
        end local 7 // com.sun.tools.javac.code.Type it
        end local 5 // com.sun.tools.javac.tree.JCTree$JCExpression implName
        44: .line 1068
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCProvides com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        45: .line 1112
            aload 2 /* st */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 50
            aload 4 /* impls */
            invokevirtual com.sun.tools.javac.util.ListBuffer.isEmpty:()Z
            ifne 50
        46: .line 1113
            new com.sun.tools.javac.code.Directive$ProvidesDirective
            dup
            aload 3 /* service */
            aload 4 /* impls */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            invokespecial com.sun.tools.javac.code.Directive$ProvidesDirective.<init>:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/util/List;)V
            astore 5 /* d */
        start local 5 // com.sun.tools.javac.code.Directive$ProvidesDirective d
        47: .line 1114
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.provides:Lcom/sun/tools/javac/util/List;
            aload 5 /* 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.provides:Lcom/sun/tools/javac/util/List;
        48: .line 1115
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.directives:Lcom/sun/tools/javac/util/List;
            aload 5 /* 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.directives:Lcom/sun/tools/javac/util/List;
        49: .line 1116
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.directiveToTreeMap:Ljava/util/Map;
            aload 5 /* d */
            aload 1 /* tree */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // com.sun.tools.javac.code.Directive$ProvidesDirective d
        50: .line 1118
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.tree.JCTree$JCProvides com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.util.ListBuffer
      StackMap stack:
            return
        end local 4 // com.sun.tools.javac.util.ListBuffer impls
        end local 3 // com.sun.tools.javac.code.Symbol$ClassSymbol service
        end local 2 // com.sun.tools.javac.code.Type st
        end local 1 // com.sun.tools.javac.tree.JCTree$JCProvides tree
        end local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot                               Name  Signature
            0   51     0                               this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            0   51     1                               tree  Lcom/sun/tools/javac/tree/JCTree$JCProvides;
            1   51     2                                 st  Lcom/sun/tools/javac/code/Type;
            2   51     3                            service  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            5   51     4                              impls  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Symbol$ClassSymbol;>;
            7   44     5                           implName  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
           10   11     7                                 it  Lcom/sun/tools/javac/code/Type;
           14   44     7                                 it  Lcom/sun/tools/javac/code/Type;
            8   44     8  prevVisitingServiceImplementation  Z
           16   44     9                               impl  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
           19   44    10                            factory  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
           21   23    11                         returnType  Lcom/sun/tools/javac/code/Type;
           34   39    11                             constr  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
           47   50     5                                  d  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;
      Exception table:
        from    to  target  type
           8    11      11  any
    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=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCRequires tree
         0: .line 1122
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.directive:Lcom/sun/tools/javac/code/Directive$RequiresDirective;
            ifnull 4
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            invokevirtual com.sun.tools.javac.comp.Modules.allModules:()Ljava/util/Set;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.directive:Lcom/sun/tools/javac/code/Directive$RequiresDirective;
            getfield com.sun.tools.javac.code.Directive$RequiresDirective.module:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 4
         1: .line 1123
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.chk:Lcom/sun/tools/javac/comp/Check;
            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 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.directive:Lcom/sun/tools/javac/code/Directive$RequiresDirective;
            getfield com.sun.tools.javac.code.Directive$RequiresDirective.module:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokevirtual com.sun.tools.javac.comp.Check.checkDeprecated:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Symbol;)V
         2: .line 1124
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.chk:Lcom/sun/tools/javac/comp/Check;
            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 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.directive:Lcom/sun/tools/javac/code/Directive$RequiresDirective;
            invokevirtual com.sun.tools.javac.comp.Check.checkModuleRequires:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Directive$RequiresDirective;)V
         3: .line 1125
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.directives:Lcom/sun/tools/javac/util/List;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.directive:Lcom/sun/tools/javac/code/Directive$RequiresDirective;
            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.directives:Lcom/sun/tools/javac/util/List;
         4: .line 1127
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCRequires tree
        end local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            0    5     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCRequires;
    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=4, locals=6, args_size=2
        start local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCUses tree
         0: .line 1131
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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$JCUses.qualid:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.env:Lcom/sun/tools/javac/comp/Env;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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.objectType:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.comp.Attr.attribType:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* st */
        start local 2 // com.sun.tools.javac.code.Type st
         1: .line 1132
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCUses.qualid:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokestatic com.sun.tools.javac.tree.TreeInfo.symbol:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/code/Symbol;
            astore 3 /* sym */
        start local 3 // com.sun.tools.javac.code.Symbol sym
         2: .line 1133
            aload 3 /* sym */
            invokevirtual com.sun.tools.javac.code.Symbol.flags:()J
            ldc 16384
            land
            lconst_0
            lcmp
            ifeq 5
         3: .line 1134
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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$JCUses.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 /* st */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ServiceDefinitionIsEnum:(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
         4: .line 1135
            goto 13
      StackMap locals: com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol
      StackMap stack:
         5: aload 2 /* st */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 13
         6: .line 1136
            aload 2 /* st */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 4 /* service */
        start local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol service
         7: .line 1137
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.allUses:Ljava/util/Set;
            aload 4 /* service */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 12
         8: .line 1138
            new com.sun.tools.javac.code.Directive$UsesDirective
            dup
            aload 4 /* service */
            invokespecial com.sun.tools.javac.code.Directive$UsesDirective.<init>:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)V
            astore 5 /* d */
        start local 5 // com.sun.tools.javac.code.Directive$UsesDirective d
         9: .line 1139
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.uses:Lcom/sun/tools/javac/util/List;
            aload 5 /* 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.uses:Lcom/sun/tools/javac/util/List;
        10: .line 1140
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.directives:Lcom/sun/tools/javac/util/List;
            aload 5 /* 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.directives:Lcom/sun/tools/javac/util/List;
        end local 5 // com.sun.tools.javac.code.Directive$UsesDirective d
        11: .line 1141
            goto 13
        12: .line 1142
      StackMap locals: com.sun.tools.javac.code.Symbol$ClassSymbol
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.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$JCUses.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 4 /* service */
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.DuplicateUses:(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
        end local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol service
        13: .line 1145
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.sun.tools.javac.code.Symbol sym
        end local 2 // com.sun.tools.javac.code.Type st
        end local 1 // com.sun.tools.javac.tree.JCTree$JCUses tree
        end local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            0   14     1     tree  Lcom/sun/tools/javac/tree/JCTree$JCUses;
            1   14     2       st  Lcom/sun/tools/javac/code/Type;
            2   14     3      sym  Lcom/sun/tools/javac/code/Symbol;
            7   13     4  service  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            9   11     5        d  Lcom/sun/tools/javac/code/Directive$UsesDirective;
    MethodParameters:
      Name  Flags
      tree  

  private void checkForCorrectness();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=13, args_size=1
        start local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
         0: .line 1148
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.provides:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 33
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Directive$ProvidesDirective
            astore 1 /* provides */
        start local 1 // com.sun.tools.javac.code.Directive$ProvidesDirective provides
         2: .line 1149
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.directiveToTreeMap:Ljava/util/Map;
            aload 1 /* provides */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree$JCProvides
            astore 3 /* tree */
        start local 3 // com.sun.tools.javac.tree.JCTree$JCProvides tree
         3: .line 1150
            aload 1 /* provides */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.impls:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 32
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.code.Directive$ProvidesDirective java.util.Iterator com.sun.tools.javac.tree.JCTree$JCProvides top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 4 /* impl */
        start local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol impl
         5: .line 1154
            aload 4 /* impl */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.packge:()Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            astore 6 /* implementationDefiningPackage */
        start local 6 // com.sun.tools.javac.code.Symbol$PackageSymbol implementationDefiningPackage
         6: .line 1155
            aload 6 /* implementationDefiningPackage */
            getfield com.sun.tools.javac.code.Symbol$PackageSymbol.modle:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            if_acmpeq 8
         7: .line 1158
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 3 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCProvides.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 6 /* implementationDefiningPackage */
            getfield com.sun.tools.javac.code.Symbol$PackageSymbol.modle:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ServiceImplementationNotInRightModule:(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
         8: .line 1165
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.code.Directive$ProvidesDirective java.util.Iterator com.sun.tools.javac.tree.JCTree$JCProvides com.sun.tools.javac.code.Symbol$ClassSymbol java.util.Iterator com.sun.tools.javac.code.Symbol$PackageSymbol
      StackMap stack:
            aload 1 /* provides */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.service:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.packge:()Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            astore 7 /* interfaceDeclaringPackage */
        start local 7 // com.sun.tools.javac.code.Symbol$PackageSymbol interfaceDeclaringPackage
         9: .line 1166
            aload 7 /* interfaceDeclaringPackage */
            getfield com.sun.tools.javac.code.Symbol$PackageSymbol.modle:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            if_acmpne 10
            iconst_1
            goto 11
      StackMap locals: com.sun.tools.javac.code.Symbol$PackageSymbol
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 8 /* isInterfaceDeclaredInCurrentModule */
        start local 8 // boolean isInterfaceDeclaredInCurrentModule
        12: .line 1168
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.visiblePackages:Ljava/util/Map;
            aload 7 /* interfaceDeclaringPackage */
            getfield com.sun.tools.javac.code.Symbol$PackageSymbol.fullname:Lcom/sun/tools/javac/util/Name;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 7 /* interfaceDeclaringPackage */
            if_acmpne 13
            iconst_1
            goto 14
      StackMap locals: int
      StackMap stack:
        13: iconst_0
        14: .line 1167
      StackMap locals:
      StackMap stack: int
            istore 9 /* isInterfaceExportedFromAReadableModule */
        start local 9 // boolean isInterfaceExportedFromAReadableModule
        15: .line 1169
            iload 8 /* isInterfaceDeclaredInCurrentModule */
            ifeq 32
            iload 9 /* isInterfaceExportedFromAReadableModule */
            ifne 32
        16: .line 1171
            iconst_1
            istore 10 /* warn */
        start local 10 // boolean warn
        17: .line 1172
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym: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.iterator:()Ljava/util/Iterator;
            astore 12
            goto 22
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.code.Directive$ProvidesDirective java.util.Iterator com.sun.tools.javac.tree.JCTree$JCProvides com.sun.tools.javac.code.Symbol$ClassSymbol java.util.Iterator com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.code.Symbol$PackageSymbol int int int top java.util.Iterator
      StackMap stack:
        18: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Directive$ExportsDirective
            astore 11 /* export */
        start local 11 // com.sun.tools.javac.code.Directive$ExportsDirective export
        19: .line 1173
            aload 7 /* interfaceDeclaringPackage */
            aload 11 /* export */
            getfield com.sun.tools.javac.code.Directive$ExportsDirective.packge:Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            if_acmpne 22
        20: .line 1174
            iconst_0
            istore 10 /* warn */
        21: .line 1175
            goto 23
        end local 11 // com.sun.tools.javac.code.Directive$ExportsDirective export
        22: .line 1172
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        23: .line 1178
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.code.Directive$ProvidesDirective java.util.Iterator com.sun.tools.javac.tree.JCTree$JCProvides com.sun.tools.javac.code.Symbol$ClassSymbol java.util.Iterator com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.code.Symbol$PackageSymbol int int int
      StackMap stack:
            iload 10 /* warn */
            ifeq 30
        24: .line 1179
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.uses:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 29
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.code.Directive$ProvidesDirective java.util.Iterator com.sun.tools.javac.tree.JCTree$JCProvides com.sun.tools.javac.code.Symbol$ClassSymbol java.util.Iterator com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.code.Symbol$PackageSymbol int int int top java.util.Iterator
      StackMap stack:
        25: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Directive$UsesDirective
            astore 11 /* uses */
        start local 11 // com.sun.tools.javac.code.Directive$UsesDirective uses
        26: .line 1180
            aload 1 /* provides */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.service:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            aload 11 /* uses */
            getfield com.sun.tools.javac.code.Directive$UsesDirective.service:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            if_acmpne 29
        27: .line 1181
            iconst_0
            istore 10 /* warn */
        28: .line 1182
            goto 30
        end local 11 // com.sun.tools.javac.code.Directive$UsesDirective uses
        29: .line 1179
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        30: .line 1186
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.code.Directive$ProvidesDirective java.util.Iterator com.sun.tools.javac.tree.JCTree$JCProvides com.sun.tools.javac.code.Symbol$ClassSymbol java.util.Iterator com.sun.tools.javac.code.Symbol$PackageSymbol com.sun.tools.javac.code.Symbol$PackageSymbol int int int
      StackMap stack:
            iload 10 /* warn */
            ifeq 32
        31: .line 1187
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Modules$UsesProvidesVisitor.this$0:Lcom/sun/tools/javac/comp/Modules;
            getfield com.sun.tools.javac.comp.Modules.log:Lcom/sun/tools/javac/util/Log;
            aload 3 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCProvides.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 1 /* provides */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.service:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokestatic com.sun.tools.javac.resources.CompilerProperties$Warnings.ServiceProvidedButNotExportedOrUsed:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/util/JCDiagnostic$Warning;
            invokevirtual com.sun.tools.javac.util.Log.warning:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Warning;)V
        end local 10 // boolean warn
        end local 9 // boolean isInterfaceExportedFromAReadableModule
        end local 8 // boolean isInterfaceDeclaredInCurrentModule
        end local 7 // com.sun.tools.javac.code.Symbol$PackageSymbol interfaceDeclaringPackage
        end local 6 // com.sun.tools.javac.code.Symbol$PackageSymbol implementationDefiningPackage
        end local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol impl
        32: .line 1150
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor com.sun.tools.javac.code.Directive$ProvidesDirective java.util.Iterator com.sun.tools.javac.tree.JCTree$JCProvides top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 3 // com.sun.tools.javac.tree.JCTree$JCProvides tree
        end local 1 // com.sun.tools.javac.code.Directive$ProvidesDirective provides
        33: .line 1148
      StackMap locals: com.sun.tools.javac.comp.Modules$UsesProvidesVisitor top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        34: .line 1192
            return
        end local 0 // com.sun.tools.javac.comp.Modules$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot                                    Name  Signature
            0   35     0                                    this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            2   33     1                                provides  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;
            3   33     3                                    tree  Lcom/sun/tools/javac/tree/JCTree$JCProvides;
            5   32     4                                    impl  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            6   32     6           implementationDefiningPackage  Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            9   32     7               interfaceDeclaringPackage  Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
           12   32     8      isInterfaceDeclaredInCurrentModule  Z
           15   32     9  isInterfaceExportedFromAReadableModule  Z
           17   32    10                                    warn  Z
           19   22    11                                  export  Lcom/sun/tools/javac/code/Directive$ExportsDirective;
           26   29    11                                    uses  Lcom/sun/tools/javac/code/Directive$UsesDirective;

  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$UsesProvidesVisitor this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCDirective t
         0: .line 988
            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$UsesProvidesVisitor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/Modules$UsesProvidesVisitor;
            0    1     1     t  Lcom/sun/tools/javac/tree/JCTree$JCDirective;

  private static boolean lambda$1(com.sun.tools.javac.code.Symbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol sym
         0: .line 1049
            aload 0 /* sym */
            getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.MTH:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // com.sun.tools.javac.code.Symbol sym
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   sym  Lcom/sun/tools/javac/code/Symbol;

  private static java.util.Set lambda$2(com.sun.tools.javac.code.Symbol$ClassSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Ljava/util/Set;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol s
         0: .line 1105
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
}
SourceFile: "Modules.java"
NestHost: com.sun.tools.javac.comp.Modules
InnerClasses:
  public ExportsDirective = com.sun.tools.javac.code.Directive$ExportsDirective of com.sun.tools.javac.code.Directive
  public OpensDirective = com.sun.tools.javac.code.Directive$OpensDirective of com.sun.tools.javac.code.Directive
  public ProvidesDirective = com.sun.tools.javac.code.Directive$ProvidesDirective 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 UsesDirective = com.sun.tools.javac.code.Directive$UsesDirective of com.sun.tools.javac.code.Directive
  public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
  public abstract WriteableScope = com.sun.tools.javac.code.Scope$WriteableScope of com.sun.tools.javac.code.Scope
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  public abstract Completer = com.sun.tools.javac.code.Symbol$Completer of com.sun.tools.javac.code.Symbol
  public MethodSymbol = com.sun.tools.javac.code.Symbol$MethodSymbol 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
  public VarSymbol = com.sun.tools.javac.code.Symbol$VarSymbol of com.sun.tools.javac.code.Symbol
  public abstract PackageNameFinder = com.sun.tools.javac.comp.Modules$PackageNameFinder of com.sun.tools.javac.comp.Modules
  UsesProvidesVisitor = com.sun.tools.javac.comp.Modules$UsesProvidesVisitor of com.sun.tools.javac.comp.Modules
  public Errors = com.sun.tools.javac.resources.CompilerProperties$Errors of com.sun.tools.javac.resources.CompilerProperties
  public Warnings = com.sun.tools.javac.resources.CompilerProperties$Warnings 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 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 Warning = com.sun.tools.javac.util.JCDiagnostic$Warning of com.sun.tools.javac.util.JCDiagnostic
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Kind = javax.tools.JavaFileObject$Kind of javax.tools.JavaFileObject