public class org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem extends org.eclipse.jdt.internal.compiler.lookup.TypeSystem
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem
  super_class: org.eclipse.jdt.internal.compiler.lookup.TypeSystem
{
  private boolean isAnnotationBasedNullAnalysisEnabled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment environment
         0: .line 37
            aload 0 /* this */
            aload 1 /* environment */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.TypeSystem.<init>:(Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;)V
         1: .line 38
            aload 0 /* this */
            aload 1 /* environment */
            putfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.environment:Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
         2: .line 39
            aload 0 /* this */
            aload 1 /* environment */
            getfield org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.globalOptions:Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;
            getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.isAnnotationBasedNullAnalysisEnabled:Z
            putfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.isAnnotationBasedNullAnalysisEnabled:Z
         3: .line 40
            return
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment environment
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0    4     1  environment  Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
    MethodParameters:
             Name  Flags
      environment  

  public org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] getAnnotatedTypes(org.eclipse.jdt.internal.compiler.lookup.TypeBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding type
         0: .line 46
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getDerivedTypes:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 2 /* derivedTypes */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] derivedTypes
         1: .line 47
            aload 2 /* derivedTypes */
            arraylength
            istore 3 /* length */
        start local 3 // int length
         2: .line 48
            iload 3 /* length */
            anewarray org.eclipse.jdt.internal.compiler.lookup.TypeBinding
            astore 4 /* annotatedVersions */
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] annotatedVersions
         3: .line 49
            iconst_0
            istore 5 /* versions */
        start local 5 // int versions
         4: .line 50
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 14
         6: .line 51
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int int
      StackMap stack:
            aload 2 /* derivedTypes */
            iload 6 /* i */
            aaload
            astore 7 /* derivedType */
        start local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding derivedType
         7: .line 52
            aload 7 /* derivedType */
            ifnonnull 9
         8: .line 53
            goto 15
         9: .line 54
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 7 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.hasTypeAnnotations:()Z
            ifne 11
        10: .line 55
            goto 13
        11: .line 56
      StackMap locals:
      StackMap stack:
            aload 7 /* derivedType */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
            aload 1 /* type */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
            if_icmpne 13
        12: .line 57
            aload 4 /* annotatedVersions */
            iload 5 /* versions */
            iinc 5 /* versions */ 1
            aload 7 /* derivedType */
            aastore
        end local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding derivedType
        13: .line 50
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            iload 3 /* length */
            if_icmplt 6
        end local 6 // int i
        15: .line 60
      StackMap locals:
      StackMap stack:
            iload 5 /* versions */
            iload 3 /* length */
            if_icmpeq 17
        16: .line 61
            aload 4 /* annotatedVersions */
            iconst_0
            iload 5 /* versions */
            anewarray org.eclipse.jdt.internal.compiler.lookup.TypeBinding
            dup
            astore 4 /* annotatedVersions */
            iconst_0
            iload 5 /* versions */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 62
      StackMap locals:
      StackMap stack:
            aload 4 /* annotatedVersions */
            areturn
        end local 5 // int versions
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] annotatedVersions
        end local 3 // int length
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] derivedTypes
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding type
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   18     0               this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0   18     1               type  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            1   18     2       derivedTypes  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            2   18     3             length  I
            3   18     4  annotatedVersions  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            4   18     5           versions  I
            5   15     6                  i  I
            7   13     7        derivedType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    MethodParameters:
      Name  Flags
      type  

  public org.eclipse.jdt.internal.compiler.lookup.ArrayBinding getArrayType(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, int, org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[]);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding leafType
        start local 2 // int dimensions
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
         0: .line 73
            aload 1 /* leafType */
            instanceof org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
            ifeq 8
         1: .line 74
            iload 2 /* dimensions */
            aload 1 /* leafType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.dimensions:()I
            iadd
            istore 2 /* dimensions */
         2: .line 75
            aload 1 /* leafType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.getTypeAnnotations:()[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            astore 4 /* leafAnnotations */
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] leafAnnotations
         3: .line 76
            aload 1 /* leafType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.leafComponentType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 1 /* leafType */
         4: .line 77
            aload 4 /* leafAnnotations */
            arraylength
            aload 3 /* annotations */
            arraylength
            iadd
            iconst_1
            iadd
            anewarray org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding
            astore 5 /* allAnnotations */
        start local 5 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] allAnnotations
         5: .line 78
            aload 3 /* annotations */
            iconst_0
            aload 5 /* allAnnotations */
            iconst_0
            aload 3 /* annotations */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 79
            aload 4 /* leafAnnotations */
            iconst_0
            aload 5 /* allAnnotations */
            aload 3 /* annotations */
            arraylength
            iconst_1
            iadd
            aload 4 /* leafAnnotations */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 80
            aload 5 /* allAnnotations */
            astore 3 /* annotations */
        end local 5 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] allAnnotations
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] leafAnnotations
         8: .line 82
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* nakedType */
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.ArrayBinding nakedType
         9: .line 83
            aload 0 /* this */
            aload 1 /* leafType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getDerivedTypes:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 5 /* derivedTypes */
        start local 5 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] derivedTypes
        10: .line 84
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: aload 5 /* derivedTypes */
            arraylength
            istore 7 /* length */
        start local 7 // int length
        12: goto 22
        13: .line 85
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.TypeBinding int org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] org.eclipse.jdt.internal.compiler.lookup.ArrayBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int int
      StackMap stack:
            aload 5 /* derivedTypes */
            iload 6 /* i */
            aaload
            astore 8 /* derivedType */
        start local 8 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding derivedType
        14: .line 86
            aload 8 /* derivedType */
            ifnonnull 15
            goto 23
        15: .line 87
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isArrayType:()Z
            ifeq 21
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.dimensions:()I
            iload 2 /* dimensions */
            if_icmpne 21
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.leafComponentType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 1 /* leafType */
            if_acmpeq 17
        16: .line 88
            goto 21
        17: .line 89
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.getTypeAnnotations:()[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            aload 3 /* annotations */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.effectivelyEqual:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 19
        18: .line 90
            aload 8 /* derivedType */
            checkcast org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
            areturn
        19: .line 91
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.hasTypeAnnotations:()Z
            ifne 21
        20: .line 92
            aload 8 /* derivedType */
            checkcast org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
            astore 4 /* nakedType */
        end local 8 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding derivedType
        21: .line 84
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 6 /* i */
            iload 7 /* length */
            if_icmplt 13
        end local 7 // int length
        end local 6 // int i
        23: .line 94
      StackMap locals:
      StackMap stack:
            aload 4 /* nakedType */
            ifnonnull 25
        24: .line 95
            aload 0 /* this */
            aload 1 /* leafType */
            iload 2 /* dimensions */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.TypeSystem.getArrayType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I)Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
            astore 4 /* nakedType */
        25: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* leafType */
            aload 3 /* annotations */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.haveTypeAnnotations:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Z
            ifne 27
        26: .line 98
            aload 4 /* nakedType */
            areturn
        27: .line 100
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
            dup
            aload 1 /* leafType */
            iload 2 /* dimensions */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.environment:Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
            invokespecial org.eclipse.jdt.internal.compiler.lookup.ArrayBinding.<init>:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;ILorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;)V
            astore 6 /* arrayType */
        start local 6 // org.eclipse.jdt.internal.compiler.lookup.ArrayBinding arrayType
        28: .line 101
            aload 6 /* arrayType */
            aload 4 /* nakedType */
            getfield org.eclipse.jdt.internal.compiler.lookup.ArrayBinding.id:I
            putfield org.eclipse.jdt.internal.compiler.lookup.ArrayBinding.id:I
        29: .line 102
            aload 6 /* arrayType */
            aload 3 /* annotations */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.isAnnotationBasedNullAnalysisEnabled:Z
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ArrayBinding.setTypeAnnotations:([Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;Z)V
        30: .line 103
            aload 0 /* this */
            aload 1 /* leafType */
            aload 4 /* nakedType */
            aload 6 /* arrayType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.cacheDerivedType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            checkcast org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
            areturn
        end local 6 // org.eclipse.jdt.internal.compiler.lookup.ArrayBinding arrayType
        end local 5 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] derivedTypes
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.ArrayBinding nakedType
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
        end local 2 // int dimensions
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding leafType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   31     0             this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0   31     1         leafType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   31     2       dimensions  I
            0   31     3      annotations  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            3    8     4  leafAnnotations  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            5    8     5   allAnnotations  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            9   31     4        nakedType  Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
           10   31     5     derivedTypes  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           11   23     6                i  I
           12   23     7           length  I
           14   21     8      derivedType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           28   31     6        arrayType  Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
    MethodParameters:
             Name  Flags
      leafType     
      dimensions   
      annotations  

  public org.eclipse.jdt.internal.compiler.lookup.ArrayBinding getArrayType(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I)Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding leaftType
        start local 2 // int dimensions
         0: .line 108
            aload 0 /* this */
            aload 1 /* leaftType */
            iload 2 /* dimensions */
            getstatic org.eclipse.jdt.internal.compiler.lookup.Binding.NO_ANNOTATIONS:[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getArrayType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
            areturn
        end local 2 // int dimensions
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding leaftType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0    1     1   leaftType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0    1     2  dimensions  I
    MethodParameters:
            Name  Flags
      leaftType   
      dimensions  

  public org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding getMemberType(org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding memberType
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingType
         0: .line 113
            aload 0 /* this */
            aload 1 /* memberType */
            aload 2 /* enclosingType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.haveTypeAnnotations:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
            ifne 2
         1: .line 114
            aload 0 /* this */
            aload 1 /* memberType */
            aload 2 /* enclosingType */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.TypeSystem.getMemberType:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            areturn
         2: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* memberType */
            aload 2 /* enclosingType */
            aload 1 /* memberType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.getTypeAnnotations:()[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getAnnotatedType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
            areturn
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingType
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding memberType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0    3     1     memberType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0    3     2  enclosingType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
    MethodParameters:
               Name  Flags
      memberType     
      enclosingType  

  public org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding getParameterizedType(org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding[], org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[]);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] typeArguments
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingType
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
         0: .line 121
            aload 1 /* genericType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.hasTypeAnnotations:()Z
            ifeq 2
         1: .line 122
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         2: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.parameterizedTypes:Lorg/eclipse/jdt/internal/compiler/lookup/TypeSystem$HashedParameterizedTypes;
            aload 1 /* genericType */
            aload 2 /* typeArguments */
            aload 3 /* enclosingType */
            aload 4 /* annotations */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeSystem$HashedParameterizedTypes.get:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;
            astore 5 /* parameterizedType */
        start local 5 // org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding parameterizedType
         3: .line 125
            aload 5 /* parameterizedType */
            ifnull 5
         4: .line 126
            aload 5 /* parameterizedType */
            areturn
         5: .line 128
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
      StackMap stack:
            aload 0 /* this */
            aload 1 /* genericType */
            aload 2 /* typeArguments */
            aload 3 /* enclosingType */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.TypeSystem.getParameterizedType:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;
            astore 6 /* nakedType */
        start local 6 // org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding nakedType
         6: .line 130
            aload 0 /* this */
            aload 1 /* genericType */
            aload 3 /* enclosingType */
            aload 2 /* typeArguments */
            aload 4 /* annotations */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.haveTypeAnnotations:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Z
            ifne 8
         7: .line 131
            aload 6 /* nakedType */
            areturn
         8: .line 133
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
      StackMap stack:
            new org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
            dup
            aload 1 /* genericType */
            aload 2 /* typeArguments */
            aload 3 /* enclosingType */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.environment:Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
            invokespecial org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.<init>:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;)V
            astore 5 /* parameterizedType */
         9: .line 134
            aload 5 /* parameterizedType */
            aload 6 /* nakedType */
            getfield org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.id:I
            putfield org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.id:I
        10: .line 135
            aload 5 /* parameterizedType */
            aload 4 /* annotations */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.isAnnotationBasedNullAnalysisEnabled:Z
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.setTypeAnnotations:([Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;Z)V
        11: .line 136
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.parameterizedTypes:Lorg/eclipse/jdt/internal/compiler/lookup/TypeSystem$HashedParameterizedTypes;
            aload 1 /* genericType */
            aload 2 /* typeArguments */
            aload 3 /* enclosingType */
            aload 5 /* parameterizedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeSystem$HashedParameterizedTypes.put:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;)V
        12: .line 137
            aload 0 /* this */
            aload 1 /* genericType */
            aload 6 /* nakedType */
            aload 5 /* parameterizedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.cacheDerivedType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            checkcast org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
            areturn
        end local 6 // org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding nakedType
        end local 5 // org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding parameterizedType
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingType
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] typeArguments
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   13     0               this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0   13     1        genericType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   13     2      typeArguments  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   13     3      enclosingType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   13     4        annotations  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            3   13     5  parameterizedType  Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;
            6   13     6          nakedType  Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;
    MethodParameters:
               Name  Flags
      genericType    
      typeArguments  
      enclosingType  
      annotations    

  public org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding getParameterizedType(org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding[], org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] typeArguments
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingType
         0: .line 142
            aload 0 /* this */
            aload 1 /* genericType */
            aload 2 /* typeArguments */
            aload 3 /* enclosingType */
            getstatic org.eclipse.jdt.internal.compiler.lookup.Binding.NO_ANNOTATIONS:[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getParameterizedType:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;
            areturn
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingType
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] typeArguments
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0    1     1    genericType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0    1     2  typeArguments  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0    1     3  enclosingType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
    MethodParameters:
               Name  Flags
      genericType    
      typeArguments  
      enclosingType  

  public org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding getRawType(org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[]);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/RawTypeBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingType
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
         0: .line 147
            aload 1 /* genericType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.hasTypeAnnotations:()Z
            ifeq 2
         1: .line 148
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         2: .line 149
      StackMap locals:
      StackMap stack:
            aload 1 /* genericType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.hasEnclosingInstanceContext:()Z
            ifne 4
            aload 2 /* enclosingType */
            ifnull 4
         3: .line 150
            aload 2 /* enclosingType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.original:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
            astore 2 /* enclosingType */
         4: .line 153
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* nakedType */
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding nakedType
         5: .line 154
            aload 0 /* this */
            aload 1 /* genericType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getDerivedTypes:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 5 /* derivedTypes */
        start local 5 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] derivedTypes
         6: .line 155
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         7: aload 5 /* derivedTypes */
            arraylength
            istore 7 /* length */
        start local 7 // int length
         8: goto 19
         9: .line 156
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int int
      StackMap stack:
            aload 5 /* derivedTypes */
            iload 6 /* i */
            aaload
            astore 8 /* derivedType */
        start local 8 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding derivedType
        10: .line 157
            aload 8 /* derivedType */
            ifnonnull 12
        11: .line 158
            goto 20
        12: .line 159
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isRawType:()Z
            ifeq 18
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.actualType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            aload 1 /* genericType */
            if_acmpne 18
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.enclosingType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            aload 2 /* enclosingType */
            if_acmpeq 14
        13: .line 160
            goto 18
        14: .line 161
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.getTypeAnnotations:()[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            aload 3 /* annotations */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.effectivelyEqual:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 16
        15: .line 162
            aload 8 /* derivedType */
            checkcast org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding
            areturn
        16: .line 163
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.hasTypeAnnotations:()Z
            ifne 18
        17: .line 164
            aload 8 /* derivedType */
            checkcast org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding
            astore 4 /* nakedType */
        end local 8 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding derivedType
        18: .line 155
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 7 /* length */
            if_icmplt 9
        end local 7 // int length
        end local 6 // int i
        20: .line 166
      StackMap locals:
      StackMap stack:
            aload 4 /* nakedType */
            ifnonnull 22
        21: .line 167
            aload 0 /* this */
            aload 1 /* genericType */
            aload 2 /* enclosingType */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.TypeSystem.getRawType:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/RawTypeBinding;
            astore 4 /* nakedType */
        22: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* genericType */
            aload 2 /* enclosingType */
            aconst_null
            aload 3 /* annotations */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.haveTypeAnnotations:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Z
            ifne 24
        23: .line 170
            aload 4 /* nakedType */
            areturn
        24: .line 172
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding
            dup
            aload 1 /* genericType */
            aload 2 /* enclosingType */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.environment:Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
            invokespecial org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding.<init>:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;)V
            astore 6 /* rawType */
        start local 6 // org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding rawType
        25: .line 173
            aload 6 /* rawType */
            aload 4 /* nakedType */
            getfield org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding.id:I
            putfield org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding.id:I
        26: .line 174
            aload 6 /* rawType */
            aload 3 /* annotations */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.isAnnotationBasedNullAnalysisEnabled:Z
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding.setTypeAnnotations:([Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;Z)V
        27: .line 175
            aload 0 /* this */
            aload 1 /* genericType */
            aload 4 /* nakedType */
            aload 6 /* rawType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.cacheDerivedType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            checkcast org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding
            areturn
        end local 6 // org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding rawType
        end local 5 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] derivedTypes
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding nakedType
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingType
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   28     0           this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0   28     1    genericType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   28     2  enclosingType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   28     3    annotations  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            5   28     4      nakedType  Lorg/eclipse/jdt/internal/compiler/lookup/RawTypeBinding;
            6   28     5   derivedTypes  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            7   20     6              i  I
            8   20     7         length  I
           10   18     8    derivedType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           25   28     6        rawType  Lorg/eclipse/jdt/internal/compiler/lookup/RawTypeBinding;
    MethodParameters:
               Name  Flags
      genericType    
      enclosingType  
      annotations    

  public org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding getRawType(org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/RawTypeBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingType
         0: .line 180
            aload 0 /* this */
            aload 1 /* genericType */
            aload 2 /* enclosingType */
            getstatic org.eclipse.jdt.internal.compiler.lookup.Binding.NO_ANNOTATIONS:[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getRawType:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/RawTypeBinding;
            areturn
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingType
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0    1     1    genericType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0    1     2  enclosingType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
    MethodParameters:
               Name  Flags
      genericType    
      enclosingType  

  public org.eclipse.jdt.internal.compiler.lookup.WildcardBinding getWildcard(org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, int, org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding[], int, org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[]);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;ILorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/WildcardBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=13, args_size=7
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        start local 2 // int rank
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding bound
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] otherBounds
        start local 5 // int boundKind
        start local 6 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
         0: .line 186
            aload 1 /* genericType */
            ifnonnull 2
         1: .line 187
            getstatic org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.LUB_GENERIC:Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 1 /* genericType */
         2: .line 189
      StackMap locals:
      StackMap stack:
            aload 1 /* genericType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding.hasTypeAnnotations:()Z
            ifeq 4
         3: .line 190
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         4: .line 192
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* nakedType */
        start local 7 // org.eclipse.jdt.internal.compiler.lookup.WildcardBinding nakedType
         5: .line 193
            aload 3 /* bound */
            instanceof org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
            ifne 7
            aload 3 /* bound */
            instanceof org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding
            ifeq 6
            aload 3 /* bound */
            instanceof org.eclipse.jdt.internal.compiler.lookup.RawTypeBinding
            ifeq 7
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.WildcardBinding
      StackMap stack:
         6: iconst_0
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: istore 8 /* useDerivedTypesOfBound */
        start local 8 // boolean useDerivedTypesOfBound
         9: .line 194
            aload 0 /* this */
            iload 8 /* useDerivedTypesOfBound */
            ifeq 10
            aload 3 /* bound */
            goto 11
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] org.eclipse.jdt.internal.compiler.lookup.WildcardBinding int
      StackMap stack: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem
        10: aload 1 /* genericType */
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] org.eclipse.jdt.internal.compiler.lookup.WildcardBinding int
      StackMap stack: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.TypeBinding
        11: invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getDerivedTypes:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 9 /* derivedTypes */
        start local 9 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] derivedTypes
        12: .line 195
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        13: aload 9 /* derivedTypes */
            arraylength
            istore 11 /* length */
        start local 11 // int length
        14: goto 27
        15: .line 196
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int int
      StackMap stack:
            aload 9 /* derivedTypes */
            iload 10 /* i */
            aaload
            astore 12 /* derivedType */
        start local 12 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding derivedType
        16: .line 197
            aload 12 /* derivedType */
            ifnonnull 18
        17: .line 198
            goto 28
        18: .line 199
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 12 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isWildcard:()Z
            ifeq 26
            aload 12 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.actualType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            aload 1 /* genericType */
            if_acmpne 26
            aload 12 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.rank:()I
            iload 2 /* rank */
            if_icmpeq 20
        19: .line 200
            goto 26
        20: .line 201
      StackMap locals:
      StackMap stack:
            aload 12 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.boundKind:()I
            iload 5 /* boundKind */
            if_icmpne 26
            aload 12 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.bound:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 3 /* bound */
            if_acmpne 26
            aload 12 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.additionalBounds:()[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 4 /* otherBounds */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.effectivelyEqual:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifne 22
        21: .line 202
            goto 26
        22: .line 203
      StackMap locals:
      StackMap stack:
            aload 12 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.getTypeAnnotations:()[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            aload 6 /* annotations */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.effectivelyEqual:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 24
        23: .line 204
            aload 12 /* derivedType */
            checkcast org.eclipse.jdt.internal.compiler.lookup.WildcardBinding
            areturn
        24: .line 205
      StackMap locals:
      StackMap stack:
            aload 12 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.hasTypeAnnotations:()Z
            ifne 26
        25: .line 206
            aload 12 /* derivedType */
            checkcast org.eclipse.jdt.internal.compiler.lookup.WildcardBinding
            astore 7 /* nakedType */
        end local 12 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding derivedType
        26: .line 195
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 10 /* i */
            iload 11 /* length */
            if_icmplt 15
        end local 11 // int length
        end local 10 // int i
        28: .line 209
      StackMap locals:
      StackMap stack:
            aload 7 /* nakedType */
            ifnonnull 30
        29: .line 210
            aload 0 /* this */
            aload 1 /* genericType */
            iload 2 /* rank */
            aload 3 /* bound */
            aload 4 /* otherBounds */
            iload 5 /* boundKind */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.TypeSystem.getWildcard:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;ILorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I)Lorg/eclipse/jdt/internal/compiler/lookup/WildcardBinding;
            astore 7 /* nakedType */
        30: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* genericType */
            aload 3 /* bound */
            aload 4 /* otherBounds */
            aload 6 /* annotations */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.haveTypeAnnotations:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Z
            ifne 32
        31: .line 213
            aload 7 /* nakedType */
            areturn
        32: .line 215
      StackMap locals:
      StackMap stack:
            new org.eclipse.jdt.internal.compiler.lookup.WildcardBinding
            dup
            aload 1 /* genericType */
            iload 2 /* rank */
            aload 3 /* bound */
            aload 4 /* otherBounds */
            iload 5 /* boundKind */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.environment:Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
            invokespecial org.eclipse.jdt.internal.compiler.lookup.WildcardBinding.<init>:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;ILorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;ILorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;)V
            astore 10 /* wildcard */
        start local 10 // org.eclipse.jdt.internal.compiler.lookup.WildcardBinding wildcard
        33: .line 216
            aload 10 /* wildcard */
            aload 7 /* nakedType */
            getfield org.eclipse.jdt.internal.compiler.lookup.WildcardBinding.id:I
            putfield org.eclipse.jdt.internal.compiler.lookup.WildcardBinding.id:I
        34: .line 217
            aload 10 /* wildcard */
            aload 6 /* annotations */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.isAnnotationBasedNullAnalysisEnabled:Z
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.WildcardBinding.setTypeAnnotations:([Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;Z)V
        35: .line 218
            aload 0 /* this */
            iload 8 /* useDerivedTypesOfBound */
            ifeq 36
            aload 3 /* bound */
            goto 37
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] org.eclipse.jdt.internal.compiler.lookup.WildcardBinding int org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] org.eclipse.jdt.internal.compiler.lookup.WildcardBinding
      StackMap stack: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem
        36: aload 1 /* genericType */
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding int org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] org.eclipse.jdt.internal.compiler.lookup.WildcardBinding int org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] org.eclipse.jdt.internal.compiler.lookup.WildcardBinding
      StackMap stack: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.TypeBinding
        37: aload 7 /* nakedType */
            aload 10 /* wildcard */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.cacheDerivedType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            checkcast org.eclipse.jdt.internal.compiler.lookup.WildcardBinding
            areturn
        end local 10 // org.eclipse.jdt.internal.compiler.lookup.WildcardBinding wildcard
        end local 9 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] derivedTypes
        end local 8 // boolean useDerivedTypesOfBound
        end local 7 // org.eclipse.jdt.internal.compiler.lookup.WildcardBinding nakedType
        end local 6 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
        end local 5 // int boundKind
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] otherBounds
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding bound
        end local 2 // int rank
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   38     0                    this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0   38     1             genericType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   38     2                    rank  I
            0   38     3                   bound  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   38     4             otherBounds  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   38     5               boundKind  I
            0   38     6             annotations  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            5   38     7               nakedType  Lorg/eclipse/jdt/internal/compiler/lookup/WildcardBinding;
            9   38     8  useDerivedTypesOfBound  Z
           12   38     9            derivedTypes  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           13   28    10                       i  I
           14   28    11                  length  I
           16   26    12             derivedType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           33   38    10                wildcard  Lorg/eclipse/jdt/internal/compiler/lookup/WildcardBinding;
    MethodParameters:
             Name  Flags
      genericType  
      rank         
      bound        
      otherBounds  
      boundKind    
      annotations  

  public org.eclipse.jdt.internal.compiler.lookup.WildcardBinding getWildcard(org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, int, org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding[], int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;ILorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I)Lorg/eclipse/jdt/internal/compiler/lookup/WildcardBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        start local 2 // int rank
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding bound
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] otherBounds
        start local 5 // int boundKind
         0: .line 223
            aload 0 /* this */
            aload 1 /* genericType */
            iload 2 /* rank */
            aload 3 /* bound */
            aload 4 /* otherBounds */
            iload 5 /* boundKind */
            getstatic org.eclipse.jdt.internal.compiler.lookup.Binding.NO_ANNOTATIONS:[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getWildcard:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;ILorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/WildcardBinding;
            areturn
        end local 5 // int boundKind
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] otherBounds
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding bound
        end local 2 // int rank
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding genericType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0    1     1  genericType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0    1     2         rank  I
            0    1     3        bound  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0    1     4  otherBounds  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0    1     5    boundKind  I
    MethodParameters:
             Name  Flags
      genericType  
      rank         
      bound        
      otherBounds  
      boundKind    

  public org.eclipse.jdt.internal.compiler.lookup.TypeBinding getAnnotatedType(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[][]);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding type
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[][] annotations
         0: .line 232
            aload 1 /* type */
            ifnull 1
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isValidBinding:()Z
            ifeq 1
            aload 2 /* annotations */
            ifnull 1
            aload 2 /* annotations */
            arraylength
            ifne 2
         1: .line 233
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            areturn
         2: .line 235
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 3 /* annotatedType */
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding annotatedType
         3: .line 236
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.kind:()I
            lookupswitch { // 10
                    4: 7
                   68: 4
                  132: 7
                  260: 7
                  516: 7
                 1028: 7
                 2052: 7
                 4100: 7
                 8196: 7
                32772: 7
              default: 41
          }
         4: .line 238
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 1 /* type */
            checkcast org.eclipse.jdt.internal.compiler.lookup.ArrayBinding
            astore 4 /* arrayBinding */
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.ArrayBinding arrayBinding
         5: .line 239
            aload 0 /* this */
            aload 4 /* arrayBinding */
            getfield org.eclipse.jdt.internal.compiler.lookup.ArrayBinding.leafComponentType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 4 /* arrayBinding */
            getfield org.eclipse.jdt.internal.compiler.lookup.ArrayBinding.dimensions:I
            aload 2 /* annotations */
            invokestatic org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.flattenedAnnotations:([[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getArrayType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
            astore 3 /* annotatedType */
         6: .line 240
            goto 42
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.ArrayBinding arrayBinding
         7: .line 258
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isUnresolvedType:()Z
            ifeq 9
            bipush 36
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.sourceName:()[C
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.indexOf:(C[C)I
            ifle 9
         8: .line 259
            aload 1 /* type */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.environment:Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
            iconst_1
            invokestatic org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;Z)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 1 /* type */
         9: .line 261
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.depth:()I
            iconst_1
            iadd
            istore 5 /* levels */
        start local 5 // int levels
        10: .line 262
            iload 5 /* levels */
            anewarray org.eclipse.jdt.internal.compiler.lookup.TypeBinding
            astore 6 /* types */
        start local 6 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] types
        11: .line 263
            aload 6 /* types */
            iinc 5 /* levels */ -1
            iload 5 /* levels */
            aload 1 /* type */
            aastore
        12: .line 264
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.enclosingType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 7 /* enclosingType */
        start local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding enclosingType
        13: .line 265
            goto 16
        14: .line 266
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[][] org.eclipse.jdt.internal.compiler.lookup.TypeBinding top int org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 6 /* types */
            iinc 5 /* levels */ -1
            iload 5 /* levels */
            aload 7 /* enclosingType */
            aastore
        15: .line 267
            aload 7 /* enclosingType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.enclosingType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 7 /* enclosingType */
        16: .line 265
      StackMap locals:
      StackMap stack:
            aload 7 /* enclosingType */
            ifnonnull 14
        17: .line 270
            aload 2 /* annotations */
            arraylength
            istore 5 /* levels */
        18: .line 271
            aload 6 /* types */
            arraylength
            iload 5 /* levels */
            isub
            istore 9 /* j */
        start local 9 // int j
        19: .line 272
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        20: goto 24
        21: .line 273
      StackMap locals: int int
      StackMap stack:
            aload 2 /* annotations */
            iload 8 /* i */
            aaload
            ifnull 23
            aload 2 /* annotations */
            iload 8 /* i */
            aaload
            arraylength
            ifle 23
        22: .line 274
            goto 25
        23: .line 272
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        24: iload 8 /* i */
            iload 5 /* levels */
            if_icmplt 21
        25: .line 276
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            iload 5 /* levels */
            if_icmpne 27
        26: .line 277
            aload 1 /* type */
            areturn
        27: .line 278
      StackMap locals:
      StackMap stack:
            iload 9 /* j */
            ifge 29
        28: .line 279
            aload 1 /* type */
            areturn
        29: .line 281
      StackMap locals:
      StackMap stack:
            iload 9 /* j */
            ifne 30
            aconst_null
            goto 31
      StackMap locals:
      StackMap stack:
        30: aload 6 /* types */
            iload 9 /* j */
            iconst_1
            isub
            aaload
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
        31: astore 7 /* enclosingType */
            goto 39
        32: .line 282
      StackMap locals:
      StackMap stack:
            aload 6 /* types */
            iload 9 /* j */
            aaload
            astore 10 /* currentType */
        start local 10 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding currentType
        33: .line 284
            aload 2 /* annotations */
            iload 8 /* i */
            aaload
            ifnull 34
            aload 2 /* annotations */
            iload 8 /* i */
            aaload
            arraylength
            ifle 34
            aload 2 /* annotations */
            iload 8 /* i */
            aaload
            goto 35
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
        34: aload 10 /* currentType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.getTypeAnnotations:()[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[]
        35: astore 11 /* currentAnnotations */
        start local 11 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] currentAnnotations
        36: .line 285
            aload 0 /* this */
            aload 10 /* currentType */
            aload 7 /* enclosingType */
            aload 11 /* currentAnnotations */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getAnnotatedType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 3 /* annotatedType */
        37: .line 286
            aload 3 /* annotatedType */
            astore 7 /* enclosingType */
        end local 11 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] currentAnnotations
        end local 10 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding currentType
        38: .line 281
            iinc 8 /* i */ 1
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        39: iload 8 /* i */
            iload 5 /* levels */
            if_icmplt 32
        40: .line 288
            goto 42
        end local 9 // int j
        end local 8 // int i
        end local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding enclosingType
        end local 6 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] types
        end local 5 // int levels
        41: .line 290
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[][] org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
        42: .line 292
      StackMap locals:
      StackMap stack:
            aload 3 /* annotatedType */
            areturn
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding annotatedType
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[][] annotations
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding type
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   43     0                this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0   43     1                type  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   43     2         annotations  [[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            3   43     3       annotatedType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            5    7     4        arrayBinding  Lorg/eclipse/jdt/internal/compiler/lookup/ArrayBinding;
           10   41     5              levels  I
           11   41     6               types  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           13   41     7       enclosingType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           20   41     8                   i  I
           19   41     9                   j  I
           33   38    10         currentType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           36   38    11  currentAnnotations  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
    MethodParameters:
             Name  Flags
      type         
      annotations  

  private org.eclipse.jdt.internal.compiler.lookup.TypeBinding getAnnotatedType(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[]);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding type
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding enclosingType
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
         0: .line 301
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.kind:()I
            sipush 260
            if_icmpne 2
         1: .line 302
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.actualType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.typeArguments:()[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 2 /* enclosingType */
            checkcast org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
            aload 3 /* annotations */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getParameterizedType:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding;
            areturn
         2: .line 304
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* nakedType */
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding nakedType
         3: .line 305
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getDerivedTypes:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 5 /* derivedTypes */
        start local 5 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] derivedTypes
         4: .line 306
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: aload 5 /* derivedTypes */
            arraylength
            istore 7 /* length */
        start local 7 // int length
         6: goto 27
         7: .line 307
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] org.eclipse.jdt.internal.compiler.lookup.TypeBinding org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] int int
      StackMap stack:
            aload 5 /* derivedTypes */
            iload 6 /* i */
            aaload
            astore 8 /* derivedType */
        start local 8 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding derivedType
         8: .line 308
            aload 8 /* derivedType */
            ifnonnull 9
            goto 28
         9: .line 310
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.enclosingType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            aload 2 /* enclosingType */
            if_acmpne 26
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.typeArguments:()[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.typeArguments:()[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.effectivelyEqual:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifne 11
        10: .line 311
            goto 26
        11: .line 313
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.kind:()I
            lookupswitch { // 4
                   68: 12
                  516: 16
                 1028: 14
                 8196: 16
              default: 20
          }
        12: .line 315
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isArrayType:()Z
            ifeq 26
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.dimensions:()I
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.dimensions:()I
            if_icmpne 26
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.leafComponentType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.leafComponentType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            if_acmpeq 22
        13: .line 316
            goto 26
        14: .line 319
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isRawType:()Z
            ifeq 26
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.actualType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.actualType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            if_acmpeq 22
        15: .line 320
            goto 26
        16: .line 324
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isWildcard:()Z
            ifeq 26
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.actualType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.actualType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            if_acmpne 26
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.rank:()I
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.rank:()I
            if_icmpne 26
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.boundKind:()I
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.boundKind:()I
            if_icmpeq 18
        17: .line 325
            goto 26
        18: .line 326
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.bound:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.bound:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            if_acmpne 26
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.additionalBounds:()[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.additionalBounds:()[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.effectivelyEqual:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifne 22
        19: .line 327
            goto 26
        20: .line 330
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.kind:()I
            lookupswitch { // 5
                   68: 21
                  516: 21
                 1028: 21
                 8196: 21
                32772: 21
              default: 22
          }
        21: .line 336
      StackMap locals:
      StackMap stack:
            goto 26
        22: .line 340
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.getTypeAnnotations:()[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            aload 3 /* annotations */
            invokestatic org.eclipse.jdt.internal.compiler.util.Util.effectivelyEqual:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 24
        23: .line 341
            aload 8 /* derivedType */
            areturn
        24: .line 343
      StackMap locals:
      StackMap stack:
            aload 8 /* derivedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.hasTypeAnnotations:()Z
            ifne 26
        25: .line 344
            aload 8 /* derivedType */
            astore 4 /* nakedType */
        end local 8 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding derivedType
        26: .line 306
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 6 /* i */
            iload 7 /* length */
            if_icmplt 7
        end local 7 // int length
        end local 6 // int i
        28: .line 346
      StackMap locals:
      StackMap stack:
            aload 4 /* nakedType */
            ifnonnull 30
        29: .line 347
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.getUnannotatedType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 4 /* nakedType */
        30: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* enclosingType */
            aconst_null
            aload 3 /* annotations */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.haveTypeAnnotations:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Z
            ifne 32
        31: .line 350
            aload 4 /* nakedType */
            areturn
        32: .line 352
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            aload 2 /* enclosingType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.clone:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 6 /* annotatedType */
        start local 6 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding annotatedType
        33: .line 353
            aload 6 /* annotatedType */
            aload 4 /* nakedType */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
            putfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.id:I
        34: .line 354
            aload 6 /* annotatedType */
            aload 3 /* annotations */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.isAnnotationBasedNullAnalysisEnabled:Z
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.setTypeAnnotations:([Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;Z)V
        35: .line 355
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.isAnnotationBasedNullAnalysisEnabled:Z
            ifeq 37
            aload 6 /* annotatedType */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            ldc 108086391056891904
            land
            lconst_0
            lcmp
            ifne 37
        36: .line 357
            aload 6 /* annotatedType */
            dup
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            aload 1 /* type */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            ldc 108086391056891904
            land
            lor
            putfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
        37: .line 360
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.kind:()I
            lookupswitch { // 3
                   68: 38
                  516: 40
                 1028: 40
              default: 42
          }
        38: .line 362
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.leafComponentType:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            astore 7 /* keyType */
        start local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding keyType
        39: .line 363
            goto 43
        end local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding keyType
        40: .line 366
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.actualType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 7 /* keyType */
        start local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding keyType
        41: .line 367
            goto 43
        end local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding keyType
        42: .line 369
      StackMap locals:
      StackMap stack:
            aload 4 /* nakedType */
            astore 7 /* keyType */
        start local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding keyType
        43: .line 372
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
      StackMap stack:
            aload 0 /* this */
            aload 7 /* keyType */
            aload 4 /* nakedType */
            aload 6 /* annotatedType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.cacheDerivedType:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            areturn
        end local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding keyType
        end local 6 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding annotatedType
        end local 5 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] derivedTypes
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding nakedType
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding enclosingType
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding type
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   44     0           this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0   44     1           type  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   44     2  enclosingType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   44     3    annotations  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            3   44     4      nakedType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            4   44     5   derivedTypes  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            5   28     6              i  I
            6   28     7         length  I
            8   26     8    derivedType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           33   44     6  annotatedType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           39   40     7        keyType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           41   42     7        keyType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
           43   44     7        keyType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    MethodParameters:
               Name  Flags
      type           
      enclosingType  
      annotations    

  private boolean haveTypeAnnotations(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding[], org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[]);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding baseType
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding someType
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] someTypes
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
         0: .line 376
            aload 1 /* baseType */
            ifnull 2
            aload 1 /* baseType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.hasTypeAnnotations:()Z
            ifeq 2
         1: .line 377
            iconst_1
            ireturn
         2: .line 378
      StackMap locals:
      StackMap stack:
            aload 2 /* someType */
            ifnull 4
            aload 2 /* someType */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.hasTypeAnnotations:()Z
            ifeq 4
         3: .line 379
            iconst_1
            ireturn
         4: .line 380
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: aload 4 /* annotations */
            ifnonnull 6
            iconst_0
            goto 7
      StackMap locals: int
      StackMap stack:
         6: aload 4 /* annotations */
            arraylength
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* length */
        start local 6 // int length
         8: goto 12
         9: .line 381
      StackMap locals: int
      StackMap stack:
            aload 4 /* annotations */
            iload 5 /* i */
            aaload
            ifnull 11
        10: .line 382
            iconst_1
            ireturn
        11: .line 380
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            iload 6 /* length */
            if_icmplt 9
        end local 6 // int length
        end local 5 // int i
        13: .line 383
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        14: aload 3 /* someTypes */
            ifnonnull 15
            iconst_0
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 3 /* someTypes */
            arraylength
      StackMap locals:
      StackMap stack: int
        16: istore 6 /* length */
        start local 6 // int length
        17: goto 21
        18: .line 384
      StackMap locals: int
      StackMap stack:
            aload 3 /* someTypes */
            iload 5 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.hasTypeAnnotations:()Z
            ifeq 20
        19: .line 385
            iconst_1
            ireturn
        20: .line 383
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 5 /* i */
            iload 6 /* length */
            if_icmplt 18
        end local 6 // int length
        end local 5 // int i
        22: .line 386
            iconst_0
            ireturn
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding[] someTypes
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding someType
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding baseType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0   23     1     baseType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   23     2     someType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   23     3    someTypes  [Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   23     4  annotations  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            5   13     5            i  I
            8   13     6       length  I
           14   22     5            i  I
           17   22     6       length  I
    MethodParameters:
             Name  Flags
      baseType     
      someType     
      someTypes    
      annotations  

  private boolean haveTypeAnnotations(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[]);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding leafType
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
         0: .line 390
            aload 0 /* this */
            aload 1 /* leafType */
            aconst_null
            aconst_null
            aload 2 /* annotations */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.haveTypeAnnotations:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Z
            ireturn
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] annotations
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding leafType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0    1     1     leafType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0    1     2  annotations  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
    MethodParameters:
             Name  Flags
      leafType     
      annotations  

  private boolean haveTypeAnnotations(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.TypeBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding memberType
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding enclosingType
         0: .line 394
            aload 0 /* this */
            aload 1 /* memberType */
            aload 2 /* enclosingType */
            aconst_null
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem.haveTypeAnnotations:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)Z
            ireturn
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding enclosingType
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding memberType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
            0    1     1     memberType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0    1     2  enclosingType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    MethodParameters:
               Name  Flags
      memberType     
      enclosingType  

  static org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] flattenedAnnotations(org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[][]);
    descriptor: ([[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;)[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[][] annotations
         0: .line 403
            aload 0 /* annotations */
            ifnull 1
            aload 0 /* annotations */
            arraylength
            ifne 2
         1: .line 404
      StackMap locals:
      StackMap stack:
            getstatic org.eclipse.jdt.internal.compiler.lookup.Binding.NO_ANNOTATIONS:[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            areturn
         2: .line 406
      StackMap locals:
      StackMap stack:
            aload 0 /* annotations */
            arraylength
            istore 1 /* levels */
        start local 1 // int levels
         3: .line 407
            iload 1 /* levels */
            istore 2 /* length */
        start local 2 // int length
         4: .line 408
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 10
         6: .line 409
      StackMap locals: int int int
      StackMap stack:
            iload 2 /* length */
            aload 0 /* annotations */
            iload 3 /* i */
            aaload
            ifnonnull 7
            iconst_0
            goto 8
      StackMap locals:
      StackMap stack: int
         7: aload 0 /* annotations */
            iload 3 /* i */
            aaload
            arraylength
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[][] int int int
      StackMap stack: int int
         8: iadd
            istore 2 /* length */
         9: .line 408
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 3 /* i */
            iload 1 /* levels */
            if_icmplt 6
        end local 3 // int i
        11: .line 411
            iload 2 /* length */
            ifne 13
        12: .line 412
            getstatic org.eclipse.jdt.internal.compiler.lookup.Binding.NO_ANNOTATIONS:[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            areturn
        13: .line 414
      StackMap locals:
      StackMap stack:
            iload 2 /* length */
            anewarray org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding
            astore 3 /* series */
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] series
        14: .line 415
            iconst_0
            istore 4 /* index */
        start local 4 // int index
        15: .line 416
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        16: goto 25
        17: .line 417
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] int int
      StackMap stack:
            aload 0 /* annotations */
            iload 5 /* i */
            aaload
            ifnonnull 18
            iconst_0
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 0 /* annotations */
            iload 5 /* i */
            aaload
            arraylength
      StackMap locals:
      StackMap stack: int
        19: istore 6 /* annotationsLength */
        start local 6 // int annotationsLength
        20: .line 418
            iload 6 /* annotationsLength */
            ifle 23
        21: .line 419
            aload 0 /* annotations */
            iload 5 /* i */
            aaload
            iconst_0
            aload 3 /* series */
            iload 4 /* index */
            iload 6 /* annotationsLength */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        22: .line 420
            iload 4 /* index */
            iload 6 /* annotationsLength */
            iadd
            istore 4 /* index */
        23: .line 422
      StackMap locals: int
      StackMap stack:
            aload 3 /* series */
            iload 4 /* index */
            iinc 4 /* index */ 1
            aconst_null
            aastore
        end local 6 // int annotationsLength
        24: .line 416
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 5 /* i */
            iload 1 /* levels */
            if_icmplt 17
        end local 5 // int i
        26: .line 424
            iload 4 /* index */
            iload 2 /* length */
            if_icmpeq 28
        27: .line 425
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
        28: .line 426
      StackMap locals:
      StackMap stack:
            aload 3 /* series */
            areturn
        end local 4 // int index
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[] series
        end local 2 // int length
        end local 1 // int levels
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotationBinding[][] annotations
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   29     0        annotations  [[Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
            3   29     1             levels  I
            4   29     2             length  I
            5   11     3                  i  I
           14   29     3             series  [Lorg/eclipse/jdt/internal/compiler/lookup/AnnotationBinding;
           15   29     4              index  I
           16   26     5                  i  I
           20   24     6  annotationsLength  I
    MethodParameters:
             Name  Flags
      annotations  

  public boolean isAnnotatedTypeSystem();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
         0: .line 431
            iconst_1
            ireturn
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.AnnotatableTypeSystem this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/AnnotatableTypeSystem;
}
SourceFile: "AnnotatableTypeSystem.java"
InnerClasses:
  public final HashedParameterizedTypes = org.eclipse.jdt.internal.compiler.lookup.TypeSystem$HashedParameterizedTypes of org.eclipse.jdt.internal.compiler.lookup.TypeSystem