public class com.sun.tools.javac.model.AnnotationProxyMaker
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.model.AnnotationProxyMaker
  super_class: java.lang.Object
{
  private final com.sun.tools.javac.code.Attribute$Compound anno;
    descriptor: Lcom/sun/tools/javac/code/Attribute$Compound;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Class<? extends java.lang.annotation.Annotation> annoType;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;

  private void <init>(com.sun.tools.javac.code.Attribute$Compound, java.lang.Class<? extends java.lang.annotation.Annotation>);
    descriptor: (Lcom/sun/tools/javac/code/Attribute$Compound;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.model.AnnotationProxyMaker this
        start local 1 // com.sun.tools.javac.code.Attribute$Compound anno
        start local 2 // java.lang.Class annoType
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 70
            aload 0 /* this */
            aload 1 /* anno */
            putfield com.sun.tools.javac.model.AnnotationProxyMaker.anno:Lcom/sun/tools/javac/code/Attribute$Compound;
         2: .line 71
            aload 0 /* this */
            aload 2 /* annoType */
            putfield com.sun.tools.javac.model.AnnotationProxyMaker.annoType:Ljava/lang/Class;
         3: .line 72
            return
        end local 2 // java.lang.Class annoType
        end local 1 // com.sun.tools.javac.code.Attribute$Compound anno
        end local 0 // com.sun.tools.javac.model.AnnotationProxyMaker this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/sun/tools/javac/model/AnnotationProxyMaker;
            0    4     1      anno  Lcom/sun/tools/javac/code/Attribute$Compound;
            0    4     2  annoType  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    Signature: (Lcom/sun/tools/javac/code/Attribute$Compound;Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)V
    MethodParameters:
          Name  Flags
      anno      
      annoType  

  public static <A extends java.lang.annotation.Annotation> A generateAnnotation(com.sun.tools.javac.code.Attribute$Compound, java.lang.Class<A>);
    descriptor: (Lcom/sun/tools/javac/code/Attribute$Compound;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Attribute$Compound anno
        start local 1 // java.lang.Class annoType
         0: .line 80
            new com.sun.tools.javac.model.AnnotationProxyMaker
            dup
            aload 0 /* anno */
            aload 1 /* annoType */
            invokespecial com.sun.tools.javac.model.AnnotationProxyMaker.<init>:(Lcom/sun/tools/javac/code/Attribute$Compound;Ljava/lang/Class;)V
            astore 2 /* apm */
        start local 2 // com.sun.tools.javac.model.AnnotationProxyMaker apm
         1: .line 81
            aload 1 /* annoType */
            aload 2 /* apm */
            invokevirtual com.sun.tools.javac.model.AnnotationProxyMaker.generateAnnotation:()Ljava/lang/annotation/Annotation;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.annotation.Annotation
            areturn
        end local 2 // com.sun.tools.javac.model.AnnotationProxyMaker apm
        end local 1 // java.lang.Class annoType
        end local 0 // com.sun.tools.javac.code.Attribute$Compound anno
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      anno  Lcom/sun/tools/javac/code/Attribute$Compound;
            0    2     1  annoType  Ljava/lang/Class<TA;>;
            1    2     2       apm  Lcom/sun/tools/javac/model/AnnotationProxyMaker;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Lcom/sun/tools/javac/code/Attribute$Compound;Ljava/lang/Class<TA;>;)TA;
    MethodParameters:
          Name  Flags
      anno      
      annoType  

  private java.lang.annotation.Annotation generateAnnotation();
    descriptor: ()Ljava/lang/annotation/Annotation;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.model.AnnotationProxyMaker this
         0: .line 89
            aload 0 /* this */
            getfield com.sun.tools.javac.model.AnnotationProxyMaker.annoType:Ljava/lang/Class;
         1: .line 90
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.model.AnnotationProxyMaker.getAllReflectedValues:()Ljava/util/Map;
         2: .line 89
            invokestatic sun.reflect.annotation.AnnotationParser.annotationForMap:(Ljava/lang/Class;Ljava/util/Map;)Ljava/lang/annotation/Annotation;
            areturn
        end local 0 // com.sun.tools.javac.model.AnnotationProxyMaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/model/AnnotationProxyMaker;

  private java.util.Map<java.lang.String, java.lang.Object> getAllReflectedValues();
    descriptor: ()Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // com.sun.tools.javac.model.AnnotationProxyMaker this
         0: .line 99
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 1 /* res */
        start local 1 // java.util.Map res
         1: .line 102
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.model.AnnotationProxyMaker.getAllValues:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: com.sun.tools.javac.model.AnnotationProxyMaker java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         3: .line 103
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            astore 4 /* meth */
        start local 4 // com.sun.tools.javac.code.Symbol$MethodSymbol meth
         4: .line 104
            aload 0 /* this */
            aload 4 /* meth */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Attribute
            invokevirtual com.sun.tools.javac.model.AnnotationProxyMaker.generateValue:(Lcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Attribute;)Ljava/lang/Object;
            astore 5 /* value */
        start local 5 // java.lang.Object value
         5: .line 105
            aload 5 /* value */
            ifnull 7
         6: .line 106
            aload 1 /* res */
            aload 4 /* meth */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.name:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.util.Name.toString:()Ljava/lang/String;
            aload 5 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.Object value
        end local 4 // com.sun.tools.javac.code.Symbol$MethodSymbol meth
        end local 2 // java.util.Map$Entry entry
         7: .line 101
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 112
            aload 1 /* res */
            areturn
        end local 1 // java.util.Map res
        end local 0 // com.sun.tools.javac.model.AnnotationProxyMaker this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/sun/tools/javac/model/AnnotationProxyMaker;
            1    9     1    res  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            3    7     2  entry  Ljava/util/Map$Entry<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Attribute;>;
            4    7     4   meth  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            5    7     5  value  Ljava/lang/Object;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  private java.util.Map<com.sun.tools.javac.code.Symbol$MethodSymbol, com.sun.tools.javac.code.Attribute> getAllValues();
    descriptor: ()Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // com.sun.tools.javac.model.AnnotationProxyMaker this
         0: .line 120
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 1 /* res */
        start local 1 // java.util.Map res
         1: .line 123
            aload 0 /* this */
            getfield com.sun.tools.javac.model.AnnotationProxyMaker.anno:Lcom/sun/tools/javac/code/Attribute$Compound;
            getfield com.sun.tools.javac.code.Attribute$Compound.type:Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 2 /* sym */
        start local 2 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
         2: .line 124
            aload 2 /* sym */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.members:()Lcom/sun/tools/javac/code/Scope$WriteableScope;
            getstatic com.sun.tools.javac.code.Scope$LookupKind.NON_RECURSIVE:Lcom/sun/tools/javac/code/Scope$LookupKind;
            invokevirtual com.sun.tools.javac.code.Scope$WriteableScope.getSymbols:(Lcom/sun/tools/javac/code/Scope$LookupKind;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: com.sun.tools.javac.model.AnnotationProxyMaker java.util.Map com.sun.tools.javac.code.Symbol$ClassSymbol top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 3 /* s */
        start local 3 // com.sun.tools.javac.code.Symbol s
         4: .line 125
            aload 3 /* s */
            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 9
         5: .line 126
            aload 3 /* s */
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            astore 5 /* m */
        start local 5 // com.sun.tools.javac.code.Symbol$MethodSymbol m
         6: .line 127
            aload 5 /* m */
            invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.getDefaultValue:()Lcom/sun/tools/javac/code/Attribute;
            astore 6 /* def */
        start local 6 // com.sun.tools.javac.code.Attribute def
         7: .line 128
            aload 6 /* def */
            ifnull 9
         8: .line 129
            aload 1 /* res */
            aload 5 /* m */
            aload 6 /* def */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // com.sun.tools.javac.code.Attribute def
        end local 5 // com.sun.tools.javac.code.Symbol$MethodSymbol m
        end local 3 // com.sun.tools.javac.code.Symbol s
         9: .line 124
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        10: .line 133
            aload 0 /* this */
            getfield com.sun.tools.javac.model.AnnotationProxyMaker.anno:Lcom/sun/tools/javac/code/Attribute$Compound;
            getfield com.sun.tools.javac.code.Attribute$Compound.values:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals:
      StackMap stack:
        11: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.Pair
            astore 3 /* p */
        start local 3 // com.sun.tools.javac.util.Pair p
        12: .line 134
            aload 1 /* res */
            aload 3 /* p */
            getfield com.sun.tools.javac.util.Pair.fst:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            aload 3 /* p */
            getfield com.sun.tools.javac.util.Pair.snd:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Attribute
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // com.sun.tools.javac.util.Pair p
        13: .line 133
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 135
            aload 1 /* res */
            areturn
        end local 2 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
        end local 1 // java.util.Map res
        end local 0 // com.sun.tools.javac.model.AnnotationProxyMaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lcom/sun/tools/javac/model/AnnotationProxyMaker;
            1   15     1   res  Ljava/util/Map<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Attribute;>;
            2   15     2   sym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            4    9     3     s  Lcom/sun/tools/javac/code/Symbol;
            6    9     5     m  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            7    9     6   def  Lcom/sun/tools/javac/code/Attribute;
           12   13     3     p  Lcom/sun/tools/javac/util/Pair<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Attribute;>;
    Signature: ()Ljava/util/Map<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Attribute;>;

  private java.lang.Object generateValue(com.sun.tools.javac.code.Symbol$MethodSymbol, com.sun.tools.javac.code.Attribute);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Attribute;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.model.AnnotationProxyMaker this
        start local 1 // com.sun.tools.javac.code.Symbol$MethodSymbol meth
        start local 2 // com.sun.tools.javac.code.Attribute attr
         0: .line 144
            new com.sun.tools.javac.model.AnnotationProxyMaker$ValueVisitor
            dup
            aload 0 /* this */
            aload 1 /* meth */
            invokespecial com.sun.tools.javac.model.AnnotationProxyMaker$ValueVisitor.<init>:(Lcom/sun/tools/javac/model/AnnotationProxyMaker;Lcom/sun/tools/javac/code/Symbol$MethodSymbol;)V
            astore 3 /* vv */
        start local 3 // com.sun.tools.javac.model.AnnotationProxyMaker$ValueVisitor vv
         1: .line 145
            aload 3 /* vv */
            aload 2 /* attr */
            invokevirtual com.sun.tools.javac.model.AnnotationProxyMaker$ValueVisitor.getValue:(Lcom/sun/tools/javac/code/Attribute;)Ljava/lang/Object;
            areturn
        end local 3 // com.sun.tools.javac.model.AnnotationProxyMaker$ValueVisitor vv
        end local 2 // com.sun.tools.javac.code.Attribute attr
        end local 1 // com.sun.tools.javac.code.Symbol$MethodSymbol meth
        end local 0 // com.sun.tools.javac.model.AnnotationProxyMaker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/model/AnnotationProxyMaker;
            0    2     1  meth  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            0    2     2  attr  Lcom/sun/tools/javac/code/Attribute;
            1    2     3    vv  Lcom/sun/tools/javac/model/AnnotationProxyMaker$ValueVisitor;
    MethodParameters:
      Name  Flags
      meth  
      attr  
}
SourceFile: "AnnotationProxyMaker.java"
NestMembers:
  com.sun.tools.javac.model.AnnotationProxyMaker$MirroredTypeExceptionProxy  com.sun.tools.javac.model.AnnotationProxyMaker$MirroredTypesExceptionProxy  com.sun.tools.javac.model.AnnotationProxyMaker$ValueVisitor  com.sun.tools.javac.model.AnnotationProxyMaker$ValueVisitor$1AnnotationTypeMismatchExceptionProxy
InnerClasses:
  public Compound = com.sun.tools.javac.code.Attribute$Compound of com.sun.tools.javac.code.Attribute
  public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
  public final LookupKind = com.sun.tools.javac.code.Scope$LookupKind of com.sun.tools.javac.code.Scope
  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 MethodSymbol = com.sun.tools.javac.code.Symbol$MethodSymbol of com.sun.tools.javac.code.Symbol
  private final MirroredTypeExceptionProxy = com.sun.tools.javac.model.AnnotationProxyMaker$MirroredTypeExceptionProxy of com.sun.tools.javac.model.AnnotationProxyMaker
  private final MirroredTypesExceptionProxy = com.sun.tools.javac.model.AnnotationProxyMaker$MirroredTypesExceptionProxy of com.sun.tools.javac.model.AnnotationProxyMaker
  private ValueVisitor = com.sun.tools.javac.model.AnnotationProxyMaker$ValueVisitor of com.sun.tools.javac.model.AnnotationProxyMaker
  public abstract Entry = java.util.Map$Entry of java.util.Map