public class com.sun.tools.javac.code.Directive$ProvidesDirective extends com.sun.tools.javac.code.Directive implements javax.lang.model.element.ModuleElement$ProvidesDirective
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.code.Directive$ProvidesDirective
  super_class: com.sun.tools.javac.code.Directive
{
  public final com.sun.tools.javac.code.Symbol$ClassSymbol service;
    descriptor: Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$ClassSymbol> impls;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ClassSymbol;>;

  public void <init>(com.sun.tools.javac.code.Symbol$ClassSymbol, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$ClassSymbol>);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
        start local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol service
        start local 2 // com.sun.tools.javac.util.List impls
         0: .line 233
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Directive.<init>:()V
         1: .line 234
            aload 0 /* this */
            aload 1 /* service */
            putfield com.sun.tools.javac.code.Directive$ProvidesDirective.service:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
         2: .line 235
            aload 0 /* this */
            aload 2 /* impls */
            putfield com.sun.tools.javac.code.Directive$ProvidesDirective.impls:Lcom/sun/tools/javac/util/List;
         3: .line 236
            return
        end local 2 // com.sun.tools.javac.util.List impls
        end local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol service
        end local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;
            0    4     1  service  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0    4     2    impls  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ClassSymbol;>;
    Signature: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ClassSymbol;>;)V
    MethodParameters:
         Name  Flags
      service  
      impls    

  public javax.lang.model.element.ModuleElement$DirectiveKind getKind();
    descriptor: ()Ljavax/lang/model/element/ModuleElement$DirectiveKind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
         0: .line 240
            getstatic javax.lang.model.element.ModuleElement$DirectiveKind.PROVIDES:Ljavax/lang/model/element/ModuleElement$DirectiveKind;
            areturn
        end local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;

  public com.sun.tools.javac.code.Symbol$ClassSymbol getService();
    descriptor: ()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
         0: .line 245
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.service:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            areturn
        end local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$ClassSymbol> getImplementations();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
         0: .line 250
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.impls:Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ClassSymbol;>;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
         0: .line 255
            new java.lang.StringBuilder
            dup
            ldc "Provides["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.service:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.impls:Lcom/sun/tools/javac/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;

  public <R, P> R accept(javax.lang.model.element.ModuleElement$DirectiveVisitor<R, P>, );
    descriptor: (Ljavax/lang/model/element/ModuleElement$DirectiveVisitor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
        start local 1 // javax.lang.model.element.ModuleElement$DirectiveVisitor v
        start local 2 // java.lang.Object p
         0: .line 260
            aload 1 /* v */
            aload 0 /* this */
            aload 2 /* p */
            invokeinterface javax.lang.model.element.ModuleElement$DirectiveVisitor.visitProvides:(Ljavax/lang/model/element/ModuleElement$ProvidesDirective;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object p
        end local 1 // javax.lang.model.element.ModuleElement$DirectiveVisitor v
        end local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;
            0    1     1     v  Ljavax/lang/model/element/ModuleElement$DirectiveVisitor<TR;TP;>;
            0    1     2     p  TP;
    Signature: <R:Ljava/lang/Object;P:Ljava/lang/Object;>(Ljavax/lang/model/element/ModuleElement$DirectiveVisitor<TR;TP;>;TP;)TR;
    MethodParameters:
      Name  Flags
      v     
      p     

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
        start local 1 // java.lang.Object obj
         0: .line 266
            aload 1 /* obj */
            instanceof com.sun.tools.javac.code.Directive$ProvidesDirective
            ifne 2
         1: .line 267
            iconst_0
            ireturn
         2: .line 269
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast com.sun.tools.javac.code.Directive$ProvidesDirective
            astore 2 /* other */
        start local 2 // com.sun.tools.javac.code.Directive$ProvidesDirective other
         3: .line 270
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.service:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            aload 2 /* other */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.service:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            if_acmpne 4
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.impls:Lcom/sun/tools/javac/util/List;
            aload 2 /* other */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.impls:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.equals:(Ljava/lang/Object;)Z
            ifeq 4
            iconst_1
            ireturn
      StackMap locals: com.sun.tools.javac.code.Directive$ProvidesDirective
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.code.Directive$ProvidesDirective other
        end local 1 // java.lang.Object obj
        end local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;
            0    5     1    obj  Ljava/lang/Object;
            3    5     2  other  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
         0: .line 276
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.service:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokevirtual java.lang.Object.hashCode:()I
            bipush 31
            imul
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Directive$ProvidesDirective.impls:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.hashCode:()I
            bipush 37
            imul
            iadd
            ireturn
        end local 0 // com.sun.tools.javac.code.Directive$ProvidesDirective this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Directive$ProvidesDirective;

  public javax.lang.model.element.TypeElement getService();
    descriptor: ()Ljavax/lang/model/element/TypeElement;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.code.Directive$ProvidesDirective.getService:()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.List getImplementations();
    descriptor: ()Ljava/util/List;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.code.Directive$ProvidesDirective.getImplementations:()Lcom/sun/tools/javac/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Directive.java"
NestHost: com.sun.tools.javac.code.Directive
InnerClasses:
  public ProvidesDirective = com.sun.tools.javac.code.Directive$ProvidesDirective of com.sun.tools.javac.code.Directive
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  public final DirectiveKind = javax.lang.model.element.ModuleElement$DirectiveKind of javax.lang.model.element.ModuleElement
  public abstract DirectiveVisitor = javax.lang.model.element.ModuleElement$DirectiveVisitor of javax.lang.model.element.ModuleElement
  public abstract ProvidesDirective = javax.lang.model.element.ModuleElement$ProvidesDirective of javax.lang.model.element.ModuleElement