public class org.eclipse.jdt.internal.compiler.lookup.InferenceVariable extends org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.compiler.lookup.InferenceVariable
  super_class: org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
{
  org.eclipse.jdt.internal.compiler.lookup.InvocationSite site;
    descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
    flags: (0x0000) 

  org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeParameter;
    descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    flags: (0x0000) 

  long nullHints;
    descriptor: J
    flags: (0x0000) 

  private org.eclipse.jdt.internal.compiler.lookup.InferenceVariable prototype;
    descriptor: Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
    flags: (0x0002) ACC_PRIVATE

  int varId;
    descriptor: I
    flags: (0x0000) 

  public boolean isFromInitialSubstitution;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC

  public static org.eclipse.jdt.internal.compiler.lookup.InferenceVariable get(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, int, org.eclipse.jdt.internal.compiler.lookup.InvocationSite, org.eclipse.jdt.internal.compiler.lookup.Scope, org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, boolean);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;ILorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Z)Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=10, args_size=6
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeParameter
        start local 1 // int rank
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.InvocationSite site
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.Scope scope
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding object
        start local 5 // boolean initial
         0: .line 69
            aload 3 /* scope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.Scope.compilationUnitScope:()Lorg/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope;
            getfield org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.uniqueInferenceVariables:Ljava/util/Map;
            astore 6 /* uniqueInferenceVariables */
        start local 6 // java.util.Map uniqueInferenceVariables
         1: .line 70
            aconst_null
            astore 7 /* var */
        start local 7 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable var
         2: .line 71
            aconst_null
            astore 8 /* key */
        start local 8 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable$InferenceVarKey key
         3: .line 72
            aload 2 /* site */
            ifnull 6
            aload 0 /* typeParameter */
            ifnull 6
         4: .line 73
            new org.eclipse.jdt.internal.compiler.lookup.InferenceVariable$InferenceVarKey
            dup
            aload 0 /* typeParameter */
            aload 2 /* site */
            iload 1 /* rank */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.InferenceVariable$InferenceVarKey.<init>:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;I)V
            astore 8 /* key */
         5: .line 74
            aload 6 /* uniqueInferenceVariables */
            aload 8 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.lookup.InferenceVariable
            astore 7 /* var */
         6: .line 76
      StackMap locals: java.util.Map org.eclipse.jdt.internal.compiler.lookup.InferenceVariable org.eclipse.jdt.internal.compiler.lookup.InferenceVariable$InferenceVarKey
      StackMap stack:
            aload 7 /* var */
            ifnonnull 11
         7: .line 77
            aload 6 /* uniqueInferenceVariables */
            invokeinterface java.util.Map.size:()I
            istore 9 /* newVarId */
        start local 9 // int newVarId
         8: .line 78
            new org.eclipse.jdt.internal.compiler.lookup.InferenceVariable
            dup
            aload 0 /* typeParameter */
            iload 1 /* rank */
            iload 9 /* newVarId */
            aload 2 /* site */
            aload 3 /* scope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.Scope.environment:()Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
            aload 4 /* object */
            iload 5 /* initial */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.<init>:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;IILorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Z)V
            astore 7 /* var */
         9: .line 79
            aload 8 /* key */
            ifnull 11
        10: .line 80
            aload 6 /* uniqueInferenceVariables */
            aload 8 /* key */
            aload 7 /* var */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // int newVarId
        11: .line 82
      StackMap locals:
      StackMap stack:
            aload 7 /* var */
            areturn
        end local 8 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable$InferenceVarKey key
        end local 7 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable var
        end local 6 // java.util.Map uniqueInferenceVariables
        end local 5 // boolean initial
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding object
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.Scope scope
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.InvocationSite site
        end local 1 // int rank
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeParameter
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   12     0             typeParameter  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   12     1                      rank  I
            0   12     2                      site  Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
            0   12     3                     scope  Lorg/eclipse/jdt/internal/compiler/lookup/Scope;
            0   12     4                    object  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0   12     5                   initial  Z
            1   12     6  uniqueInferenceVariables  Ljava/util/Map<Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable$InferenceVarKey;Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;>;
            2   12     7                       var  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            3   12     8                       key  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable$InferenceVarKey;
            8   11     9                  newVarId  I
    MethodParameters:
               Name  Flags
      typeParameter  
      rank           
      site           
      scope          
      object         
      initial        

  private void <init>(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, int, int, org.eclipse.jdt.internal.compiler.lookup.InvocationSite, org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment, org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding, boolean);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;IILorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=8
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeParameter
        start local 2 // int parameterRank
        start local 3 // int iVarId
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.InvocationSite site
        start local 5 // org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment environment
        start local 6 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding object
        start local 7 // boolean initial
         0: .line 95
            aload 0 /* this */
            aload 1 /* typeParameter */
            iload 2 /* parameterRank */
            aload 4 /* site */
            aload 1 /* typeParameter */
            iload 3 /* iVarId */
            invokestatic org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.makeName:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I)[C
            aload 5 /* environment */
            aload 6 /* object */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.<init>:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;ILorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;[CLorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)V
         1: .line 96
            aload 0 /* this */
            iload 3 /* iVarId */
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.varId:I
         2: .line 97
            aload 0 /* this */
            iload 7 /* initial */
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.isFromInitialSubstitution:Z
         3: .line 98
            return
        end local 7 // boolean initial
        end local 6 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding object
        end local 5 // org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment environment
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.InvocationSite site
        end local 3 // int iVarId
        end local 2 // int parameterRank
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeParameter
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            0    4     1  typeParameter  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0    4     2  parameterRank  I
            0    4     3         iVarId  I
            0    4     4           site  Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
            0    4     5    environment  Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
            0    4     6         object  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            0    4     7        initial  Z
    MethodParameters:
               Name  Flags
      typeParameter  
      parameterRank  
      iVarId         
      site           
      environment    
      object         
      initial        

  private static char[] makeName(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;I)[C
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeParameter
        start local 1 // int iVarId
         0: .line 100
            aload 0 /* typeParameter */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Lorg/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding;
            if_acmpne 2
         1: .line 101
            aload 0 /* typeParameter */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.shortReadableName:()[C
            iload 1 /* iVarId */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            bipush 35
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.concat:([C[CC)[C
            areturn
         2: .line 104
      StackMap locals:
      StackMap stack:
            bipush 40
            aload 0 /* typeParameter */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.shortReadableName:()[C
            bipush 41
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.concat:(C[CC)[C
         3: .line 105
            iload 1 /* iVarId */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            bipush 35
         4: .line 103
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.concat:([C[CC)[C
            areturn
        end local 1 // int iVarId
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeParameter
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0  typeParameter  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0    5     1         iVarId  I
    MethodParameters:
               Name  Flags
      typeParameter  
      iVarId         

  private void <init>(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, int, org.eclipse.jdt.internal.compiler.lookup.InvocationSite, char[], org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment, org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;ILorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;[CLorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=10, args_size=7
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeParameter
        start local 2 // int parameterRank
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.InvocationSite site
        start local 4 // char[] sourceName
        start local 5 // org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment environment
        start local 6 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding object
         0: .line 108
            aload 0 /* this */
            aload 4 /* sourceName */
            aconst_null
            iload 2 /* parameterRank */
            aload 5 /* environment */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.<init>:([CLorg/eclipse/jdt/internal/compiler/lookup/Binding;ILorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;)V
         1: .line 109
            aload 0 /* this */
            aload 3 /* site */
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.site:Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
         2: .line 110
            aload 0 /* this */
            aload 1 /* typeParameter */
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.typeParameter:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
         3: .line 111
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.tagBits:J
            aload 1 /* typeParameter */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            ldc 108086391056891904
            land
            lor
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.tagBits:J
         4: .line 112
            aload 1 /* typeParameter */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.TypeBinding.isTypeVariable:()Z
            ifeq 11
         5: .line 113
            aload 1 /* typeParameter */
            checkcast org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding
            astore 7 /* typeVariable */
        start local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding typeVariable
         6: .line 114
            aload 7 /* typeVariable */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.firstBound:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            ifnull 11
         7: .line 115
            aload 7 /* typeVariable */
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.firstBound:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            getfield org.eclipse.jdt.internal.compiler.lookup.TypeBinding.tagBits:J
            ldc 108086391056891904
            land
            lstore 8 /* boundBits */
        start local 8 // long boundBits
         8: .line 116
            lload 8 /* boundBits */
            ldc 72057594037927936
            lcmp
            ifne 10
         9: .line 117
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.tagBits:J
            lload 8 /* boundBits */
            lor
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.tagBits:J
            goto 11
        10: .line 119
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.InferenceVariable org.eclipse.jdt.internal.compiler.lookup.TypeBinding int org.eclipse.jdt.internal.compiler.lookup.InvocationSite char[] org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding long
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.nullHints:J
            lload 8 /* boundBits */
            lor
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.nullHints:J
        end local 8 // long boundBits
        end local 7 // org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding typeVariable
        11: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* object */
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.superclass:Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
        12: .line 123
            aload 0 /* this */
            aload 0 /* this */
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.prototype:Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
        13: .line 124
            return
        end local 6 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding object
        end local 5 // org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment environment
        end local 4 // char[] sourceName
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.InvocationSite site
        end local 2 // int parameterRank
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding typeParameter
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            0   14     1  typeParameter  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0   14     2  parameterRank  I
            0   14     3           site  Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
            0   14     4     sourceName  [C
            0   14     5    environment  Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
            0   14     6         object  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            6   11     7   typeVariable  Lorg/eclipse/jdt/internal/compiler/lookup/TypeVariableBinding;
            8   11     8      boundBits  J
    MethodParameters:
               Name  Flags
      typeParameter  
      parameterRank  
      site           
      sourceName     
      environment    
      object         

  public org.eclipse.jdt.internal.compiler.lookup.TypeBinding clone(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=8, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding enclosingType
         0: .line 128
            new org.eclipse.jdt.internal.compiler.lookup.InferenceVariable
            dup
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.typeParameter:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.rank:I
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.site:Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.sourceName:[C
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.environment:Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.superclass:Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            invokespecial org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.<init>:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;ILorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;[CLorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)V
            astore 2 /* clone */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable clone
         1: .line 129
            aload 2 /* clone */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.tagBits:J
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.tagBits:J
         2: .line 130
            aload 2 /* clone */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.nullHints:J
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.nullHints:J
         3: .line 131
            aload 2 /* clone */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.varId:I
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.varId:I
         4: .line 132
            aload 2 /* clone */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.isFromInitialSubstitution:Z
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.isFromInitialSubstitution:Z
         5: .line 133
            aload 2 /* clone */
            aload 0 /* this */
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.prototype:Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
         6: .line 134
            aload 2 /* clone */
            areturn
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable clone
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding enclosingType
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            0    7     1  enclosingType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            1    7     2          clone  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
    MethodParameters:
               Name  Flags
      enclosingType  

  public org.eclipse.jdt.internal.compiler.lookup.InferenceVariable prototype();
    descriptor: ()Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 139
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.prototype:Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            areturn
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;

  public char[] constantPoolName();
    descriptor: ()[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 144
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;

  public org.eclipse.jdt.internal.compiler.lookup.PackageBinding getPackage();
    descriptor: ()Lorg/eclipse/jdt/internal/compiler/lookup/PackageBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 149
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;

  public boolean isCompatibleWith(org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.eclipse.jdt.internal.compiler.lookup.Scope);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/Scope;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding right
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.Scope scope
         0: .line 157
            iconst_1
            ireturn
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.Scope scope
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding right
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            0    1     1  right  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            0    1     2  scope  Lorg/eclipse/jdt/internal/compiler/lookup/Scope;
    MethodParameters:
       Name  Flags
      right  
      scope  

  public boolean isProperType(boolean);
    descriptor: (Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
        start local 1 // boolean admitCapture18
         0: .line 162
            iconst_0
            ireturn
        end local 1 // boolean admitCapture18
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            0    1     1  admitCapture18  Z
    MethodParameters:
                Name  Flags
      admitCapture18  

  org.eclipse.jdt.internal.compiler.lookup.TypeBinding substituteInferenceVariable(org.eclipse.jdt.internal.compiler.lookup.InferenceVariable, org.eclipse.jdt.internal.compiler.lookup.TypeBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable var
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding substituteType
         0: .line 167
            aload 0 /* this */
            aload 1 /* var */
            invokestatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.equalsEquals:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
            ifeq 2
         1: .line 168
            aload 2 /* substituteType */
            areturn
         2: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.TypeBinding substituteType
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable var
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            0    3     1             var  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            0    3     2  substituteType  Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    MethodParameters:
                Name  Flags
      var             
      substituteType  

  void collectInferenceVariables(java.util.Set<org.eclipse.jdt.internal.compiler.lookup.InferenceVariable>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
        start local 1 // java.util.Set variables
         0: .line 174
            aload 1 /* variables */
            aload 0 /* this */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 175
            return
        end local 1 // java.util.Set variables
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            0    2     1  variables  Ljava/util/Set<Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;>;
    Signature: (Ljava/util/Set<Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;>;)V
    MethodParameters:
           Name  Flags
      variables  

  public org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding[] superInterfaces();
    descriptor: ()[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 179
            getstatic org.eclipse.jdt.internal.compiler.lookup.Binding.NO_SUPERINTERFACES:[Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            areturn
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;

  public char[] qualifiedSourceName();
    descriptor: ()[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 184
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;

  public char[] sourceName();
    descriptor: ()[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 189
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.sourceName:[C
            areturn
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;

  public char[] readableName();
    descriptor: ()[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 194
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.sourceName:[C
            areturn
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;

  public boolean hasTypeBit(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
        start local 1 // int bit
         0: .line 199
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // int bit
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            0    1     1   bit  I
    MethodParameters:
      Name  Flags
      bit   

  public java.lang.String debugName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 204
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.sourceName:[C
            invokestatic java.lang.String.valueOf:([C)Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 209
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.debugName:()Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 214
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.typeParameter:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            invokevirtual java.lang.Object.hashCode:()I
            bipush 17
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.rank:I
            imul
            iadd
            istore 1 /* code */
        start local 1 // int code
         1: .line 215
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.site:Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
            ifnull 4
         2: .line 216
            bipush 31
            iload 1 /* code */
            imul
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.site:Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
            invokeinterface org.eclipse.jdt.internal.compiler.lookup.InvocationSite.sourceStart:()I
            iadd
            istore 1 /* code */
         3: .line 217
            bipush 31
            iload 1 /* code */
            imul
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.site:Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
            invokeinterface org.eclipse.jdt.internal.compiler.lookup.InvocationSite.sourceEnd:()I
            iadd
            istore 1 /* code */
         4: .line 219
      StackMap locals: int
      StackMap stack:
            iload 1 /* code */
            ireturn
        end local 1 // int code
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            1    5     1  code  I

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
        start local 1 // java.lang.Object obj
         0: .line 223
            aload 1 /* obj */
            instanceof org.eclipse.jdt.internal.compiler.lookup.InferenceVariable
            ifne 2
         1: .line 224
            iconst_0
            ireturn
         2: .line 225
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast org.eclipse.jdt.internal.compiler.lookup.InferenceVariable
            astore 2 /* other */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable other
         3: .line 226
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.rank:I
            aload 2 /* other */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.rank:I
            if_icmpne 7
         4: .line 227
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.site:Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
            aload 2 /* other */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.site:Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;
            invokestatic org.eclipse.jdt.internal.compiler.lookup.InferenceContext18.isSameSite:(Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;Lorg/eclipse/jdt/internal/compiler/lookup/InvocationSite;)Z
            ifeq 7
         5: .line 228
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.typeParameter:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 2 /* other */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.typeParameter:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            invokestatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.equalsEquals:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
            ifeq 7
         6: .line 226
            iconst_1
            ireturn
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.InferenceVariable
      StackMap stack:
         7: iconst_0
            ireturn
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable other
        end local 1 // java.lang.Object obj
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            0    8     1    obj  Ljava/lang/Object;
            3    8     2  other  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
    MethodParameters:
      Name  Flags
      obj   

  public org.eclipse.jdt.internal.compiler.lookup.TypeBinding erasure();
    descriptor: ()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
         0: .line 234
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.superclass:Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            ifnonnull 2
         1: .line 235
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.environment:Lorg/eclipse/jdt/internal/compiler/lookup/LookupEnvironment;
            getstatic org.eclipse.jdt.internal.compiler.lookup.TypeConstants.JAVA_LANG_OBJECT:[[C
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getType:([[C)Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            putfield org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.superclass:Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
         2: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.compiler.lookup.TypeVariableBinding.erasure:()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            areturn
        end local 0 // org.eclipse.jdt.internal.compiler.lookup.InferenceVariable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;

  public org.eclipse.jdt.internal.compiler.lookup.TypeBinding prototype();
    descriptor: ()Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.InferenceVariable.prototype:()Lorg/eclipse/jdt/internal/compiler/lookup/InferenceVariable;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "InferenceVariable.java"
NestMembers:
  org.eclipse.jdt.internal.compiler.lookup.InferenceVariable$InferenceVarKey
InnerClasses:
  InferenceVarKey = org.eclipse.jdt.internal.compiler.lookup.InferenceVariable$InferenceVarKey of org.eclipse.jdt.internal.compiler.lookup.InferenceVariable