class com.sun.tools.javac.jvm.JNIWriter$TypeSignature
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.jvm.JNIWriter$TypeSignature
  super_class: java.lang.Object
{
  com.sun.tools.javac.model.JavacElements elems;
    descriptor: Lcom/sun/tools/javac/model/JavacElements;
    flags: (0x0000) 

  com.sun.tools.javac.code.Types types;
    descriptor: Lcom/sun/tools/javac/code/Types;
    flags: (0x0000) 

  private static final java.lang.String SIG_VOID;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "V"

  private static final java.lang.String SIG_BOOLEAN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Z"

  private static final java.lang.String SIG_BYTE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "B"

  private static final java.lang.String SIG_CHAR;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "C"

  private static final java.lang.String SIG_SHORT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "S"

  private static final java.lang.String SIG_INT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "I"

  private static final java.lang.String SIG_LONG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "J"

  private static final java.lang.String SIG_FLOAT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "F"

  private static final java.lang.String SIG_DOUBLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "D"

  private static final java.lang.String SIG_ARRAY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "["

  private static final java.lang.String SIG_CLASS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "L"

  public void <init>(com.sun.tools.javac.code.Types);
    descriptor: (Lcom/sun/tools/javac/code/Types;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature this
        start local 1 // com.sun.tools.javac.code.Types types
         0: .line 541
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 542
            aload 0 /* this */
            aload 1 /* types */
            putfield com.sun.tools.javac.jvm.JNIWriter$TypeSignature.types:Lcom/sun/tools/javac/code/Types;
         2: .line 543
            return
        end local 1 // com.sun.tools.javac.code.Types types
        end local 0 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/sun/tools/javac/jvm/JNIWriter$TypeSignature;
            0    3     1  types  Lcom/sun/tools/javac/code/Types;
    MethodParameters:
       Name  Flags
      types  

  java.lang.StringBuilder getParameterSignature(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Ljava/lang/StringBuilder;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature this
        start local 1 // com.sun.tools.javac.code.Type mType
         0: .line 547
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* result */
        start local 2 // java.lang.StringBuilder result
         1: .line 548
            aload 1 /* mType */
            invokevirtual com.sun.tools.javac.code.Type.getParameterTypes:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.sun.tools.javac.jvm.JNIWriter$TypeSignature com.sun.tools.javac.code.Type java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* pType */
        start local 3 // com.sun.tools.javac.code.Type pType
         3: .line 549
            aload 2 /* result */
            aload 0 /* this */
            aload 3 /* pType */
            invokevirtual com.sun.tools.javac.jvm.JNIWriter$TypeSignature.getJvmSignature:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
        end local 3 // com.sun.tools.javac.code.Type pType
         4: .line 548
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 551
            aload 2 /* result */
            areturn
        end local 2 // java.lang.StringBuilder result
        end local 1 // com.sun.tools.javac.code.Type mType
        end local 0 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/sun/tools/javac/jvm/JNIWriter$TypeSignature;
            0    6     1   mType  Lcom/sun/tools/javac/code/Type;
            1    6     2  result  Ljava/lang/StringBuilder;
            3    4     3   pType  Lcom/sun/tools/javac/code/Type;
    Exceptions:
      throws com.sun.tools.javac.jvm.JNIWriter$TypeSignature$SignatureException
    MethodParameters:
       Name  Flags
      mType  

  java.lang.StringBuilder getReturnSignature(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Ljava/lang/StringBuilder;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature this
        start local 1 // com.sun.tools.javac.code.Type mType
         0: .line 556
            aload 0 /* this */
            aload 1 /* mType */
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.jvm.JNIWriter$TypeSignature.getJvmSignature:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/StringBuilder;
            areturn
        end local 1 // com.sun.tools.javac.code.Type mType
        end local 0 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/sun/tools/javac/jvm/JNIWriter$TypeSignature;
            0    1     1  mType  Lcom/sun/tools/javac/code/Type;
    Exceptions:
      throws com.sun.tools.javac.jvm.JNIWriter$TypeSignature$SignatureException
    MethodParameters:
       Name  Flags
      mType  

  java.lang.StringBuilder getSignature(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Ljava/lang/StringBuilder;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature this
        start local 1 // com.sun.tools.javac.code.Type mType
         0: .line 560
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         1: .line 561
            aload 2 /* sb */
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 1 /* mType */
            invokevirtual com.sun.tools.javac.jvm.JNIWriter$TypeSignature.getParameterSignature:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 562
            aload 2 /* sb */
            aload 0 /* this */
            aload 1 /* mType */
            invokevirtual com.sun.tools.javac.jvm.JNIWriter$TypeSignature.getReturnSignature:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
         3: .line 563
            aload 2 /* sb */
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // com.sun.tools.javac.code.Type mType
        end local 0 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/sun/tools/javac/jvm/JNIWriter$TypeSignature;
            0    4     1  mType  Lcom/sun/tools/javac/code/Type;
            1    4     2     sb  Ljava/lang/StringBuilder;
    Exceptions:
      throws com.sun.tools.javac.jvm.JNIWriter$TypeSignature$SignatureException
    MethodParameters:
       Name  Flags
      mType  

  java.lang.StringBuilder getJvmSignature(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Ljava/lang/StringBuilder;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature this
        start local 1 // com.sun.tools.javac.code.Type type
         0: .line 615
            aload 0 /* this */
            getfield com.sun.tools.javac.jvm.JNIWriter$TypeSignature.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* type */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* t */
        start local 2 // com.sun.tools.javac.code.Type t
         1: .line 616
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sig */
        start local 3 // java.lang.StringBuilder sig
         2: .line 617
            new com.sun.tools.javac.jvm.JNIWriter$TypeSignature$JvmTypeVisitor
            dup
            invokespecial com.sun.tools.javac.jvm.JNIWriter$TypeSignature$JvmTypeVisitor.<init>:()V
            astore 4 /* jv */
        start local 4 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature$JvmTypeVisitor jv
         3: .line 618
            aload 4 /* jv */
            aload 2 /* t */
            aload 3 /* sig */
            invokevirtual com.sun.tools.javac.jvm.JNIWriter$TypeSignature$JvmTypeVisitor.visitType:(Lcom/sun/tools/javac/code/Type;Ljava/lang/StringBuilder;)Lcom/sun/tools/javac/code/Type;
            pop
         4: .line 619
            aload 3 /* sig */
            areturn
        end local 4 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature$JvmTypeVisitor jv
        end local 3 // java.lang.StringBuilder sig
        end local 2 // com.sun.tools.javac.code.Type t
        end local 1 // com.sun.tools.javac.code.Type type
        end local 0 // com.sun.tools.javac.jvm.JNIWriter$TypeSignature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/jvm/JNIWriter$TypeSignature;
            0    5     1  type  Lcom/sun/tools/javac/code/Type;
            1    5     2     t  Lcom/sun/tools/javac/code/Type;
            2    5     3   sig  Ljava/lang/StringBuilder;
            3    5     4    jv  Lcom/sun/tools/javac/jvm/JNIWriter$TypeSignature$JvmTypeVisitor;
    MethodParameters:
      Name  Flags
      type  
}
SourceFile: "JNIWriter.java"
NestHost: com.sun.tools.javac.jvm.JNIWriter
InnerClasses:
  private TypeSignature = com.sun.tools.javac.jvm.JNIWriter$TypeSignature of com.sun.tools.javac.jvm.JNIWriter
  JvmTypeVisitor = com.sun.tools.javac.jvm.JNIWriter$TypeSignature$JvmTypeVisitor of com.sun.tools.javac.jvm.JNIWriter$TypeSignature
  SignatureException = com.sun.tools.javac.jvm.JNIWriter$TypeSignature$SignatureException of com.sun.tools.javac.jvm.JNIWriter$TypeSignature