public abstract class org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType extends org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TType
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType
  super_class: org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TType
{
  private org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType fSuperclass;
    descriptor: Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType[] fInterfaces;
    descriptor: [Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
    flags: (0x0002) ACC_PRIVATE

  private org.eclipse.jdt.core.IType fJavaElementType;
    descriptor: Lorg/eclipse/jdt/core/IType;
    flags: (0x0002) ACC_PRIVATE

  protected void <init>(org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment);
    descriptor: (Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TypeEnvironment;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
        start local 1 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment environment
         0: .line 30
            aload 0 /* this */
            aload 1 /* environment */
            invokespecial org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TType.<init>:(Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TypeEnvironment;)V
         1: .line 31
            return
        end local 1 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment environment
        end local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            0    2     1  environment  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TypeEnvironment;
    MethodParameters:
             Name  Flags
      environment  

  protected void initialize(org.eclipse.jdt.core.dom.ITypeBinding, org.eclipse.jdt.core.IType);
    descriptor: (Lorg/eclipse/jdt/core/dom/ITypeBinding;Lorg/eclipse/jdt/core/IType;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
        start local 1 // org.eclipse.jdt.core.dom.ITypeBinding binding
        start local 2 // org.eclipse.jdt.core.IType javaElementType
         0: .line 34
            aload 0 /* this */
            aload 1 /* binding */
            invokespecial org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TType.initialize:(Lorg/eclipse/jdt/core/dom/ITypeBinding;)V
         1: .line 35
            aload 2 /* javaElementType */
            invokestatic org.eclipse.core.runtime.Assert.isNotNull:(Ljava/lang/Object;)V
         2: .line 36
            aload 0 /* this */
            aload 2 /* javaElementType */
            putfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fJavaElementType:Lorg/eclipse/jdt/core/IType;
         3: .line 37
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.getEnvironment:()Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TypeEnvironment;
            astore 3 /* environment */
        start local 3 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment environment
         4: .line 38
            aload 1 /* binding */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.getSuperclass:()Lorg/eclipse/jdt/core/dom/ITypeBinding;
            astore 4 /* superclass */
        start local 4 // org.eclipse.jdt.core.dom.ITypeBinding superclass
         5: .line 39
            aload 4 /* superclass */
            ifnull 7
         6: .line 40
            aload 0 /* this */
            aload 3 /* environment */
            aload 4 /* superclass */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment.create:(Lorg/eclipse/jdt/core/dom/ITypeBinding;)Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TType;
            checkcast org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType
            putfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fSuperclass:Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
         7: .line 42
      StackMap locals: org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment org.eclipse.jdt.core.dom.ITypeBinding
      StackMap stack:
            aload 1 /* binding */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.getInterfaces:()[Lorg/eclipse/jdt/core/dom/ITypeBinding;
            astore 5 /* interfaces */
        start local 5 // org.eclipse.jdt.core.dom.ITypeBinding[] interfaces
         8: .line 43
            aload 0 /* this */
            aload 5 /* interfaces */
            arraylength
            anewarray org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType
            putfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fInterfaces:[Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
         9: .line 44
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        10: goto 13
        11: .line 45
      StackMap locals: org.eclipse.jdt.core.dom.ITypeBinding[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fInterfaces:[Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            iload 6 /* i */
            aload 3 /* environment */
            aload 5 /* interfaces */
            iload 6 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment.create:(Lorg/eclipse/jdt/core/dom/ITypeBinding;)Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TType;
            checkcast org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType
            aastore
        12: .line 44
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 6 /* i */
            aload 5 /* interfaces */
            arraylength
            if_icmplt 11
        end local 6 // int i
        14: .line 47
            return
        end local 5 // org.eclipse.jdt.core.dom.ITypeBinding[] interfaces
        end local 4 // org.eclipse.jdt.core.dom.ITypeBinding superclass
        end local 3 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment environment
        end local 2 // org.eclipse.jdt.core.IType javaElementType
        end local 1 // org.eclipse.jdt.core.dom.ITypeBinding binding
        end local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   15     0             this  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            0   15     1          binding  Lorg/eclipse/jdt/core/dom/ITypeBinding;
            0   15     2  javaElementType  Lorg/eclipse/jdt/core/IType;
            4   15     3      environment  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TypeEnvironment;
            5   15     4       superclass  Lorg/eclipse/jdt/core/dom/ITypeBinding;
            8   15     5       interfaces  [Lorg/eclipse/jdt/core/dom/ITypeBinding;
           10   14     6                i  I
    MethodParameters:
                 Name  Flags
      binding          
      javaElementType  

  public org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TType getSuperclass();
    descriptor: ()Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
         0: .line 51
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fSuperclass:Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            areturn
        end local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;

  public org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TType[] getInterfaces();
    descriptor: ()[Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
         0: .line 56
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fInterfaces:[Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            areturn
        end local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;

  public org.eclipse.jdt.core.IType getJavaElementType();
    descriptor: ()Lorg/eclipse/jdt/core/IType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
         0: .line 60
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fJavaElementType:Lorg/eclipse/jdt/core/IType;
            areturn
        end local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;

  public boolean isSubType(org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType);
    descriptor: (Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
        start local 1 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType other
         0: .line 64
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.getEnvironment:()Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TypeEnvironment;
            aload 1 /* other */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.getEnvironment:()Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TypeEnvironment;
            if_acmpne 10
         1: .line 65
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.getEnvironment:()Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TypeEnvironment;
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeEnvironment.getSubTypeCache:()Ljava/util/Map;
            astore 2 /* cache */
        start local 2 // java.util.Map cache
         2: .line 66
            new org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeTuple
            dup
            aload 0 /* this */
            aload 1 /* other */
            invokespecial org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeTuple.<init>:(Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TType;Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TType;)V
            astore 3 /* key */
        start local 3 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeTuple key
         3: .line 67
            aload 2 /* cache */
            aload 3 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 4 /* value */
        start local 4 // java.lang.Boolean value
         4: .line 68
            aload 4 /* value */
            ifnull 6
         5: .line 69
            aload 4 /* value */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
         6: .line 70
      StackMap locals: java.util.Map org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeTuple java.lang.Boolean
      StackMap stack:
            aload 0 /* this */
            aload 1 /* other */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.doIsSubType:(Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;)Z
            istore 5 /* isSub */
        start local 5 // boolean isSub
         7: .line 71
            iload 5 /* isSub */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 4 /* value */
         8: .line 72
            aload 2 /* cache */
            aload 3 /* key */
            aload 4 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 73
            iload 5 /* isSub */
            ireturn
        end local 5 // boolean isSub
        end local 4 // java.lang.Boolean value
        end local 3 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TypeTuple key
        end local 2 // java.util.Map cache
        10: .line 75
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* other */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.doIsSubType:(Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;)Z
            ireturn
        end local 1 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType other
        end local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            0   11     1  other  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            2   10     2  cache  Ljava/util/Map<Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TypeTuple;Ljava/lang/Boolean;>;
            3   10     3    key  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TypeTuple;
            4   10     4  value  Ljava/lang/Boolean;
            7   10     5  isSub  Z
    MethodParameters:
       Name  Flags
      other  

  private boolean doIsSubType(org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType);
    descriptor: (Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
        start local 1 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType other
         0: .line 79
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fSuperclass:Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            ifnull 2
            aload 1 /* other */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fSuperclass:Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.isTypeEquivalentTo:(Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TType;)Z
            ifne 1
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fSuperclass:Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            aload 1 /* other */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.doIsSubType:(Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;)Z
            ifeq 2
         1: .line 80
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 81
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 82
      StackMap locals: int
      StackMap stack:
            aload 1 /* other */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fInterfaces:[Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            iload 2 /* i */
            aaload
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.isTypeEquivalentTo:(Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/TType;)Z
            ifne 5
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fInterfaces:[Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            iload 2 /* i */
            aaload
            aload 1 /* other */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.doIsSubType:(Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;)Z
            ifeq 6
         5: .line 83
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 81
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.fInterfaces:[Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            arraylength
            if_icmplt 4
        end local 2 // int i
         8: .line 85
            iconst_0
            ireturn
        end local 1 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType other
        end local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            0    9     1  other  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            3    8     2      i  I
    MethodParameters:
       Name  Flags
      other  

  protected boolean canAssignToStandardType(org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.StandardType);
    descriptor: (Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/StandardType;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
        start local 1 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.StandardType target
         0: .line 89
            aload 1 /* target */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.StandardType.isJavaLangObject:()Z
            ifeq 2
         1: .line 90
            iconst_1
            ireturn
         2: .line 91
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* target */
            invokevirtual org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType.isSubType:(Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;)Z
            ireturn
        end local 1 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.StandardType target
        end local 0 // org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.HierarchyType this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/HierarchyType;
            0    3     1  target  Lorg/eclipse/jdt/internal/corext/refactoring/typeconstraints/types/StandardType;
    MethodParameters:
        Name  Flags
      target  
}
SourceFile: "HierarchyType.java"