public class org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream extends org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream
  super_class: org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream
{
  public java.util.List allTypeAnnotationContexts;
    descriptor: Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC

  public void <init>(org.eclipse.jdt.internal.compiler.ClassFile);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ClassFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ClassFile givenClassFile
         0: .line 38
            aload 0 /* this */
            aload 1 /* givenClassFile */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.<init>:(Lorg/eclipse/jdt/internal/compiler/ClassFile;)V
         1: .line 39
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.generateAttributes:I
            bipush 32
            ior
            putfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.generateAttributes:I
         2: .line 40
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.allTypeAnnotationContexts:Ljava/util/List;
         3: .line 41
            return
        end local 1 // org.eclipse.jdt.internal.compiler.ClassFile givenClassFile
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0    4     1  givenClassFile  Lorg/eclipse/jdt/internal/compiler/ClassFile;
    MethodParameters:
                Name  Flags
      givenClassFile  

  private void addAnnotationContext(org.eclipse.jdt.internal.compiler.ast.TypeReference, int, int, org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;IILorg/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        start local 2 // int info
        start local 3 // int targetType
        start local 4 // org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression allocationExpression
         0: .line 44
            aload 4 /* allocationExpression */
            iload 3 /* targetType */
            iload 2 /* info */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.allTypeAnnotationContexts:Ljava/util/List;
            invokevirtual org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression.getAllAnnotationContexts:(IILjava/util/List;)V
         1: .line 45
            return
        end local 4 // org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression allocationExpression
        end local 3 // int targetType
        end local 2 // int info
        end local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0    2     1         typeReference  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            0    2     2                  info  I
            0    2     3            targetType  I
            0    2     4  allocationExpression  Lorg/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression;
    MethodParameters:
                      Name  Flags
      typeReference         
      info                  
      targetType            
      allocationExpression  

  private void addAnnotationContext(org.eclipse.jdt.internal.compiler.ast.TypeReference, int, int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        start local 2 // int info
        start local 3 // int targetType
         0: .line 48
            aload 1 /* typeReference */
            iload 3 /* targetType */
            iload 2 /* info */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.allTypeAnnotationContexts:Ljava/util/List;
            invokevirtual org.eclipse.jdt.internal.compiler.ast.TypeReference.getAllAnnotationContexts:(IILjava/util/List;)V
         1: .line 49
            return
        end local 3 // int targetType
        end local 2 // int info
        end local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0    2     1  typeReference  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            0    2     2           info  I
            0    2     3     targetType  I
    MethodParameters:
               Name  Flags
      typeReference  
      info           
      targetType     

  private void addAnnotationContext(org.eclipse.jdt.internal.compiler.ast.TypeReference, int, int, int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;III)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        start local 2 // int info
        start local 3 // int typeIndex
        start local 4 // int targetType
         0: .line 52
            aload 1 /* typeReference */
            iload 4 /* targetType */
            iload 2 /* info */
            iload 3 /* typeIndex */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.allTypeAnnotationContexts:Ljava/util/List;
            invokevirtual org.eclipse.jdt.internal.compiler.ast.TypeReference.getAllAnnotationContexts:(IIILjava/util/List;)V
         1: .line 53
            return
        end local 4 // int targetType
        end local 3 // int typeIndex
        end local 2 // int info
        end local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0    2     1  typeReference  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            0    2     2           info  I
            0    2     3      typeIndex  I
            0    2     4     targetType  I
    MethodParameters:
               Name  Flags
      typeReference  
      info           
      typeIndex      
      targetType     

  public void instance_of(org.eclipse.jdt.internal.compiler.ast.TypeReference, org.eclipse.jdt.internal.compiler.lookup.TypeBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding
         0: .line 57
            aload 1 /* typeReference */
            ifnull 2
            aload 1 /* typeReference */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.bits:I
            ldc 1048576
            iand
            ifeq 2
         1: .line 58
            aload 0 /* this */
            aload 1 /* typeReference */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.position:I
            bipush 67
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.addAnnotationContext:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;II)V
         2: .line 60
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* typeReference */
            aload 2 /* typeBinding */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.instance_of:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
         3: .line 61
            return
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding
        end local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0    4     1  typeReference  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            0    4     2    typeBinding  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    MethodParameters:
               Name  Flags
      typeReference  
      typeBinding    

  public void multianewarray(org.eclipse.jdt.internal.compiler.ast.TypeReference, org.eclipse.jdt.internal.compiler.lookup.TypeBinding, int, org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;ILorg/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding
        start local 3 // int dimensions
        start local 4 // org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression allocationExpression
         0: .line 69
            aload 1 /* typeReference */
            ifnull 2
            aload 1 /* typeReference */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.bits:I
            ldc 1048576
            iand
            ifeq 2
         1: .line 70
            aload 0 /* this */
            aload 1 /* typeReference */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.position:I
            bipush 68
            aload 4 /* allocationExpression */
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.addAnnotationContext:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;IILorg/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression;)V
         2: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* typeReference */
            aload 2 /* typeBinding */
            iload 3 /* dimensions */
            aload 4 /* allocationExpression */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.multianewarray:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;ILorg/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression;)V
         3: .line 73
            return
        end local 4 // org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression allocationExpression
        end local 3 // int dimensions
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding
        end local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    4     0                  this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0    4     1         typeReference  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            0    4     2           typeBinding  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0    4     3            dimensions  I
            0    4     4  allocationExpression  Lorg/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression;
    MethodParameters:
                      Name  Flags
      typeReference         
      typeBinding           
      dimensions            
      allocationExpression  

  public void new_(org.eclipse.jdt.internal.compiler.ast.TypeReference, org.eclipse.jdt.internal.compiler.lookup.TypeBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding
         0: .line 77
            aload 1 /* typeReference */
            ifnull 2
            aload 1 /* typeReference */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.bits:I
            ldc 1048576
            iand
            ifeq 2
         1: .line 78
            aload 0 /* this */
            aload 1 /* typeReference */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.position:I
            bipush 68
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.addAnnotationContext:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;II)V
         2: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* typeReference */
            aload 2 /* typeBinding */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.new_:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
         3: .line 81
            return
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding
        end local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0    4     1  typeReference  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            0    4     2    typeBinding  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    MethodParameters:
               Name  Flags
      typeReference  
      typeBinding    

  public void newArray(org.eclipse.jdt.internal.compiler.ast.TypeReference, org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression, org.eclipse.jdt.internal.compiler.lookup.ArrayBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression;Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        start local 2 // org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression allocationExpression
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.ArrayBinding arrayBinding
         0: .line 85
            aload 1 /* typeReference */
            ifnull 2
            aload 1 /* typeReference */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.bits:I
            ldc 1048576
            iand
            ifeq 2
         1: .line 86
            aload 0 /* this */
            aload 1 /* typeReference */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.position:I
            bipush 68
            aload 2 /* allocationExpression */
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.addAnnotationContext:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;IILorg/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression;)V
         2: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* typeReference */
            aload 2 /* allocationExpression */
            aload 3 /* arrayBinding */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.newArray:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression;Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;)V
         3: .line 89
            return
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.ArrayBinding arrayBinding
        end local 2 // org.eclipse.jdt.internal.compiler.ast.ArrayAllocationExpression allocationExpression
        end local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    4     0                  this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0    4     1         typeReference  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            0    4     2  allocationExpression  Lorg/eclipse/jdt/internal/compiler/ast/ArrayAllocationExpression;
            0    4     3          arrayBinding  Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
    MethodParameters:
                      Name  Flags
      typeReference         
      allocationExpression  
      arrayBinding          

  public void checkcast(org.eclipse.jdt.internal.compiler.ast.TypeReference, org.eclipse.jdt.internal.compiler.lookup.TypeBinding, int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding
        start local 3 // int currentPosition
         0: .line 97
            aload 1 /* typeReference */
            ifnull 16
         1: .line 98
            aload 1 /* typeReference */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.TypeReference.getTypeReferences:()[Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            astore 4 /* typeReferences */
        start local 4 // org.eclipse.jdt.internal.compiler.ast.TypeReference[] typeReferences
         2: .line 99
            aload 4 /* typeReferences */
            arraylength
            iconst_1
            isub
            istore 5 /* i */
        start local 5 // int i
         3: goto 14
         4: .line 100
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.TypeReference[] int
      StackMap stack:
            aload 4 /* typeReferences */
            iload 5 /* i */
            aaload
            astore 1 /* typeReference */
         5: .line 101
            aload 1 /* typeReference */
            ifnull 13
         6: .line 102
            aload 1 /* typeReference */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.bits:I
            ldc 1048576
            iand
            ifeq 11
         7: .line 103
            aload 1 /* typeReference */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
            ifne 10
         8: .line 104
            aload 0 /* this */
            aload 1 /* typeReference */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.position:I
            iload 5 /* i */
            bipush 71
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.addAnnotationContext:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;III)V
         9: .line 105
            goto 11
        10: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* typeReference */
            iload 3 /* currentPosition */
            iload 5 /* i */
            bipush 71
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.addAnnotationContext:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;III)V
        11: .line 110
      StackMap locals:
      StackMap stack:
            aload 1 /* typeReference */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isBaseType:()Z
            ifne 13
        12: .line 111
            aload 0 /* this */
            aload 1 /* typeReference */
            aload 1 /* typeReference */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            iload 3 /* currentPosition */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.checkcast:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I)V
        13: .line 99
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ -1
      StackMap locals:
      StackMap stack:
        14: iload 5 /* i */
            ifge 4
        end local 5 // int i
        end local 4 // org.eclipse.jdt.internal.compiler.ast.TypeReference[] typeReferences
        15: .line 115
            goto 17
        16: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 2 /* typeBinding */
            iload 3 /* currentPosition */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.checkcast:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I)V
        17: .line 118
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int currentPosition
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeBinding
        end local 1 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeReference
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0   18     1    typeReference  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            0   18     2      typeBinding  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   18     3  currentPosition  I
            2   15     4   typeReferences  [Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            3   15     5                i  I
    MethodParameters:
                 Name  Flags
      typeReference    
      typeBinding      
      currentPosition  

  public void invoke(byte, org.eclipse.jdt.internal.compiler.lookup.MethodBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.ast.TypeReference[]);
    descriptor: (BLorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // byte opcode
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding methodBinding
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding declaringClass
        start local 4 // org.eclipse.jdt.internal.compiler.ast.TypeReference[] typeArguments
         0: .line 122
            aload 4 /* typeArguments */
            ifnull 13
         1: .line 123
            aload 2 /* methodBinding */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodBinding.isConstructor:()Z
            ifeq 3
         2: .line 124
            bipush 72
            goto 4
         3: .line 125
      StackMap locals:
      StackMap stack:
            bipush 73
         4: .line 123
      StackMap locals:
      StackMap stack: int
            istore 5 /* targetType */
        start local 5 // int targetType
         5: .line 126
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: aload 4 /* typeArguments */
            arraylength
            istore 7 /* max */
        start local 7 // int max
         7: goto 12
         8: .line 127
      StackMap locals: int int int
      StackMap stack:
            aload 4 /* typeArguments */
            iload 6 /* i */
            aaload
            astore 8 /* typeArgument */
        start local 8 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeArgument
         9: .line 128
            aload 8 /* typeArgument */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.bits:I
            ldc 1048576
            iand
            ifeq 11
        10: .line 129
            aload 0 /* this */
            aload 8 /* typeArgument */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.position:I
            iload 6 /* i */
            iload 5 /* targetType */
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.addAnnotationContext:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;III)V
        end local 8 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeArgument
        11: .line 126
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 6 /* i */
            iload 7 /* max */
            if_icmplt 8
        end local 7 // int max
        end local 6 // int i
        end local 5 // int targetType
        13: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* opcode */
            aload 2 /* methodBinding */
            aload 3 /* declaringClass */
            aload 4 /* typeArguments */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.invoke:(BLorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;)V
        14: .line 134
            return
        end local 4 // org.eclipse.jdt.internal.compiler.ast.TypeReference[] typeArguments
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding declaringClass
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding methodBinding
        end local 1 // byte opcode
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0   15     1          opcode  B
            0   15     2   methodBinding  Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;
            0   15     3  declaringClass  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   15     4   typeArguments  [Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            5   13     5      targetType  I
            6   13     6               i  I
            7   13     7             max  I
            9   11     8    typeArgument  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
    MethodParameters:
                Name  Flags
      opcode          
      methodBinding   
      declaringClass  
      typeArguments   

  public void invokeDynamic(int, int, int, char[], char[], boolean, org.eclipse.jdt.internal.compiler.ast.TypeReference, org.eclipse.jdt.internal.compiler.ast.TypeReference[]);
    descriptor: (III[C[CZLorg/eclipse/jdt/internal/compiler/ast/TypeReference;[Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=13, args_size=9
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // int bootStrapIndex
        start local 2 // int argsSize
        start local 3 // int returnTypeSize
        start local 4 // char[] selector
        start local 5 // char[] signature
        start local 6 // boolean isConstructorReference
        start local 7 // org.eclipse.jdt.internal.compiler.ast.TypeReference lhsTypeReference
        start local 8 // org.eclipse.jdt.internal.compiler.ast.TypeReference[] typeArguments
         0: .line 139
            aload 7 /* lhsTypeReference */
            ifnull 5
            aload 7 /* lhsTypeReference */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.bits:I
            ldc 1048576
            iand
            ifeq 5
         1: .line 140
            iload 6 /* isConstructorReference */
            ifeq 4
         2: .line 141
            aload 0 /* this */
            aload 7 /* lhsTypeReference */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.position:I
            iconst_0
            bipush 69
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.addAnnotationContext:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;III)V
         3: .line 142
            goto 5
         4: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* lhsTypeReference */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.position:I
            iconst_0
            bipush 70
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.addAnnotationContext:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;III)V
         5: .line 146
      StackMap locals:
      StackMap stack:
            aload 8 /* typeArguments */
            ifnull 18
         6: .line 148
            iload 6 /* isConstructorReference */
            ifeq 8
         7: .line 149
            bipush 74
            goto 9
         8: .line 150
      StackMap locals:
      StackMap stack:
            bipush 75
         9: .line 147
      StackMap locals:
      StackMap stack: int
            istore 9 /* targetType */
        start local 9 // int targetType
        10: .line 151
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        11: aload 8 /* typeArguments */
            arraylength
            istore 11 /* max */
        start local 11 // int max
        12: goto 17
        13: .line 152
      StackMap locals: int int int
      StackMap stack:
            aload 8 /* typeArguments */
            iload 10 /* i */
            aaload
            astore 12 /* typeArgument */
        start local 12 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeArgument
        14: .line 153
            aload 12 /* typeArgument */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeReference.bits:I
            ldc 1048576
            iand
            ifeq 16
        15: .line 154
            aload 0 /* this */
            aload 12 /* typeArgument */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.position:I
            iload 10 /* i */
            iload 9 /* targetType */
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.addAnnotationContext:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;III)V
        end local 12 // org.eclipse.jdt.internal.compiler.ast.TypeReference typeArgument
        16: .line 151
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 10 /* i */
            iload 11 /* max */
            if_icmplt 13
        end local 11 // int max
        end local 10 // int i
        end local 9 // int targetType
        18: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* bootStrapIndex */
            iload 2 /* argsSize */
            iload 3 /* returnTypeSize */
            aload 4 /* selector */
            aload 5 /* signature */
            iload 6 /* isConstructorReference */
            aload 7 /* lhsTypeReference */
            aload 8 /* typeArguments */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.invokeDynamic:(III[C[CZLorg/eclipse/jdt/internal/compiler/ast/TypeReference;[Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;)V
        19: .line 159
            return
        end local 8 // org.eclipse.jdt.internal.compiler.ast.TypeReference[] typeArguments
        end local 7 // org.eclipse.jdt.internal.compiler.ast.TypeReference lhsTypeReference
        end local 6 // boolean isConstructorReference
        end local 5 // char[] signature
        end local 4 // char[] selector
        end local 3 // int returnTypeSize
        end local 2 // int argsSize
        end local 1 // int bootStrapIndex
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   20     0                    this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0   20     1          bootStrapIndex  I
            0   20     2                argsSize  I
            0   20     3          returnTypeSize  I
            0   20     4                selector  [C
            0   20     5               signature  [C
            0   20     6  isConstructorReference  Z
            0   20     7        lhsTypeReference  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            0   20     8           typeArguments  [Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
           10   18     9              targetType  I
           11   18    10                       i  I
           12   18    11                     max  I
           14   16    12            typeArgument  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
    MethodParameters:
                        Name  Flags
      bootStrapIndex          
      argsSize                
      returnTypeSize          
      selector                
      signature               
      isConstructorReference  
      lhsTypeReference        
      typeArguments           

  public void reset(org.eclipse.jdt.internal.compiler.ClassFile);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ClassFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ClassFile givenClassFile
         0: .line 163
            aload 0 /* this */
            aload 1 /* givenClassFile */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.reset:(Lorg/eclipse/jdt/internal/compiler/ClassFile;)V
         1: .line 164
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.allTypeAnnotationContexts:Ljava/util/List;
         2: .line 165
            return
        end local 1 // org.eclipse.jdt.internal.compiler.ClassFile givenClassFile
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0    3     1  givenClassFile  Lorg/eclipse/jdt/internal/compiler/ClassFile;
    MethodParameters:
                Name  Flags
      givenClassFile  

  public void init(org.eclipse.jdt.internal.compiler.ClassFile);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ClassFile;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
        start local 1 // org.eclipse.jdt.internal.compiler.ClassFile targetClassFile
         0: .line 169
            aload 0 /* this */
            aload 1 /* targetClassFile */
            invokespecial org.eclipse.jdt.internal.compiler.codegen.StackMapFrameCodeStream.init:(Lorg/eclipse/jdt/internal/compiler/ClassFile;)V
         1: .line 170
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream.allTypeAnnotationContexts:Ljava/util/List;
         2: .line 171
            return
        end local 1 // org.eclipse.jdt.internal.compiler.ClassFile targetClassFile
        end local 0 // org.eclipse.jdt.internal.compiler.codegen.TypeAnnotationCodeStream this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/eclipse/jdt/internal/compiler/codegen/TypeAnnotationCodeStream;
            0    3     1  targetClassFile  Lorg/eclipse/jdt/internal/compiler/ClassFile;
    MethodParameters:
                 Name  Flags
      targetClassFile  
}
SourceFile: "TypeAnnotationCodeStream.java"