public class org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder extends org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder implements org.eclipse.jdt.internal.compiler.util.SuffixConstants
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder
  super_class: org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder
{
  public static final int MAXTICKS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 800

  protected java.util.Map cuToHandle;
    descriptor: Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED

  protected org.eclipse.jdt.core.search.IJavaSearchScope scope;
    descriptor: Lorg/eclipse/jdt/core/search/IJavaSearchScope;
    flags: (0x0004) ACC_PROTECTED

  protected java.util.Map binariesFromIndexMatches;
    descriptor: Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED

  public void <init>(org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy, org.eclipse.jdt.core.search.IJavaSearchScope);
    descriptor: (Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;Lorg/eclipse/jdt/core/search/IJavaSearchScope;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
        start local 1 // org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy hierarchy
        start local 2 // org.eclipse.jdt.core.search.IJavaSearchScope scope
         0: .line 136
            aload 0 /* this */
            aload 1 /* hierarchy */
            invokespecial org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder.<init>:(Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;)V
         1: .line 137
            aload 0 /* this */
            new java.util.HashMap
            dup
            iconst_5
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.cuToHandle:Ljava/util/Map;
         2: .line 138
            aload 0 /* this */
            new java.util.HashMap
            dup
            bipush 10
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.binariesFromIndexMatches:Ljava/util/Map;
         3: .line 139
            aload 0 /* this */
            aload 2 /* scope */
            putfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.scope:Lorg/eclipse/jdt/core/search/IJavaSearchScope;
         4: .line 140
            return
        end local 2 // org.eclipse.jdt.core.search.IJavaSearchScope scope
        end local 1 // org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy hierarchy
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder;
            0    5     1  hierarchy  Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            0    5     2      scope  Lorg/eclipse/jdt/core/search/IJavaSearchScope;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
           Name  Flags
      hierarchy  
      scope      

  public void build(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
        start local 1 // boolean computeSubtypes
         0: .line 143
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            astore 2 /* manager */
        start local 2 // org.eclipse.jdt.internal.core.JavaModelManager manager
         1: .line 146
            aload 2 /* manager */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.cacheZipFiles:(Ljava/lang/Object;)V
         2: .line 148
            iload 1 /* computeSubtypes */
            ifeq 19
         3: .line 150
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.getType:()Lorg/eclipse/jdt/core/IType;
            astore 3 /* focusType */
        start local 3 // org.eclipse.jdt.core.IType focusType
         4: .line 151
            aload 3 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getElementName:()Ljava/lang/String;
            new java.lang.String
            dup
            getstatic org.eclipse.jdt.internal.core.search.indexing.IIndexConstants.OBJECT:[C
            invokespecial java.lang.String.<init>:([C)V
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            istore 4 /* focusIsObject */
        start local 4 // boolean focusIsObject
         5: .line 152
            iload 4 /* focusIsObject */
            ifeq 6
            iconst_5
            goto 7
      StackMap locals: org.eclipse.jdt.internal.core.JavaModelManager org.eclipse.jdt.core.IType int
      StackMap stack:
         6: bipush 80
      StackMap locals:
      StackMap stack: int
         7: istore 5 /* amountOfWorkForSubtypes */
        start local 5 // int amountOfWorkForSubtypes
         8: .line 153
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            getfield org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.progressMonitor:Lorg/eclipse/core/runtime/SubMonitor;
            iload 5 /* amountOfWorkForSubtypes */
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 6 /* possibleSubtypesMonitor */
        start local 6 // org.eclipse.core.runtime.SubMonitor possibleSubtypesMonitor
         9: .line 154
            new java.util.HashSet
            dup
            bipush 10
            invokespecial java.util.HashSet.<init>:(I)V
            astore 7 /* localTypes */
        start local 7 // java.util.HashSet localTypes
        10: .line 156
            aload 3 /* focusType */
            checkcast org.eclipse.jdt.internal.core.Member
            invokevirtual org.eclipse.jdt.internal.core.Member.getOuterMostLocalContext:()Lorg/eclipse/jdt/internal/core/Member;
            ifnonnull 13
        11: .line 158
            aload 0 /* this */
            aload 7 /* localTypes */
            aload 6 /* possibleSubtypesMonitor */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.determinePossibleSubTypes:(Ljava/util/HashSet;Lorg/eclipse/core/runtime/IProgressMonitor;)[Ljava/lang/String;
            astore 8 /* allPossibleSubtypes */
        start local 8 // java.lang.String[] allPossibleSubtypes
        12: .line 159
            goto 14
        end local 8 // java.lang.String[] allPossibleSubtypes
        13: .line 161
      StackMap locals: int org.eclipse.core.runtime.SubMonitor java.util.HashSet
      StackMap stack:
            getstatic org.eclipse.jdt.core.compiler.CharOperation.NO_STRINGS:[Ljava/lang/String;
            astore 8 /* allPossibleSubtypes */
        start local 8 // java.lang.String[] allPossibleSubtypes
        14: .line 163
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 8 /* allPossibleSubtypes */
            ifnull 25
        15: .line 164
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            getfield org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.progressMonitor:Lorg/eclipse/core/runtime/SubMonitor;
            bipush 100
            iload 5 /* amountOfWorkForSubtypes */
            isub
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 9 /* buildMonitor */
        start local 9 // org.eclipse.core.runtime.SubMonitor buildMonitor
        16: .line 165
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            aload 8 /* allPossibleSubtypes */
            arraylength
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.initialize:(I)V
        17: .line 166
            aload 0 /* this */
            aload 8 /* allPossibleSubtypes */
            aload 7 /* localTypes */
            aload 9 /* buildMonitor */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.buildFromPotentialSubtypes:([Ljava/lang/String;Ljava/util/HashSet;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        end local 9 // org.eclipse.core.runtime.SubMonitor buildMonitor
        end local 8 // java.lang.String[] allPossibleSubtypes
        end local 7 // java.util.HashSet localTypes
        end local 6 // org.eclipse.core.runtime.SubMonitor possibleSubtypesMonitor
        end local 5 // int amountOfWorkForSubtypes
        end local 4 // boolean focusIsObject
        end local 3 // org.eclipse.jdt.core.IType focusType
        18: .line 168
            goto 25
        19: .line 169
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder int org.eclipse.jdt.internal.core.JavaModelManager
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.initialize:(I)V
        20: .line 170
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.buildSupertypes:()V
        21: .line 172
            goto 25
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 10
        23: .line 173
            aload 2 /* manager */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.flushZipFiles:(Ljava/lang/Object;)V
        24: .line 174
            aload 10
            athrow
        25: .line 173
      StackMap locals:
      StackMap stack:
            aload 2 /* manager */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.flushZipFiles:(Ljava/lang/Object;)V
        26: .line 175
            return
        end local 2 // org.eclipse.jdt.internal.core.JavaModelManager manager
        end local 1 // boolean computeSubtypes
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   27     0                     this  Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder;
            0   27     1          computeSubtypes  Z
            1   27     2                  manager  Lorg/eclipse/jdt/internal/core/JavaModelManager;
            4   18     3                focusType  Lorg/eclipse/jdt/core/IType;
            5   18     4            focusIsObject  Z
            8   18     5  amountOfWorkForSubtypes  I
            9   18     6  possibleSubtypesMonitor  Lorg/eclipse/core/runtime/SubMonitor;
           10   18     7               localTypes  Ljava/util/HashSet;
           12   13     8      allPossibleSubtypes  [Ljava/lang/String;
           14   18     8      allPossibleSubtypes  [Ljava/lang/String;
           16   18     9             buildMonitor  Lorg/eclipse/core/runtime/SubMonitor;
      Exception table:
        from    to  target  type
           1    22      22  any
    MethodParameters:
                 Name  Flags
      computeSubtypes  

  private void buildForProject(org.eclipse.jdt.internal.core.JavaProject, java.util.ArrayList, org.eclipse.jdt.core.ICompilationUnit[], java.util.HashSet, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/jdt/internal/core/JavaProject;Ljava/util/ArrayList;[Lorg/eclipse/jdt/core/ICompilationUnit;Ljava/util/HashSet;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=21, args_size=6
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
        start local 1 // org.eclipse.jdt.internal.core.JavaProject project
        start local 2 // java.util.ArrayList potentialSubtypes
        start local 3 // org.eclipse.jdt.core.ICompilationUnit[] workingCopies
        start local 4 // java.util.HashSet localTypes
        start local 5 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 177
            aload 5 /* monitor */
            bipush 10
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 6 /* subMonitor */
        start local 6 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 179
            aload 2 /* potentialSubtypes */
            invokevirtual java.util.ArrayList.size:()I
            istore 7 /* openablesLength */
        start local 7 // int openablesLength
         2: .line 180
            iload 7 /* openablesLength */
            ifle 66
         3: .line 182
            iload 7 /* openablesLength */
            anewarray org.eclipse.jdt.internal.core.Openable
            astore 8 /* openables */
        start local 8 // org.eclipse.jdt.internal.core.Openable[] openables
         4: .line 183
            aload 2 /* potentialSubtypes */
            aload 8 /* openables */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
         5: .line 188
            aload 1 /* project */
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoots:()[Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            astore 9 /* roots */
        start local 9 // org.eclipse.jdt.core.IPackageFragmentRoot[] roots
         6: .line 189
            aload 9 /* roots */
            arraylength
            istore 10 /* rootsLength */
        start local 10 // int rootsLength
         7: .line 190
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObjectToInt
            dup
            iload 7 /* openablesLength */
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObjectToInt.<init>:(I)V
            astore 11 /* indexes */
        start local 11 // org.eclipse.jdt.internal.compiler.util.HashtableOfObjectToInt indexes
         8: .line 191
            iconst_0
            istore 12 /* i */
        start local 12 // int i
         9: goto 19
        10: .line 192
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder org.eclipse.jdt.internal.core.JavaProject java.util.ArrayList org.eclipse.jdt.core.ICompilationUnit[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor int org.eclipse.jdt.internal.core.Openable[] org.eclipse.jdt.core.IPackageFragmentRoot[] int org.eclipse.jdt.internal.compiler.util.HashtableOfObjectToInt int
      StackMap stack:
            aload 8 /* openables */
            iload 12 /* i */
            aaload
            iconst_3
            invokevirtual org.eclipse.jdt.internal.core.Openable.getAncestor:(I)Lorg/eclipse/jdt/core/IJavaElement;
            astore 13 /* root */
        start local 13 // org.eclipse.jdt.core.IJavaElement root
        11: .line 194
            iconst_0
            istore 14 /* index */
        start local 14 // int index
        12: goto 16
        13: .line 195
      StackMap locals: org.eclipse.jdt.core.IJavaElement int
      StackMap stack:
            aload 9 /* roots */
            iload 14 /* index */
            aaload
            aload 13 /* root */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 196
            goto 17
        15: .line 194
      StackMap locals:
      StackMap stack:
            iinc 14 /* index */ 1
      StackMap locals:
      StackMap stack:
        16: iload 14 /* index */
            iload 10 /* rootsLength */
            if_icmplt 13
        17: .line 198
      StackMap locals:
      StackMap stack:
            aload 11 /* indexes */
            aload 8 /* openables */
            iload 12 /* i */
            aaload
            iload 14 /* index */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfObjectToInt.put:(Ljava/lang/Object;I)I
            pop
        end local 14 // int index
        end local 13 // org.eclipse.jdt.core.IJavaElement root
        18: .line 191
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 12 /* i */
            iload 7 /* openablesLength */
            if_icmplt 10
        end local 12 // int i
        20: .line 200
            aload 6 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        21: .line 201
            aload 8 /* openables */
            new org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1
            dup
            aload 0 /* this */
            aload 11 /* indexes */
            invokespecial org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1.<init>:(Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder;Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObjectToInt;)V
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
        22: .line 212
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.getType:()Lorg/eclipse/jdt/core/IType;
            astore 12 /* focusType */
        start local 12 // org.eclipse.jdt.core.IType focusType
        23: .line 213
            aload 12 /* focusType */
            ifnull 24
            aload 12 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getJavaProject:()Lorg/eclipse/jdt/core/IJavaProject;
            aload 1 /* project */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 24
            iconst_1
            goto 25
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder org.eclipse.jdt.internal.core.JavaProject java.util.ArrayList org.eclipse.jdt.core.ICompilationUnit[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor int org.eclipse.jdt.internal.core.Openable[] org.eclipse.jdt.core.IPackageFragmentRoot[] int org.eclipse.jdt.internal.compiler.util.HashtableOfObjectToInt org.eclipse.jdt.core.IType
      StackMap stack:
        24: iconst_0
      StackMap locals:
      StackMap stack: int
        25: istore 13 /* inProjectOfFocusType */
        start local 13 // boolean inProjectOfFocusType
        26: .line 214
            aconst_null
            astore 14 /* unitsToLookInside */
        start local 14 // org.eclipse.jdt.core.ICompilationUnit[] unitsToLookInside
        27: .line 215
            iload 13 /* inProjectOfFocusType */
            ifeq 41
        28: .line 216
            aload 12 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getCompilationUnit:()Lorg/eclipse/jdt/core/ICompilationUnit;
            astore 15 /* unitToLookInside */
        start local 15 // org.eclipse.jdt.core.ICompilationUnit unitToLookInside
        29: .line 217
            aload 15 /* unitToLookInside */
            ifnull 40
        30: .line 218
            aload 3 /* workingCopies */
            ifnonnull 31
            iconst_0
            goto 32
      StackMap locals: int org.eclipse.jdt.core.ICompilationUnit[] org.eclipse.jdt.core.ICompilationUnit
      StackMap stack:
        31: aload 3 /* workingCopies */
            arraylength
      StackMap locals:
      StackMap stack: int
        32: istore 16 /* wcLength */
        start local 16 // int wcLength
        33: .line 219
            iload 16 /* wcLength */
            ifne 36
        34: .line 220
            iconst_1
            anewarray org.eclipse.jdt.core.ICompilationUnit
            dup
            iconst_0
            aload 15 /* unitToLookInside */
            aastore
            astore 14 /* unitsToLookInside */
        35: .line 221
            goto 41
        36: .line 222
      StackMap locals: int
      StackMap stack:
            iload 16 /* wcLength */
            iconst_1
            iadd
            anewarray org.eclipse.jdt.core.ICompilationUnit
            astore 14 /* unitsToLookInside */
        37: .line 223
            aload 14 /* unitsToLookInside */
            iconst_0
            aload 15 /* unitToLookInside */
            aastore
        38: .line 224
            aload 3 /* workingCopies */
            iconst_0
            aload 14 /* unitsToLookInside */
            iconst_1
            iload 16 /* wcLength */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 16 // int wcLength
        39: .line 226
            goto 41
        40: .line 227
      StackMap locals:
      StackMap stack:
            aload 3 /* workingCopies */
            astore 14 /* unitsToLookInside */
        end local 15 // org.eclipse.jdt.core.ICompilationUnit unitToLookInside
        41: .line 231
      StackMap locals:
      StackMap stack:
            aload 1 /* project */
            aload 14 /* unitsToLookInside */
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.newSearchableNameEnvironment:([Lorg/eclipse/jdt/core/ICompilationUnit;)Lorg/eclipse/jdt/internal/core/SearchableEnvironment;
            astore 15 /* searchableEnvironment */
        start local 15 // org.eclipse.jdt.internal.core.SearchableEnvironment searchableEnvironment
        42: .line 232
            aload 0 /* this */
            aload 15 /* searchableEnvironment */
            getfield org.eclipse.jdt.internal.core.SearchableEnvironment.nameLookup:Lorg/eclipse/jdt/internal/core/NameLookup;
            putfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.nameLookup:Lorg/eclipse/jdt/internal/core/NameLookup;
        43: .line 233
            aload 1 /* project */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.getOptions:(Z)Ljava/util/Map;
            astore 16 /* options */
        start local 16 // java.util.Map options
        44: .line 235
            aload 16 /* options */
            ldc "org.eclipse.jdt.core.compiler.taskTags"
            ldc ""
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        45: .line 236
            aload 0 /* this */
        46: .line 237
            new org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver
            dup
            aload 15 /* searchableEnvironment */
            aload 16 /* options */
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory
            dup
            invokespecial org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory.<init>:()V
            invokespecial org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.<init>:(Lorg/eclipse/jdt/internal/compiler/env/INameEnvironment;Ljava/util/Map;Lorg/eclipse/jdt/internal/core/hierarchy/HierarchyBuilder;Lorg/eclipse/jdt/internal/compiler/IProblemFactory;)V
        47: .line 236
            putfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchyResolver:Lorg/eclipse/jdt/internal/core/hierarchy/HierarchyResolver;
        48: .line 238
            aload 12 /* focusType */
            ifnull 65
        49: .line 239
            aload 12 /* focusType */
            checkcast org.eclipse.jdt.internal.core.Member
            invokevirtual org.eclipse.jdt.internal.core.Member.getOuterMostLocalContext:()Lorg/eclipse/jdt/internal/core/Member;
            astore 17 /* declaringMember */
        start local 17 // org.eclipse.jdt.internal.core.Member declaringMember
        50: .line 240
            aload 17 /* declaringMember */
            ifnonnull 57
        51: .line 242
            iload 13 /* inProjectOfFocusType */
            ifne 65
        52: .line 243
            aload 12 /* focusType */
            bipush 46
            invokeinterface org.eclipse.jdt.core.IType.getTypeQualifiedName:(C)Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 18 /* typeQualifiedName */
        start local 18 // char[] typeQualifiedName
        53: .line 244
            aload 12 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getPackageFragment:()Lorg/eclipse/jdt/core/IPackageFragment;
            checkcast org.eclipse.jdt.internal.core.PackageFragment
            astore 19 /* fragment */
        start local 19 // org.eclipse.jdt.internal.core.PackageFragment fragment
        54: .line 245
            aload 19 /* fragment */
            getfield org.eclipse.jdt.internal.core.PackageFragment.names:[Ljava/lang/String;
            astore 20 /* packageName */
        start local 20 // java.lang.String[] packageName
        55: .line 246
            aload 15 /* searchableEnvironment */
            aload 18 /* typeQualifiedName */
            aload 20 /* packageName */
            invokestatic org.eclipse.jdt.internal.core.util.Util.toCharArrays:([Ljava/lang/String;)[[C
            invokevirtual org.eclipse.jdt.internal.core.SearchableEnvironment.findType:([C[[C)Lorg/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer;
            ifnonnull 65
        56: .line 248
            return
        end local 20 // java.lang.String[] packageName
        end local 19 // org.eclipse.jdt.internal.core.PackageFragment fragment
        end local 18 // char[] typeQualifiedName
        57: .line 254
      StackMap locals: org.eclipse.jdt.internal.core.SearchableEnvironment java.util.Map org.eclipse.jdt.internal.core.Member
      StackMap stack:
            aload 17 /* declaringMember */
            invokevirtual org.eclipse.jdt.internal.core.Member.isBinary:()Z
            ifeq 60
        58: .line 255
            aload 17 /* declaringMember */
            invokevirtual org.eclipse.jdt.internal.core.Member.getClassFile:()Lorg/eclipse/jdt/core/IClassFile;
            checkcast org.eclipse.jdt.internal.core.Openable
            astore 18 /* openable */
        start local 18 // org.eclipse.jdt.internal.core.Openable openable
        59: .line 256
            goto 61
        end local 18 // org.eclipse.jdt.internal.core.Openable openable
        60: .line 257
      StackMap locals:
      StackMap stack:
            aload 17 /* declaringMember */
            invokevirtual org.eclipse.jdt.internal.core.Member.getCompilationUnit:()Lorg/eclipse/jdt/core/ICompilationUnit;
            checkcast org.eclipse.jdt.internal.core.Openable
            astore 18 /* openable */
        start local 18 // org.eclipse.jdt.internal.core.Openable openable
        61: .line 259
      StackMap locals: org.eclipse.jdt.internal.core.Openable
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* localTypes */
        62: .line 260
            aload 4 /* localTypes */
            aload 18 /* openable */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        63: .line 261
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchyResolver:Lorg/eclipse/jdt/internal/core/hierarchy/HierarchyResolver;
            iconst_1
            anewarray org.eclipse.jdt.internal.core.Openable
            dup
            iconst_0
            aload 18 /* openable */
            aastore
            aload 4 /* localTypes */
            aload 6 /* subMonitor */
            bipush 9
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve:([Lorg/eclipse/jdt/internal/core/Openable;Ljava/util/HashSet;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        64: .line 262
            return
        end local 18 // org.eclipse.jdt.internal.core.Openable openable
        end local 17 // org.eclipse.jdt.internal.core.Member declaringMember
        65: .line 265
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchyResolver:Lorg/eclipse/jdt/internal/core/hierarchy/HierarchyResolver;
            aload 8 /* openables */
            aload 4 /* localTypes */
            aload 6 /* subMonitor */
            bipush 9
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.HierarchyResolver.resolve:([Lorg/eclipse/jdt/internal/core/Openable;Ljava/util/HashSet;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        end local 16 // java.util.Map options
        end local 15 // org.eclipse.jdt.internal.core.SearchableEnvironment searchableEnvironment
        end local 14 // org.eclipse.jdt.core.ICompilationUnit[] unitsToLookInside
        end local 13 // boolean inProjectOfFocusType
        end local 12 // org.eclipse.jdt.core.IType focusType
        end local 11 // org.eclipse.jdt.internal.compiler.util.HashtableOfObjectToInt indexes
        end local 10 // int rootsLength
        end local 9 // org.eclipse.jdt.core.IPackageFragmentRoot[] roots
        end local 8 // org.eclipse.jdt.internal.core.Openable[] openables
        66: .line 267
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder org.eclipse.jdt.internal.core.JavaProject java.util.ArrayList org.eclipse.jdt.core.ICompilationUnit[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor int
      StackMap stack:
            return
        end local 7 // int openablesLength
        end local 6 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 5 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 4 // java.util.HashSet localTypes
        end local 3 // org.eclipse.jdt.core.ICompilationUnit[] workingCopies
        end local 2 // java.util.ArrayList potentialSubtypes
        end local 1 // org.eclipse.jdt.internal.core.JavaProject project
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   67     0                   this  Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder;
            0   67     1                project  Lorg/eclipse/jdt/internal/core/JavaProject;
            0   67     2      potentialSubtypes  Ljava/util/ArrayList;
            0   67     3          workingCopies  [Lorg/eclipse/jdt/core/ICompilationUnit;
            0   67     4             localTypes  Ljava/util/HashSet;
            0   67     5                monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   67     6             subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            2   67     7        openablesLength  I
            4   66     8              openables  [Lorg/eclipse/jdt/internal/core/Openable;
            6   66     9                  roots  [Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            7   66    10            rootsLength  I
            8   66    11                indexes  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObjectToInt;
            9   20    12                      i  I
           11   18    13                   root  Lorg/eclipse/jdt/core/IJavaElement;
           12   18    14                  index  I
           23   66    12              focusType  Lorg/eclipse/jdt/core/IType;
           26   66    13   inProjectOfFocusType  Z
           27   66    14      unitsToLookInside  [Lorg/eclipse/jdt/core/ICompilationUnit;
           29   41    15       unitToLookInside  Lorg/eclipse/jdt/core/ICompilationUnit;
           33   39    16               wcLength  I
           42   66    15  searchableEnvironment  Lorg/eclipse/jdt/internal/core/SearchableEnvironment;
           44   66    16                options  Ljava/util/Map;
           50   65    17        declaringMember  Lorg/eclipse/jdt/internal/core/Member;
           53   57    18      typeQualifiedName  [C
           54   57    19               fragment  Lorg/eclipse/jdt/internal/core/PackageFragment;
           55   57    20            packageName  [Ljava/lang/String;
           59   60    18               openable  Lorg/eclipse/jdt/internal/core/Openable;
           61   65    18               openable  Lorg/eclipse/jdt/internal/core/Openable;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
                   Name  Flags
      project            
      potentialSubtypes  
      workingCopies      
      localTypes         
      monitor            

  private void buildFromPotentialSubtypes(java.lang.String[], java.util.HashSet, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: ([Ljava/lang/String;Ljava/util/HashSet;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=24, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
        start local 1 // java.lang.String[] allPotentialSubTypes
        start local 2 // java.util.HashSet localTypes
        start local 3 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 272
            aload 3 /* monitor */
            bipush 100
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 4 /* subMonitor */
        start local 4 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 273
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.getType:()Lorg/eclipse/jdt/core/IType;
            astore 5 /* focusType */
        start local 5 // org.eclipse.jdt.core.IType focusType
         2: .line 276
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 6 /* wcPaths */
        start local 6 // java.util.HashMap wcPaths
         3: .line 278
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            getfield org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.workingCopies:[Lorg/eclipse/jdt/core/ICompilationUnit;
            astore 8 /* workingCopies */
        start local 8 // org.eclipse.jdt.core.ICompilationUnit[] workingCopies
         4: .line 279
            aload 8 /* workingCopies */
            ifnull 18
            aload 8 /* workingCopies */
            arraylength
            dup
            istore 7 /* wcLength */
        start local 7 // int wcLength
         5: ifle 18
         6: .line 280
            iload 7 /* wcLength */
            anewarray java.lang.String
            astore 9 /* newPaths */
        start local 9 // java.lang.String[] newPaths
         7: .line 281
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         8: goto 14
         9: .line 282
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder java.lang.String[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IType java.util.HashMap int org.eclipse.jdt.core.ICompilationUnit[] java.lang.String[] int
      StackMap stack:
            aload 8 /* workingCopies */
            iload 10 /* i */
            aaload
            astore 11 /* workingCopy */
        start local 11 // org.eclipse.jdt.core.ICompilationUnit workingCopy
        10: .line 283
            aload 11 /* workingCopy */
            invokeinterface org.eclipse.jdt.core.ICompilationUnit.getPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            astore 12 /* path */
        start local 12 // java.lang.String path
        11: .line 284
            aload 6 /* wcPaths */
            aload 12 /* path */
            aload 11 /* workingCopy */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 285
            aload 9 /* newPaths */
            iload 10 /* i */
            aload 12 /* path */
            aastore
        end local 12 // java.lang.String path
        end local 11 // org.eclipse.jdt.core.ICompilationUnit workingCopy
        13: .line 281
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 10 /* i */
            iload 7 /* wcLength */
            if_icmplt 9
        end local 10 // int i
        15: .line 287
            aload 1 /* allPotentialSubTypes */
            arraylength
            istore 10 /* potentialSubtypesLength */
        start local 10 // int potentialSubtypesLength
        16: .line 288
            aload 1 /* allPotentialSubTypes */
            iconst_0
            iload 10 /* potentialSubtypesLength */
            iload 7 /* wcLength */
            iadd
            anewarray java.lang.String
            dup
            astore 1 /* allPotentialSubTypes */
            iconst_0
            iload 10 /* potentialSubtypesLength */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 289
            aload 9 /* newPaths */
            iconst_0
            aload 1 /* allPotentialSubTypes */
            iload 10 /* potentialSubtypesLength */
            iload 7 /* wcLength */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 10 // int potentialSubtypesLength
        end local 9 // java.lang.String[] newPaths
        end local 7 // int wcLength
        18: .line 292
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder java.lang.String[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IType java.util.HashMap top org.eclipse.jdt.core.ICompilationUnit[]
      StackMap stack:
            aload 1 /* allPotentialSubTypes */
            arraylength
            istore 9 /* length */
        start local 9 // int length
        19: .line 297
            aload 5 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getCompilationUnit:()Lorg/eclipse/jdt/core/ICompilationUnit;
            checkcast org.eclipse.jdt.internal.core.Openable
            astore 10 /* focusCU */
        start local 10 // org.eclipse.jdt.internal.core.Openable focusCU
        20: .line 298
            aconst_null
            astore 11 /* focusPath */
        start local 11 // java.lang.String focusPath
        21: .line 299
            aload 10 /* focusCU */
            ifnull 29
        22: .line 300
            aload 10 /* focusCU */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            astore 11 /* focusPath */
        23: .line 301
            iload 9 /* length */
            ifle 27
        24: .line 302
            aload 1 /* allPotentialSubTypes */
            iconst_0
            iload 9 /* length */
            iconst_1
            iadd
            anewarray java.lang.String
            dup
            astore 1 /* allPotentialSubTypes */
            iconst_0
            iload 9 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        25: .line 303
            aload 1 /* allPotentialSubTypes */
            iload 9 /* length */
            aload 11 /* focusPath */
            aastore
        26: .line 304
            goto 28
        27: .line 305
      StackMap locals: int org.eclipse.jdt.internal.core.Openable java.lang.String
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 11 /* focusPath */
            aastore
            astore 1 /* allPotentialSubTypes */
        28: .line 307
      StackMap locals:
      StackMap stack:
            iinc 9 /* length */ 1
        29: .line 310
      StackMap locals:
      StackMap stack:
            aload 4 /* subMonitor */
            iconst_5
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        30: .line 314
            aload 1 /* allPotentialSubTypes */
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
        31: .line 316
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* potentialSubtypes */
        start local 12 // java.util.ArrayList potentialSubtypes
        32: .line 318
            aload 4 /* subMonitor */
            bipush 95
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 13 /* loopMonitor */
        start local 13 // org.eclipse.core.runtime.SubMonitor loopMonitor
        33: .line 320
            new org.eclipse.jdt.internal.core.util.HandleFactory
            dup
            invokespecial org.eclipse.jdt.internal.core.util.HandleFactory.<init>:()V
            astore 14 /* factory */
        start local 14 // org.eclipse.jdt.internal.core.util.HandleFactory factory
        34: .line 321
            aconst_null
            astore 15 /* currentProject */
        start local 15 // org.eclipse.jdt.core.IJavaProject currentProject
        35: .line 322
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        36: goto 78
        37: .line 323
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder java.lang.String[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IType java.util.HashMap top org.eclipse.jdt.core.ICompilationUnit[] int org.eclipse.jdt.internal.core.Openable java.lang.String java.util.ArrayList org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.util.HandleFactory org.eclipse.jdt.core.IJavaProject int
      StackMap stack:
            aload 13 /* loopMonitor */
            iload 9 /* length */
            iload 16 /* i */
            isub
            iconst_1
            iadd
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        38: .line 324
            aconst_null
            astore 17 /* nextProject */
        start local 17 // org.eclipse.jdt.core.IJavaProject nextProject
        39: .line 326
            aload 1 /* allPotentialSubTypes */
            iload 16 /* i */
            aaload
            astore 18 /* resourcePath */
        start local 18 // java.lang.String resourcePath
        40: .line 329
            iload 16 /* i */
            ifle 44
            aload 18 /* resourcePath */
            aload 1 /* allPotentialSubTypes */
            iload 16 /* i */
            iconst_1
            isub
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 44
        41: .line 358
            aload 17 /* nextProject */
            ifnull 77
        42: .line 359
            aload 17 /* nextProject */
            astore 15 /* currentProject */
        43: .line 329
            goto 77
        44: .line 332
      StackMap locals: org.eclipse.jdt.core.IJavaProject java.lang.String
      StackMap stack:
            aload 6 /* wcPaths */
            aload 18 /* resourcePath */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.ICompilationUnit
            astore 20 /* workingCopy */
        start local 20 // org.eclipse.jdt.core.ICompilationUnit workingCopy
        45: .line 333
            aload 20 /* workingCopy */
            ifnull 48
        46: .line 334
            aload 20 /* workingCopy */
            checkcast org.eclipse.jdt.internal.core.Openable
            astore 19 /* handle */
        start local 19 // org.eclipse.jdt.internal.core.Openable handle
        47: .line 335
            goto 56
        end local 19 // org.eclipse.jdt.internal.core.Openable handle
        48: .line 337
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder java.lang.String[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IType java.util.HashMap top org.eclipse.jdt.core.ICompilationUnit[] int org.eclipse.jdt.internal.core.Openable java.lang.String java.util.ArrayList org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.util.HandleFactory org.eclipse.jdt.core.IJavaProject int org.eclipse.jdt.core.IJavaProject java.lang.String top org.eclipse.jdt.core.ICompilationUnit
      StackMap stack:
            aload 18 /* resourcePath */
            aload 11 /* focusPath */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 50
        49: .line 338
            aload 10 /* focusCU */
            goto 51
        50: .line 339
      StackMap locals:
      StackMap stack:
            aload 14 /* factory */
            aload 18 /* resourcePath */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.scope:Lorg/eclipse/jdt/core/search/IJavaSearchScope;
            invokevirtual org.eclipse.jdt.internal.core.util.HandleFactory.createOpenable:(Ljava/lang/String;Lorg/eclipse/jdt/core/search/IJavaSearchScope;)Lorg/eclipse/jdt/internal/core/Openable;
        51: .line 336
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.core.Openable
            astore 19 /* handle */
        start local 19 // org.eclipse.jdt.internal.core.Openable handle
        52: .line 340
            aload 19 /* handle */
            ifnonnull 56
        53: .line 358
            aload 17 /* nextProject */
            ifnull 77
        54: .line 359
            aload 17 /* nextProject */
            astore 15 /* currentProject */
        55: .line 340
            goto 77
        56: .line 343
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder java.lang.String[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IType java.util.HashMap top org.eclipse.jdt.core.ICompilationUnit[] int org.eclipse.jdt.internal.core.Openable java.lang.String java.util.ArrayList org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.util.HandleFactory org.eclipse.jdt.core.IJavaProject int org.eclipse.jdt.core.IJavaProject java.lang.String org.eclipse.jdt.internal.core.Openable org.eclipse.jdt.core.ICompilationUnit
      StackMap stack:
            aload 19 /* handle */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getJavaProject:()Lorg/eclipse/jdt/core/IJavaProject;
            astore 21 /* project */
        start local 21 // org.eclipse.jdt.core.IJavaProject project
        57: .line 344
            aload 15 /* currentProject */
            ifnonnull 61
        58: .line 345
            aload 21 /* project */
            astore 15 /* currentProject */
        59: .line 346
            new java.util.ArrayList
            dup
            iconst_5
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 12 /* potentialSubtypes */
        60: .line 347
            goto 65
      StackMap locals: org.eclipse.jdt.core.IJavaProject
      StackMap stack:
        61: aload 15 /* currentProject */
            aload 21 /* project */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 65
        62: .line 348
            aload 21 /* project */
            astore 17 /* nextProject */
        63: .line 350
            aload 0 /* this */
            aload 15 /* currentProject */
            checkcast org.eclipse.jdt.internal.core.JavaProject
            aload 12 /* potentialSubtypes */
            aload 8 /* workingCopies */
            aload 2 /* localTypes */
            aload 13 /* loopMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.buildForProject:(Lorg/eclipse/jdt/internal/core/JavaProject;Ljava/util/ArrayList;[Lorg/eclipse/jdt/core/ICompilationUnit;Ljava/util/HashSet;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        64: .line 351
            new java.util.ArrayList
            dup
            iconst_5
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 12 /* potentialSubtypes */
        65: .line 354
      StackMap locals:
      StackMap stack:
            aload 12 /* potentialSubtypes */
            aload 19 /* handle */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 21 // org.eclipse.jdt.core.IJavaProject project
        end local 20 // org.eclipse.jdt.core.ICompilationUnit workingCopy
        end local 19 // org.eclipse.jdt.internal.core.Openable handle
        end local 18 // java.lang.String resourcePath
        66: .line 355
            goto 75
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder java.lang.String[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IType java.util.HashMap top org.eclipse.jdt.core.ICompilationUnit[] int org.eclipse.jdt.internal.core.Openable java.lang.String java.util.ArrayList org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.util.HandleFactory org.eclipse.jdt.core.IJavaProject int org.eclipse.jdt.core.IJavaProject
      StackMap stack: org.eclipse.jdt.core.JavaModelException
        67: pop
        68: .line 358
            aload 17 /* nextProject */
            ifnull 77
        69: .line 359
            aload 17 /* nextProject */
            astore 15 /* currentProject */
        70: .line 356
            goto 77
        71: .line 357
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 22
        72: .line 358
            aload 17 /* nextProject */
            ifnull 74
        73: .line 359
            aload 17 /* nextProject */
            astore 15 /* currentProject */
        74: .line 361
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder java.lang.String[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IType java.util.HashMap top org.eclipse.jdt.core.ICompilationUnit[] int org.eclipse.jdt.internal.core.Openable java.lang.String java.util.ArrayList org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.util.HandleFactory org.eclipse.jdt.core.IJavaProject int org.eclipse.jdt.core.IJavaProject top top top top java.lang.Throwable
      StackMap stack:
            aload 22
            athrow
        75: .line 358
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder java.lang.String[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IType java.util.HashMap top org.eclipse.jdt.core.ICompilationUnit[] int org.eclipse.jdt.internal.core.Openable java.lang.String java.util.ArrayList org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.util.HandleFactory org.eclipse.jdt.core.IJavaProject int org.eclipse.jdt.core.IJavaProject
      StackMap stack:
            aload 17 /* nextProject */
            ifnull 77
        76: .line 359
            aload 17 /* nextProject */
            astore 15 /* currentProject */
        end local 17 // org.eclipse.jdt.core.IJavaProject nextProject
        77: .line 322
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        78: iload 16 /* i */
            iload 9 /* length */
            if_icmplt 37
        end local 16 // int i
        79: .line 364
            aload 13 /* loopMonitor */
            iconst_2
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        80: .line 367
            aload 15 /* currentProject */
            ifnonnull 86
        81: .line 369
            aload 5 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getJavaProject:()Lorg/eclipse/jdt/core/IJavaProject;
            astore 15 /* currentProject */
        82: .line 370
            aload 5 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.isBinary:()Z
            ifeq 85
        83: .line 371
            aload 12 /* potentialSubtypes */
            aload 5 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getClassFile:()Lorg/eclipse/jdt/core/IOrdinaryClassFile;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        84: .line 372
            goto 86
        85: .line 373
      StackMap locals:
      StackMap stack:
            aload 12 /* potentialSubtypes */
            aload 5 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getCompilationUnit:()Lorg/eclipse/jdt/core/ICompilationUnit;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        86: .line 376
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 15 /* currentProject */
            checkcast org.eclipse.jdt.internal.core.JavaProject
            aload 12 /* potentialSubtypes */
            aload 8 /* workingCopies */
            aload 2 /* localTypes */
            aload 13 /* loopMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.buildForProject:(Lorg/eclipse/jdt/internal/core/JavaProject;Ljava/util/ArrayList;[Lorg/eclipse/jdt/core/ICompilationUnit;Ljava/util/HashSet;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        87: .line 377
            goto 89
      StackMap locals:
      StackMap stack: org.eclipse.jdt.core.JavaModelException
        88: pop
        89: .line 381
      StackMap locals:
      StackMap stack:
            aload 13 /* loopMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        90: .line 384
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            aload 5 /* focusType */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.contains:(Lorg/eclipse/jdt/core/IType;)Z
            ifne 100
        91: .line 386
            aload 5 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getJavaProject:()Lorg/eclipse/jdt/core/IJavaProject;
            astore 15 /* currentProject */
        92: .line 387
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* potentialSubtypes */
        93: .line 388
            aload 5 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.isBinary:()Z
            ifeq 96
        94: .line 389
            aload 12 /* potentialSubtypes */
            aload 5 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getClassFile:()Lorg/eclipse/jdt/core/IOrdinaryClassFile;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        95: .line 390
            goto 97
        96: .line 391
      StackMap locals:
      StackMap stack:
            aload 12 /* potentialSubtypes */
            aload 5 /* focusType */
            invokeinterface org.eclipse.jdt.core.IType.getCompilationUnit:()Lorg/eclipse/jdt/core/ICompilationUnit;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        97: .line 393
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 15 /* currentProject */
            checkcast org.eclipse.jdt.internal.core.JavaProject
            aload 12 /* potentialSubtypes */
            aload 8 /* workingCopies */
            aload 2 /* localTypes */
            aload 13 /* loopMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.buildForProject:(Lorg/eclipse/jdt/internal/core/JavaProject;Ljava/util/ArrayList;[Lorg/eclipse/jdt/core/ICompilationUnit;Ljava/util/HashSet;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        98: .line 394
            goto 100
      StackMap locals:
      StackMap stack: org.eclipse.jdt.core.JavaModelException
        99: pop
       100: .line 400
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            aload 5 /* focusType */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.contains:(Lorg/eclipse/jdt/core/IType;)Z
            ifne 106
       101: .line 401
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            aload 5 /* focusType */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.addRootClass:(Lorg/eclipse/jdt/core/IType;)V
        end local 15 // org.eclipse.jdt.core.IJavaProject currentProject
        end local 14 // org.eclipse.jdt.internal.core.util.HandleFactory factory
        end local 13 // org.eclipse.core.runtime.SubMonitor loopMonitor
       102: .line 403
            goto 106
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder java.lang.String[] java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.core.IType java.util.HashMap top org.eclipse.jdt.core.ICompilationUnit[] int org.eclipse.jdt.internal.core.Openable java.lang.String java.util.ArrayList
      StackMap stack: java.lang.Throwable
       103: astore 23
       104: .line 404
            aload 3 /* monitor */
            invokestatic org.eclipse.core.runtime.SubMonitor.done:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
       105: .line 405
            aload 23
            athrow
       106: .line 404
      StackMap locals:
      StackMap stack:
            aload 3 /* monitor */
            invokestatic org.eclipse.core.runtime.SubMonitor.done:(Lorg/eclipse/core/runtime/IProgressMonitor;)V
       107: .line 406
            return
        end local 12 // java.util.ArrayList potentialSubtypes
        end local 11 // java.lang.String focusPath
        end local 10 // org.eclipse.jdt.internal.core.Openable focusCU
        end local 9 // int length
        end local 8 // org.eclipse.jdt.core.ICompilationUnit[] workingCopies
        end local 6 // java.util.HashMap wcPaths
        end local 5 // org.eclipse.jdt.core.IType focusType
        end local 4 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 3 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 2 // java.util.HashSet localTypes
        end local 1 // java.lang.String[] allPotentialSubTypes
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0  108     0                     this  Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder;
            0  108     1     allPotentialSubTypes  [Ljava/lang/String;
            0  108     2               localTypes  Ljava/util/HashSet;
            0  108     3                  monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1  108     4               subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            2  108     5                focusType  Lorg/eclipse/jdt/core/IType;
            3  108     6                  wcPaths  Ljava/util/HashMap;
            5   18     7                 wcLength  I
            4  108     8            workingCopies  [Lorg/eclipse/jdt/core/ICompilationUnit;
            7   18     9                 newPaths  [Ljava/lang/String;
            8   15    10                        i  I
           10   13    11              workingCopy  Lorg/eclipse/jdt/core/ICompilationUnit;
           11   13    12                     path  Ljava/lang/String;
           16   18    10  potentialSubtypesLength  I
           19  108     9                   length  I
           20  108    10                  focusCU  Lorg/eclipse/jdt/internal/core/Openable;
           21  108    11                focusPath  Ljava/lang/String;
           32  108    12        potentialSubtypes  Ljava/util/ArrayList;
           33  102    13              loopMonitor  Lorg/eclipse/core/runtime/SubMonitor;
           34  102    14                  factory  Lorg/eclipse/jdt/internal/core/util/HandleFactory;
           35  102    15           currentProject  Lorg/eclipse/jdt/core/IJavaProject;
           36   79    16                        i  I
           39   77    17              nextProject  Lorg/eclipse/jdt/core/IJavaProject;
           40   66    18             resourcePath  Ljava/lang/String;
           47   48    19                   handle  Lorg/eclipse/jdt/internal/core/Openable;
           52   66    19                   handle  Lorg/eclipse/jdt/internal/core/Openable;
           45   66    20              workingCopy  Lorg/eclipse/jdt/core/ICompilationUnit;
           57   66    21                  project  Lorg/eclipse/jdt/core/IJavaProject;
      Exception table:
        from    to  target  type
          39    41      67  Class org.eclipse.jdt.core.JavaModelException
          44    53      67  Class org.eclipse.jdt.core.JavaModelException
          56    66      67  Class org.eclipse.jdt.core.JavaModelException
          39    41      71  any
          44    53      71  any
          56    68      71  any
          80    87      88  Class org.eclipse.jdt.core.JavaModelException
          91    98      99  Class org.eclipse.jdt.core.JavaModelException
          32   103     103  any
    MethodParameters:
                      Name  Flags
      allPotentialSubTypes  
      localTypes            
      monitor               

  protected org.eclipse.jdt.internal.compiler.env.ICompilationUnit createCompilationUnitFromPath(org.eclipse.jdt.internal.core.Openable, org.eclipse.core.resources.IFile, char[]);
    descriptor: (Lorg/eclipse/jdt/internal/core/Openable;Lorg/eclipse/core/resources/IFile;[C)Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
        start local 1 // org.eclipse.jdt.internal.core.Openable handle
        start local 2 // org.eclipse.core.resources.IFile file
        start local 3 // char[] moduleName
         0: .line 409
            aload 0 /* this */
            aload 1 /* handle */
            aload 2 /* file */
            aload 3 /* moduleName */
            invokespecial org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder.createCompilationUnitFromPath:(Lorg/eclipse/jdt/internal/core/Openable;Lorg/eclipse/core/resources/IFile;[C)Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;
            astore 4 /* unit */
        start local 4 // org.eclipse.jdt.internal.compiler.env.ICompilationUnit unit
         1: .line 410
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.cuToHandle:Ljava/util/Map;
            aload 4 /* unit */
            aload 1 /* handle */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 411
            aload 4 /* unit */
            areturn
        end local 4 // org.eclipse.jdt.internal.compiler.env.ICompilationUnit unit
        end local 3 // char[] moduleName
        end local 2 // org.eclipse.core.resources.IFile file
        end local 1 // org.eclipse.jdt.internal.core.Openable handle
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder;
            0    3     1      handle  Lorg/eclipse/jdt/internal/core/Openable;
            0    3     2        file  Lorg/eclipse/core/resources/IFile;
            0    3     3  moduleName  [C
            1    3     4        unit  Lorg/eclipse/jdt/internal/compiler/env/ICompilationUnit;
    MethodParameters:
            Name  Flags
      handle      
      file        
      moduleName  

  protected org.eclipse.jdt.internal.compiler.env.IBinaryType createInfoFromClassFile(org.eclipse.jdt.internal.core.Openable, org.eclipse.core.resources.IResource);
    descriptor: (Lorg/eclipse/jdt/internal/core/Openable;Lorg/eclipse/core/resources/IResource;)Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
        start local 1 // org.eclipse.jdt.internal.core.Openable classFile
        start local 2 // org.eclipse.core.resources.IResource file
         0: .line 415
            aload 1 /* classFile */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            astore 3 /* documentPath */
        start local 3 // java.lang.String documentPath
         1: .line 416
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.binariesFromIndexMatches:Ljava/util/Map;
            aload 3 /* documentPath */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.env.IBinaryType
            astore 4 /* binaryType */
        start local 4 // org.eclipse.jdt.internal.compiler.env.IBinaryType binaryType
         2: .line 417
            aload 4 /* binaryType */
            ifnull 5
         3: .line 418
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.infoToHandle:Ljava/util/Map;
            aload 4 /* binaryType */
            aload 1 /* classFile */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 419
            aload 4 /* binaryType */
            areturn
         5: .line 421
      StackMap locals: java.lang.String org.eclipse.jdt.internal.compiler.env.IBinaryType
      StackMap stack:
            aload 0 /* this */
            aload 1 /* classFile */
            aload 2 /* file */
            invokespecial org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder.createInfoFromClassFile:(Lorg/eclipse/jdt/internal/core/Openable;Lorg/eclipse/core/resources/IResource;)Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
            areturn
        end local 4 // org.eclipse.jdt.internal.compiler.env.IBinaryType binaryType
        end local 3 // java.lang.String documentPath
        end local 2 // org.eclipse.core.resources.IResource file
        end local 1 // org.eclipse.jdt.internal.core.Openable classFile
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder;
            0    6     1     classFile  Lorg/eclipse/jdt/internal/core/Openable;
            0    6     2          file  Lorg/eclipse/core/resources/IResource;
            1    6     3  documentPath  Ljava/lang/String;
            2    6     4    binaryType  Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
    MethodParameters:
           Name  Flags
      classFile  
      file       

  protected org.eclipse.jdt.internal.compiler.env.IBinaryType createInfoFromClassFileInJar(org.eclipse.jdt.internal.core.Openable);
    descriptor: (Lorg/eclipse/jdt/internal/core/Openable;)Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
        start local 1 // org.eclipse.jdt.internal.core.Openable classFile
         0: .line 426
            new java.lang.StringBuilder
            dup
            aload 1 /* classFile */
            checkcast org.eclipse.jdt.internal.core.ClassFile
            invokevirtual org.eclipse.jdt.internal.core.ClassFile.getType:()Lorg/eclipse/jdt/core/IType;
            bipush 36
            invokeinterface org.eclipse.jdt.core.IType.getFullyQualifiedName:(C)Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* filePath */
        start local 2 // java.lang.String filePath
         1: .line 427
            aload 1 /* classFile */
            invokevirtual org.eclipse.jdt.internal.core.Openable.getPackageFragmentRoot:()Lorg/eclipse/jdt/internal/core/PackageFragmentRoot;
            astore 3 /* root */
        start local 3 // org.eclipse.jdt.core.IPackageFragmentRoot root
         2: .line 428
            aload 3 /* root */
            invokeinterface org.eclipse.jdt.core.IPackageFragmentRoot.getPath:()Lorg/eclipse/core/runtime/IPath;
            astore 4 /* path */
        start local 4 // org.eclipse.core.runtime.IPath path
         3: .line 430
            aload 4 /* path */
            invokeinterface org.eclipse.core.runtime.IPath.getDevice:()Ljava/lang/String;
            ifnonnull 4
            aload 4 /* path */
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            goto 5
      StackMap locals: java.lang.String org.eclipse.jdt.core.IPackageFragmentRoot org.eclipse.core.runtime.IPath
      StackMap stack:
         4: aload 4 /* path */
            invokeinterface org.eclipse.core.runtime.IPath.toOSString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         5: astore 5 /* rootPath */
        start local 5 // java.lang.String rootPath
         6: .line 431
            aload 3 /* root */
            invokeinterface org.eclipse.jdt.core.IPackageFragmentRoot.getModuleDescription:()Lorg/eclipse/jdt/core/IModuleDescription;
            astore 6 /* md */
        start local 6 // org.eclipse.jdt.core.IModuleDescription md
         7: .line 433
            aload 6 /* md */
            ifnull 13
         8: .line 434
            aload 6 /* md */
            invokeinterface org.eclipse.jdt.core.IModuleDescription.getElementName:()Ljava/lang/String;
            astore 8 /* module */
        start local 8 // java.lang.String module
         9: .line 435
            new java.lang.StringBuilder
            dup
            aload 5 /* rootPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 436
            aload 8 /* module */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "|"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* filePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 435
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* documentPath */
        end local 8 // java.lang.String module
        start local 7 // java.lang.String documentPath
        12: .line 437
            goto 14
        end local 7 // java.lang.String documentPath
        13: .line 438
      StackMap locals: java.lang.String org.eclipse.jdt.core.IModuleDescription
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 5 /* rootPath */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "|"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* filePath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 7 /* documentPath */
        start local 7 // java.lang.String documentPath
        14: .line 440
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.binariesFromIndexMatches:Ljava/util/Map;
            aload 7 /* documentPath */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.env.IBinaryType
            astore 8 /* binaryType */
        start local 8 // org.eclipse.jdt.internal.compiler.env.IBinaryType binaryType
        15: .line 441
            aload 8 /* binaryType */
            ifnull 18
        16: .line 442
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.infoToHandle:Ljava/util/Map;
            aload 8 /* binaryType */
            aload 1 /* classFile */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 443
            aload 8 /* binaryType */
            areturn
        18: .line 445
      StackMap locals: org.eclipse.jdt.internal.compiler.env.IBinaryType
      StackMap stack:
            aload 0 /* this */
            aload 1 /* classFile */
            invokespecial org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder.createInfoFromClassFileInJar:(Lorg/eclipse/jdt/internal/core/Openable;)Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
            areturn
        end local 8 // org.eclipse.jdt.internal.compiler.env.IBinaryType binaryType
        end local 7 // java.lang.String documentPath
        end local 6 // org.eclipse.jdt.core.IModuleDescription md
        end local 5 // java.lang.String rootPath
        end local 4 // org.eclipse.core.runtime.IPath path
        end local 3 // org.eclipse.jdt.core.IPackageFragmentRoot root
        end local 2 // java.lang.String filePath
        end local 1 // org.eclipse.jdt.internal.core.Openable classFile
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder;
            0   19     1     classFile  Lorg/eclipse/jdt/internal/core/Openable;
            1   19     2      filePath  Ljava/lang/String;
            2   19     3          root  Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            3   19     4          path  Lorg/eclipse/core/runtime/IPath;
            6   19     5      rootPath  Ljava/lang/String;
            7   19     6            md  Lorg/eclipse/jdt/core/IModuleDescription;
           12   13     7  documentPath  Ljava/lang/String;
           14   19     7  documentPath  Ljava/lang/String;
            9   12     8        module  Ljava/lang/String;
           15   19     8    binaryType  Lorg/eclipse/jdt/internal/compiler/env/IBinaryType;
    MethodParameters:
           Name  Flags
      classFile  

  private java.lang.String[] determinePossibleSubTypes(java.util.HashSet, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Ljava/util/HashSet;Lorg/eclipse/core/runtime/IProgressMonitor;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
        start local 1 // java.util.HashSet localTypes
        start local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 463
            new org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1PathCollector
            dup
            aload 0 /* this */
            aload 1 /* localTypes */
            invokespecial org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1PathCollector.<init>:(Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder;Ljava/util/HashSet;)V
            astore 3 /* collector */
        start local 3 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1PathCollector collector
         1: .line 466
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.getType:()Lorg/eclipse/jdt/core/IType;
         2: .line 467
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.scope:Lorg/eclipse/jdt/core/search/IJavaSearchScope;
         3: .line 468
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.binariesFromIndexMatches:Ljava/util/Map;
         4: .line 469
            aload 3 /* collector */
         5: .line 470
            iconst_3
         6: .line 471
            aload 2 /* monitor */
         7: .line 465
            invokestatic org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.searchAllPossibleSubTypes:(Lorg/eclipse/jdt/core/IType;Lorg/eclipse/jdt/core/search/IJavaSearchScope;Ljava/util/Map;Lorg/eclipse/jdt/internal/core/IPathRequestor;ILorg/eclipse/core/runtime/IProgressMonitor;)V
         8: .line 473
            aload 3 /* collector */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1PathCollector.paths:Ljava/util/HashSet;
            astore 4 /* paths */
        start local 4 // java.util.HashSet paths
         9: .line 474
            aload 4 /* paths */
            invokevirtual java.util.HashSet.size:()I
            istore 5 /* length */
        start local 5 // int length
        10: .line 475
            iload 5 /* length */
            anewarray java.lang.String
            astore 6 /* result */
        start local 6 // java.lang.String[] result
        11: .line 476
            iconst_0
            istore 7 /* count */
        start local 7 // int count
        12: .line 477
            aload 4 /* paths */
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 8 /* iter */
        start local 8 // java.util.Iterator iter
        13: goto 15
        14: .line 478
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder java.util.HashSet org.eclipse.core.runtime.IProgressMonitor org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1PathCollector java.util.HashSet int java.lang.String[] int java.util.Iterator
      StackMap stack:
            aload 6 /* result */
            iload 7 /* count */
            iinc 7 /* count */ 1
            aload 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            aastore
        15: .line 477
      StackMap locals:
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 8 // java.util.Iterator iter
        16: .line 480
            aload 6 /* result */
            areturn
        end local 7 // int count
        end local 6 // java.lang.String[] result
        end local 5 // int length
        end local 4 // java.util.HashSet paths
        end local 3 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1PathCollector collector
        end local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 1 // java.util.HashSet localTypes
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder;
            0   17     1  localTypes  Ljava/util/HashSet;
            0   17     2     monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   17     3   collector  Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder$1PathCollector;
            9   17     4       paths  Ljava/util/HashSet;
           10   17     5      length  I
           11   17     6      result  [Ljava/lang/String;
           12   17     7       count  I
           13   16     8        iter  Ljava/util/Iterator;
    MethodParameters:
            Name  Flags
      localTypes  final
      monitor     

  public static void searchAllPossibleSubTypes(org.eclipse.jdt.core.IType, org.eclipse.jdt.core.search.IJavaSearchScope, java.util.Map, org.eclipse.jdt.internal.core.IPathRequestor, int, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/jdt/core/IType;Lorg/eclipse/jdt/core/search/IJavaSearchScope;Ljava/util/Map;Lorg/eclipse/jdt/internal/core/IPathRequestor;ILorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // org.eclipse.jdt.core.IType type
        start local 1 // org.eclipse.jdt.core.search.IJavaSearchScope scope
        start local 2 // java.util.Map binariesFromIndexMatches
        start local 3 // org.eclipse.jdt.internal.core.IPathRequestor pathRequestor
        start local 4 // int waitingPolicy
        start local 5 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 506
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.isEnabled:()Z
            ifeq 9
         1: .line 507
            aload 5 /* monitor */
            iconst_2
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 6 /* subMonitor */
        start local 6 // org.eclipse.core.runtime.SubMonitor subMonitor
         2: .line 508
            aload 0 /* type */
            aload 1 /* scope */
            aload 2 /* binariesFromIndexMatches */
            aload 3 /* pathRequestor */
            iload 4 /* waitingPolicy */
         3: .line 509
            aload 6 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
         4: .line 508
            invokestatic org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.newSearchAllPossibleSubTypes:(Lorg/eclipse/jdt/core/IType;Lorg/eclipse/jdt/core/search/IJavaSearchScope;Ljava/util/Map;Lorg/eclipse/jdt/internal/core/IPathRequestor;ILorg/eclipse/core/runtime/IProgressMonitor;)V
         5: .line 510
            aload 0 /* type */
            aload 1 /* scope */
            invokestatic org.eclipse.jdt.internal.core.search.UnindexedSearchScope.filterEntriesCoveredByTheNewIndex:(Lorg/eclipse/jdt/core/search/IJavaSearchScope;)Lorg/eclipse/jdt/core/search/IJavaSearchScope;
         6: .line 511
            aload 2 /* binariesFromIndexMatches */
            aload 3 /* pathRequestor */
            iload 4 /* waitingPolicy */
            aload 6 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
         7: .line 510
            invokestatic org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.legacySearchAllPossibleSubTypes:(Lorg/eclipse/jdt/core/IType;Lorg/eclipse/jdt/core/search/IJavaSearchScope;Ljava/util/Map;Lorg/eclipse/jdt/internal/core/IPathRequestor;ILorg/eclipse/core/runtime/IProgressMonitor;)V
        end local 6 // org.eclipse.core.runtime.SubMonitor subMonitor
         8: .line 512
            goto 12
         9: .line 513
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            aload 1 /* scope */
            aload 2 /* binariesFromIndexMatches */
            aload 3 /* pathRequestor */
            iload 4 /* waitingPolicy */
        10: .line 514
            aload 5 /* monitor */
        11: .line 513
            invokestatic org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.legacySearchAllPossibleSubTypes:(Lorg/eclipse/jdt/core/IType;Lorg/eclipse/jdt/core/search/IJavaSearchScope;Ljava/util/Map;Lorg/eclipse/jdt/internal/core/IPathRequestor;ILorg/eclipse/core/runtime/IProgressMonitor;)V
        12: .line 516
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 4 // int waitingPolicy
        end local 3 // org.eclipse.jdt.internal.core.IPathRequestor pathRequestor
        end local 2 // java.util.Map binariesFromIndexMatches
        end local 1 // org.eclipse.jdt.core.search.IJavaSearchScope scope
        end local 0 // org.eclipse.jdt.core.IType type
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   13     0                      type  Lorg/eclipse/jdt/core/IType;
            0   13     1                     scope  Lorg/eclipse/jdt/core/search/IJavaSearchScope;
            0   13     2  binariesFromIndexMatches  Ljava/util/Map;
            0   13     3             pathRequestor  Lorg/eclipse/jdt/internal/core/IPathRequestor;
            0   13     4             waitingPolicy  I
            0   13     5                   monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            2    8     6                subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
    MethodParameters:
                          Name  Flags
      type                      
      scope                     
      binariesFromIndexMatches  final
      pathRequestor             final
      waitingPolicy             
      monitor                   final

  private static void newSearchAllPossibleSubTypes(org.eclipse.jdt.core.IType, org.eclipse.jdt.core.search.IJavaSearchScope, java.util.Map, org.eclipse.jdt.internal.core.IPathRequestor, int, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/jdt/core/IType;Lorg/eclipse/jdt/core/search/IJavaSearchScope;Ljava/util/Map;Lorg/eclipse/jdt/internal/core/IPathRequestor;ILorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=24, args_size=6
        start local 0 // org.eclipse.jdt.core.IType type
        start local 1 // org.eclipse.jdt.core.search.IJavaSearchScope scope2
        start local 2 // java.util.Map binariesFromIndexMatches2
        start local 3 // org.eclipse.jdt.internal.core.IPathRequestor pathRequestor
        start local 4 // int waitingPolicy
        start local 5 // org.eclipse.core.runtime.IProgressMonitor progressMonitor
         0: .line 520
            aload 5 /* progressMonitor */
            iconst_2
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 6 /* subMonitor */
        start local 6 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 521
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaIndex.getIndex:()Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            astore 7 /* index */
        start local 7 // org.eclipse.jdt.internal.core.nd.java.JavaIndex index
         2: .line 523
            invokestatic org.eclipse.jdt.internal.core.nd.indexer.Indexer.getInstance:()Lorg/eclipse/jdt/internal/core/nd/indexer/Indexer;
            iload 4 /* waitingPolicy */
            aload 6 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.nd.indexer.Indexer.waitForIndex:(ILorg/eclipse/core/runtime/IProgressMonitor;)V
         3: .line 525
            aload 7 /* index */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.getNd:()Lorg/eclipse/jdt/internal/core/nd/Nd;
            astore 8 /* nd */
        start local 8 // org.eclipse.jdt.internal.core.nd.Nd nd
         4: .line 526
            aload 0 /* type */
            invokeinterface org.eclipse.jdt.core.IType.getFullyQualifiedName:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaNames.fullyQualifiedNameToFieldDescriptor:([C)[C
            astore 9 /* fieldDefinition */
        start local 9 // char[] fieldDefinition
         5: .line 528
            invokestatic org.eclipse.core.resources.ResourcesPlugin.getWorkspace:()Lorg/eclipse/core/resources/IWorkspace;
            invokeinterface org.eclipse.core.resources.IWorkspace.getRoot:()Lorg/eclipse/core/resources/IWorkspaceRoot;
            astore 10 /* root */
        start local 10 // org.eclipse.core.resources.IWorkspaceRoot root
         6: .line 530
            aconst_null
            astore 11
            aconst_null
            astore 12
         7: aload 8 /* nd */
            invokevirtual org.eclipse.jdt.internal.core.nd.Nd.acquireReadLock:()Lorg/eclipse/jdt/internal/core/nd/IReader;
            astore 13 /* reader */
        start local 13 // org.eclipse.jdt.internal.core.nd.IReader reader
         8: .line 531
            aload 7 /* index */
            aload 9 /* fieldDefinition */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.JavaIndex.findType:([C)Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            astore 14 /* foundType */
        start local 14 // org.eclipse.jdt.internal.core.nd.java.NdTypeId foundType
         9: .line 533
            aload 14 /* foundType */
            ifnonnull 12
        10: .line 568
            aload 13 /* reader */
            ifnull 11
            aload 13 /* reader */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
        11: .line 534
      StackMap locals: org.eclipse.jdt.core.IType org.eclipse.jdt.core.search.IJavaSearchScope java.util.Map org.eclipse.jdt.internal.core.IPathRequestor int org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex org.eclipse.jdt.internal.core.nd.Nd char[] org.eclipse.core.resources.IWorkspaceRoot java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader org.eclipse.jdt.internal.core.nd.java.NdTypeId
      StackMap stack:
            return
        12: .line 537
      StackMap locals:
      StackMap stack:
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 15 /* typesToVisit */
        start local 15 // java.util.ArrayDeque typesToVisit
        13: .line 538
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 16 /* discoveredTypes */
        start local 16 // java.util.Set discoveredTypes
        14: .line 539
            aload 15 /* typesToVisit */
            aload 14 /* foundType */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeId.getTypes:()Ljava/util/List;
            invokevirtual java.util.ArrayDeque.addAll:(Ljava/util/Collection;)Z
            pop
        15: .line 540
            aload 16 /* discoveredTypes */
            aload 15 /* typesToVisit */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        16: .line 542
            goto 36
        17: .line 543
      StackMap locals: java.util.ArrayDeque java.util.Set
      StackMap stack:
            aload 15 /* typesToVisit */
            invokevirtual java.util.ArrayDeque.removeFirst:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdType
            astore 17 /* nextType */
        start local 17 // org.eclipse.jdt.internal.core.nd.java.NdType nextType
        18: .line 544
            aload 17 /* nextType */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getTypeId:()Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            astore 18 /* typeId */
        start local 18 // org.eclipse.jdt.internal.core.nd.java.NdTypeId typeId
        19: .line 546
            new java.lang.String
            dup
            aload 17 /* nextType */
            aload 10 /* root */
            invokestatic org.eclipse.jdt.internal.core.nd.java.JavaNames.getIndexPathFor:(Lorg/eclipse/jdt/internal/core/nd/java/NdType;Lorg/eclipse/core/resources/IWorkspaceRoot;)[C
            invokespecial java.lang.String.<init>:([C)V
            astore 19 /* typePath */
        start local 19 // java.lang.String typePath
        20: .line 547
            aload 1 /* scope2 */
            aload 19 /* typePath */
            invokeinterface org.eclipse.jdt.core.search.IJavaSearchScope.encloses:(Ljava/lang/String;)Z
            ifne 22
        21: .line 548
            goto 36
        22: .line 551
      StackMap locals: org.eclipse.jdt.internal.core.nd.java.NdType org.eclipse.jdt.internal.core.nd.java.NdTypeId java.lang.String
      StackMap stack:
            aload 6 /* subMonitor */
            aload 15 /* typesToVisit */
            invokevirtual java.util.ArrayDeque.size:()I
            sipush 3000
            invokestatic java.lang.Math.max:(II)I
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        23: .line 553
            aload 17 /* nextType */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.isLocal:()Z
            ifne 24
            aload 17 /* nextType */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.isAnonymous:()Z
            ifne 24
            iconst_0
            goto 25
      StackMap locals:
      StackMap stack:
        24: iconst_1
      StackMap locals:
      StackMap stack: int
        25: istore 20 /* isLocalClass */
        start local 20 // boolean isLocalClass
        26: .line 554
            aload 3 /* pathRequestor */
            aload 19 /* typePath */
            iload 20 /* isLocalClass */
            invokeinterface org.eclipse.jdt.internal.core.IPathRequestor.acceptPath:(Ljava/lang/String;Z)V
        27: .line 556
            aload 2 /* binariesFromIndexMatches2 */
            aload 19 /* typePath */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType
            astore 21 /* binaryType */
        start local 21 // org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType binaryType
        28: .line 557
            aload 21 /* binaryType */
            ifnonnull 31
        29: .line 558
            aload 17 /* nextType */
            invokestatic org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder.createBinaryTypeFrom:(Lorg/eclipse/jdt/internal/core/nd/java/NdType;)Lorg/eclipse/jdt/internal/core/hierarchy/HierarchyBinaryType;
            astore 21 /* binaryType */
        30: .line 559
            aload 2 /* binariesFromIndexMatches2 */
            aload 19 /* typePath */
            aload 21 /* binaryType */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        31: .line 562
      StackMap locals: int org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType
      StackMap stack:
            aload 18 /* typeId */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeId.getSubTypes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 23
            goto 35
      StackMap locals: org.eclipse.jdt.core.IType org.eclipse.jdt.core.search.IJavaSearchScope java.util.Map org.eclipse.jdt.internal.core.IPathRequestor int org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex org.eclipse.jdt.internal.core.nd.Nd char[] org.eclipse.core.resources.IWorkspaceRoot java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader org.eclipse.jdt.internal.core.nd.java.NdTypeId java.util.ArrayDeque java.util.Set org.eclipse.jdt.internal.core.nd.java.NdType org.eclipse.jdt.internal.core.nd.java.NdTypeId java.lang.String int org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType top java.util.Iterator
      StackMap stack:
        32: aload 23
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdType
            astore 22 /* subType */
        start local 22 // org.eclipse.jdt.internal.core.nd.java.NdType subType
        33: .line 563
            aload 16 /* discoveredTypes */
            aload 22 /* subType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 35
        34: .line 564
            aload 15 /* typesToVisit */
            aload 22 /* subType */
            invokevirtual java.util.ArrayDeque.add:(Ljava/lang/Object;)Z
            pop
        end local 22 // org.eclipse.jdt.internal.core.nd.java.NdType subType
        35: .line 562
      StackMap locals:
      StackMap stack:
            aload 23
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        end local 21 // org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType binaryType
        end local 20 // boolean isLocalClass
        end local 19 // java.lang.String typePath
        end local 18 // org.eclipse.jdt.internal.core.nd.java.NdTypeId typeId
        end local 17 // org.eclipse.jdt.internal.core.nd.java.NdType nextType
        36: .line 542
      StackMap locals: org.eclipse.jdt.core.IType org.eclipse.jdt.core.search.IJavaSearchScope java.util.Map org.eclipse.jdt.internal.core.IPathRequestor int org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex org.eclipse.jdt.internal.core.nd.Nd char[] org.eclipse.core.resources.IWorkspaceRoot java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader org.eclipse.jdt.internal.core.nd.java.NdTypeId java.util.ArrayDeque java.util.Set
      StackMap stack:
            aload 15 /* typesToVisit */
            invokevirtual java.util.ArrayDeque.isEmpty:()Z
            ifeq 17
        end local 16 // java.util.Set discoveredTypes
        end local 15 // java.util.ArrayDeque typesToVisit
        end local 14 // org.eclipse.jdt.internal.core.nd.java.NdTypeId foundType
        37: .line 568
            aload 13 /* reader */
            ifnull 43
            aload 13 /* reader */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
            goto 43
      StackMap locals: org.eclipse.jdt.core.IType org.eclipse.jdt.core.search.IJavaSearchScope java.util.Map org.eclipse.jdt.internal.core.IPathRequestor int org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.nd.java.JavaIndex org.eclipse.jdt.internal.core.nd.Nd char[] org.eclipse.core.resources.IWorkspaceRoot java.lang.Throwable java.lang.Throwable org.eclipse.jdt.internal.core.nd.IReader
      StackMap stack: java.lang.Throwable
        38: astore 11
            aload 13 /* reader */
            ifnull 39
            aload 13 /* reader */
            invokeinterface org.eclipse.jdt.internal.core.nd.IReader.close:()V
        end local 13 // org.eclipse.jdt.internal.core.nd.IReader reader
      StackMap locals:
      StackMap stack:
        39: aload 11
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        40: astore 12
            aload 11
            ifnonnull 41
            aload 12
            astore 11
            goto 42
      StackMap locals:
      StackMap stack:
        41: aload 11
            aload 12
            if_acmpeq 42
            aload 11
            aload 12
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        42: aload 11
            athrow
        43: .line 569
      StackMap locals:
      StackMap stack:
            return
        end local 10 // org.eclipse.core.resources.IWorkspaceRoot root
        end local 9 // char[] fieldDefinition
        end local 8 // org.eclipse.jdt.internal.core.nd.Nd nd
        end local 7 // org.eclipse.jdt.internal.core.nd.java.JavaIndex index
        end local 6 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 5 // org.eclipse.core.runtime.IProgressMonitor progressMonitor
        end local 4 // int waitingPolicy
        end local 3 // org.eclipse.jdt.internal.core.IPathRequestor pathRequestor
        end local 2 // java.util.Map binariesFromIndexMatches2
        end local 1 // org.eclipse.jdt.core.search.IJavaSearchScope scope2
        end local 0 // org.eclipse.jdt.core.IType type
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   44     0                       type  Lorg/eclipse/jdt/core/IType;
            0   44     1                     scope2  Lorg/eclipse/jdt/core/search/IJavaSearchScope;
            0   44     2  binariesFromIndexMatches2  Ljava/util/Map;
            0   44     3              pathRequestor  Lorg/eclipse/jdt/internal/core/IPathRequestor;
            0   44     4              waitingPolicy  I
            0   44     5            progressMonitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   44     6                 subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            2   44     7                      index  Lorg/eclipse/jdt/internal/core/nd/java/JavaIndex;
            4   44     8                         nd  Lorg/eclipse/jdt/internal/core/nd/Nd;
            5   44     9            fieldDefinition  [C
            6   44    10                       root  Lorg/eclipse/core/resources/IWorkspaceRoot;
            8   39    13                     reader  Lorg/eclipse/jdt/internal/core/nd/IReader;
            9   37    14                  foundType  Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
           13   37    15               typesToVisit  Ljava/util/ArrayDeque<Lorg/eclipse/jdt/internal/core/nd/java/NdType;>;
           14   37    16            discoveredTypes  Ljava/util/Set<Lorg/eclipse/jdt/internal/core/nd/java/NdType;>;
           18   36    17                   nextType  Lorg/eclipse/jdt/internal/core/nd/java/NdType;
           19   36    18                     typeId  Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
           20   36    19                   typePath  Ljava/lang/String;
           26   36    20               isLocalClass  Z
           28   36    21                 binaryType  Lorg/eclipse/jdt/internal/core/hierarchy/HierarchyBinaryType;
           33   35    22                    subType  Lorg/eclipse/jdt/internal/core/nd/java/NdType;
      Exception table:
        from    to  target  type
           8    10      38  any
          12    37      38  any
           7    11      40  any
          12    40      40  any
    MethodParameters:
                           Name  Flags
      type                       
      scope2                     
      binariesFromIndexMatches2  
      pathRequestor              
      waitingPolicy              
      progressMonitor            

  private static org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType createBinaryTypeFrom(org.eclipse.jdt.internal.core.nd.java.NdType);
    descriptor: (Lorg/eclipse/jdt/internal/core/nd/java/NdType;)Lorg/eclipse/jdt/internal/core/hierarchy/HierarchyBinaryType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.nd.java.NdType type
         0: .line 572
            aconst_null
            astore 1 /* enclosingTypeName */
        start local 1 // char[] enclosingTypeName
         1: .line 573
            aload 0 /* type */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getDeclaringType:()Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            astore 2 /* enclosingType */
        start local 2 // org.eclipse.jdt.internal.core.nd.java.NdTypeSignature enclosingType
         2: .line 574
            aload 2 /* enclosingType */
            ifnull 4
         3: .line 575
            aload 2 /* enclosingType */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeSignature.getRawType:()Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeId.getBinaryName:()[C
            astore 1 /* enclosingTypeName */
         4: .line 577
      StackMap locals: char[] org.eclipse.jdt.internal.core.nd.java.NdTypeSignature
      StackMap stack:
            aload 0 /* type */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getTypeParameterSignatures:()[[C
            astore 3 /* typeParameters */
        start local 3 // char[][] typeParameters
         5: .line 578
            aload 0 /* type */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getTypeId:()Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            astore 4 /* typeId */
        start local 4 // org.eclipse.jdt.internal.core.nd.java.NdTypeId typeId
         6: .line 579
            new org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType
            dup
            aload 0 /* type */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getModifiers:()I
            aload 4 /* typeId */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeId.getBinaryName:()[C
         7: .line 580
            aload 0 /* type */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getSourceName:()[C
            aload 1 /* enclosingTypeName */
            aload 3 /* typeParameters */
            arraylength
            ifne 8
            aconst_null
            goto 9
      StackMap locals: org.eclipse.jdt.internal.core.nd.java.NdType char[] org.eclipse.jdt.internal.core.nd.java.NdTypeSignature char[][] org.eclipse.jdt.internal.core.nd.java.NdTypeId
      StackMap stack: new 6 new 6 int char[] char[] char[]
         8: aload 3 /* typeParameters */
         9: .line 579
      StackMap locals: org.eclipse.jdt.internal.core.nd.java.NdType char[] org.eclipse.jdt.internal.core.nd.java.NdTypeSignature char[][] org.eclipse.jdt.internal.core.nd.java.NdTypeId
      StackMap stack: new 6 new 6 int char[] char[] char[] char[][]
            invokespecial org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType.<init>:(I[C[C[C[[C)V
            astore 5 /* result */
        start local 5 // org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType result
        10: .line 582
            aload 0 /* type */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getSuperclass:()Lorg/eclipse/jdt/internal/core/nd/java/NdTypeSignature;
            astore 6 /* superClass */
        start local 6 // org.eclipse.jdt.internal.core.nd.java.NdTypeSignature superClass
        11: .line 583
            aload 6 /* superClass */
            ifnull 13
        12: .line 584
            aload 5 /* result */
            aload 6 /* superClass */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeSignature.getRawType:()Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeId.getBinaryName:()[C
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType.recordSuperclass:([C)V
        13: .line 587
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType org.eclipse.jdt.internal.core.nd.java.NdTypeSignature
      StackMap stack:
            aload 0 /* type */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdType.getInterfaces:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 16
      StackMap locals: org.eclipse.jdt.internal.core.nd.java.NdType char[] org.eclipse.jdt.internal.core.nd.java.NdTypeSignature char[][] org.eclipse.jdt.internal.core.nd.java.NdTypeId org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType org.eclipse.jdt.internal.core.nd.java.NdTypeSignature top java.util.Iterator
      StackMap stack:
        14: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.nd.java.NdTypeInterface
            astore 7 /* interf */
        start local 7 // org.eclipse.jdt.internal.core.nd.java.NdTypeInterface interf
        15: .line 588
            aload 5 /* result */
            aload 7 /* interf */
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeInterface.getInterface:()Lorg/eclipse/jdt/internal/core/nd/java/NdTypeSignature;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeSignature.getRawType:()Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
            invokevirtual org.eclipse.jdt.internal.core.nd.java.NdTypeId.getBinaryName:()[C
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType.recordInterface:([C)V
        end local 7 // org.eclipse.jdt.internal.core.nd.java.NdTypeInterface interf
        16: .line 587
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 590
            aload 5 /* result */
            areturn
        end local 6 // org.eclipse.jdt.internal.core.nd.java.NdTypeSignature superClass
        end local 5 // org.eclipse.jdt.internal.core.hierarchy.HierarchyBinaryType result
        end local 4 // org.eclipse.jdt.internal.core.nd.java.NdTypeId typeId
        end local 3 // char[][] typeParameters
        end local 2 // org.eclipse.jdt.internal.core.nd.java.NdTypeSignature enclosingType
        end local 1 // char[] enclosingTypeName
        end local 0 // org.eclipse.jdt.internal.core.nd.java.NdType type
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   18     0               type  Lorg/eclipse/jdt/internal/core/nd/java/NdType;
            1   18     1  enclosingTypeName  [C
            2   18     2      enclosingType  Lorg/eclipse/jdt/internal/core/nd/java/NdTypeSignature;
            5   18     3     typeParameters  [[C
            6   18     4             typeId  Lorg/eclipse/jdt/internal/core/nd/java/NdTypeId;
           10   18     5             result  Lorg/eclipse/jdt/internal/core/hierarchy/HierarchyBinaryType;
           11   18     6         superClass  Lorg/eclipse/jdt/internal/core/nd/java/NdTypeSignature;
           15   16     7             interf  Lorg/eclipse/jdt/internal/core/nd/java/NdTypeInterface;
    MethodParameters:
      Name  Flags
      type  

  private static void legacySearchAllPossibleSubTypes(org.eclipse.jdt.core.IType, org.eclipse.jdt.core.search.IJavaSearchScope, java.util.Map, org.eclipse.jdt.internal.core.IPathRequestor, int, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/jdt/core/IType;Lorg/eclipse/jdt/core/search/IJavaSearchScope;Ljava/util/Map;Lorg/eclipse/jdt/internal/core/IPathRequestor;ILorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=16, args_size=6
        start local 0 // org.eclipse.jdt.core.IType type
        start local 1 // org.eclipse.jdt.core.search.IJavaSearchScope scope
        start local 2 // java.util.Map binariesFromIndexMatches
        start local 3 // org.eclipse.jdt.internal.core.IPathRequestor pathRequestor
        start local 4 // int waitingPolicy
        start local 5 // org.eclipse.core.runtime.IProgressMonitor progressMonitor
         0: .line 601
            aload 5 /* progressMonitor */
            bipush 100
            invokestatic org.eclipse.core.runtime.SubMonitor.convert:(Lorg/eclipse/core/runtime/IProgressMonitor;I)Lorg/eclipse/core/runtime/SubMonitor;
            astore 6 /* subMonitor */
        start local 6 // org.eclipse.core.runtime.SubMonitor subMonitor
         1: .line 604
            new org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue
            dup
            invokespecial org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue.<init>:()V
            astore 7 /* queue */
        start local 7 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue queue
         2: .line 605
            new org.eclipse.jdt.internal.compiler.util.HashtableOfObject
            dup
            iconst_5
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfObject.<init>:(I)V
            astore 8 /* foundSuperNames */
        start local 8 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject foundSuperNames
         3: .line 607
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getIndexManager:()Lorg/eclipse/jdt/internal/core/search/indexing/IndexManager;
            astore 9 /* indexManager */
        start local 9 // org.eclipse.jdt.internal.core.search.indexing.IndexManager indexManager
         4: .line 610
            new org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$2
            dup
            aload 3 /* pathRequestor */
            aload 2 /* binariesFromIndexMatches */
            aload 8 /* foundSuperNames */
            aload 7 /* queue */
            invokespecial org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$2.<init>:(Lorg/eclipse/jdt/internal/core/IPathRequestor;Ljava/util/Map;Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder$Queue;)V
            astore 10 /* searchRequestor */
        start local 10 // org.eclipse.jdt.internal.core.search.IndexQueryRequestor searchRequestor
         5: .line 651
            aload 0 /* type */
            invokeinterface org.eclipse.jdt.core.IType.isClass:()Z
            ifeq 6
            iconst_2
            goto 7
      StackMap locals: org.eclipse.jdt.core.IType org.eclipse.jdt.core.search.IJavaSearchScope java.util.Map org.eclipse.jdt.internal.core.IPathRequestor int org.eclipse.core.runtime.IProgressMonitor org.eclipse.core.runtime.SubMonitor org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue org.eclipse.jdt.internal.compiler.util.HashtableOfObject org.eclipse.jdt.internal.core.search.indexing.IndexManager org.eclipse.jdt.internal.core.search.IndexQueryRequestor
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: istore 11 /* superRefKind */
        start local 11 // int superRefKind
         8: .line 652
            goto 11
        end local 11 // int superRefKind
      StackMap locals:
      StackMap stack: org.eclipse.jdt.core.JavaModelException
         9: pop
        10: .line 653
            iconst_0
            istore 11 /* superRefKind */
        start local 11 // int superRefKind
        11: .line 656
      StackMap locals: int
      StackMap stack:
            new org.eclipse.jdt.internal.core.search.matching.SuperTypeReferencePattern
            dup
            aconst_null
            aconst_null
            iload 11 /* superRefKind */
            bipush 8
            invokespecial org.eclipse.jdt.internal.core.search.matching.SuperTypeReferencePattern.<init>:([C[CII)V
        12: .line 655
            astore 12 /* pattern */
        start local 12 // org.eclipse.jdt.internal.core.search.matching.SuperTypeReferencePattern pattern
        13: .line 657
            aload 12 /* pattern */
            aload 0 /* type */
            invokestatic org.eclipse.jdt.internal.core.search.matching.MatchLocator.setFocus:(Lorg/eclipse/jdt/core/search/SearchPattern;Lorg/eclipse/jdt/core/IJavaElement;)V
        14: .line 658
            new org.eclipse.jdt.internal.core.search.SubTypeSearchJob
            dup
        15: .line 659
            aload 12 /* pattern */
        16: .line 660
            new org.eclipse.jdt.internal.core.search.JavaSearchParticipant
            dup
            invokespecial org.eclipse.jdt.internal.core.search.JavaSearchParticipant.<init>:()V
        17: .line 661
            aload 1 /* scope */
        18: .line 662
            aload 10 /* searchRequestor */
        19: .line 658
            invokespecial org.eclipse.jdt.internal.core.search.SubTypeSearchJob.<init>:(Lorg/eclipse/jdt/core/search/SearchPattern;Lorg/eclipse/jdt/core/search/SearchParticipant;Lorg/eclipse/jdt/core/search/IJavaSearchScope;Lorg/eclipse/jdt/internal/core/search/IndexQueryRequestor;)V
            astore 13 /* job */
        start local 13 // org.eclipse.jdt.internal.core.search.SubTypeSearchJob job
        20: .line 664
            aload 7 /* queue */
            aload 0 /* type */
            invokeinterface org.eclipse.jdt.core.IType.getElementName:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue.add:([C)V
        21: .line 666
            goto 29
        22: .line 667
      StackMap locals: org.eclipse.jdt.internal.core.search.matching.SuperTypeReferencePattern org.eclipse.jdt.internal.core.search.SubTypeSearchJob
      StackMap stack:
            aload 6 /* subMonitor */
            aload 7 /* queue */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue.end:I
            aload 7 /* queue */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue.start:I
            isub
            iconst_1
            iadd
            bipush 100
            invokestatic java.lang.Math.max:(II)I
            invokevirtual org.eclipse.core.runtime.SubMonitor.setWorkRemaining:(I)Lorg/eclipse/core/runtime/SubMonitor;
            pop
        23: .line 670
            aload 7 /* queue */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue.retrieve:()[C
            astore 14 /* currentTypeName */
        start local 14 // char[] currentTypeName
        24: .line 671
            aload 14 /* currentTypeName */
            getstatic org.eclipse.jdt.internal.core.search.indexing.IIndexConstants.OBJECT:[C
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.equals:([C[C)Z
            ifeq 26
        25: .line 672
            aconst_null
            astore 14 /* currentTypeName */
        26: .line 675
      StackMap locals: char[]
      StackMap stack:
            aload 12 /* pattern */
            aload 14 /* currentTypeName */
            putfield org.eclipse.jdt.internal.core.search.matching.SuperTypeReferencePattern.superSimpleName:[C
        27: .line 676
            aload 9 /* indexManager */
            aload 13 /* job */
            iload 4 /* waitingPolicy */
            aload 6 /* subMonitor */
            iconst_1
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.search.indexing.IndexManager.performConcurrentJob:(Lorg/eclipse/jdt/internal/core/search/processing/IJob;ILorg/eclipse/core/runtime/IProgressMonitor;)Z
            pop
        28: .line 679
            aload 14 /* currentTypeName */
            ifnonnull 29
            goto 34
        end local 14 // char[] currentTypeName
        29: .line 666
      StackMap locals:
      StackMap stack:
            aload 7 /* queue */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue.start:I
            aload 7 /* queue */
            getfield org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue.end:I
            if_icmple 22
        30: .line 681
            goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 15
        32: .line 682
            aload 13 /* job */
            invokevirtual org.eclipse.jdt.internal.core.search.SubTypeSearchJob.finished:()V
        33: .line 683
            aload 15
            athrow
        34: .line 682
      StackMap locals:
      StackMap stack:
            aload 13 /* job */
            invokevirtual org.eclipse.jdt.internal.core.search.SubTypeSearchJob.finished:()V
        35: .line 684
            return
        end local 13 // org.eclipse.jdt.internal.core.search.SubTypeSearchJob job
        end local 12 // org.eclipse.jdt.internal.core.search.matching.SuperTypeReferencePattern pattern
        end local 11 // int superRefKind
        end local 10 // org.eclipse.jdt.internal.core.search.IndexQueryRequestor searchRequestor
        end local 9 // org.eclipse.jdt.internal.core.search.indexing.IndexManager indexManager
        end local 8 // org.eclipse.jdt.internal.compiler.util.HashtableOfObject foundSuperNames
        end local 7 // org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue queue
        end local 6 // org.eclipse.core.runtime.SubMonitor subMonitor
        end local 5 // org.eclipse.core.runtime.IProgressMonitor progressMonitor
        end local 4 // int waitingPolicy
        end local 3 // org.eclipse.jdt.internal.core.IPathRequestor pathRequestor
        end local 2 // java.util.Map binariesFromIndexMatches
        end local 1 // org.eclipse.jdt.core.search.IJavaSearchScope scope
        end local 0 // org.eclipse.jdt.core.IType type
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   36     0                      type  Lorg/eclipse/jdt/core/IType;
            0   36     1                     scope  Lorg/eclipse/jdt/core/search/IJavaSearchScope;
            0   36     2  binariesFromIndexMatches  Ljava/util/Map;
            0   36     3             pathRequestor  Lorg/eclipse/jdt/internal/core/IPathRequestor;
            0   36     4             waitingPolicy  I
            0   36     5           progressMonitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   36     6                subMonitor  Lorg/eclipse/core/runtime/SubMonitor;
            2   36     7                     queue  Lorg/eclipse/jdt/internal/core/hierarchy/IndexBasedHierarchyBuilder$Queue;
            3   36     8           foundSuperNames  Lorg/eclipse/jdt/internal/compiler/util/HashtableOfObject;
            4   36     9              indexManager  Lorg/eclipse/jdt/internal/core/search/indexing/IndexManager;
            5   36    10           searchRequestor  Lorg/eclipse/jdt/internal/core/search/IndexQueryRequestor;
            8    9    11              superRefKind  I
           11   36    11              superRefKind  I
           13   36    12                   pattern  Lorg/eclipse/jdt/internal/core/search/matching/SuperTypeReferencePattern;
           20   36    13                       job  Lorg/eclipse/jdt/internal/core/search/SubTypeSearchJob;
           24   29    14           currentTypeName  [C
      Exception table:
        from    to  target  type
           5     8       9  Class org.eclipse.jdt.core.JavaModelException
          21    31      31  any
    MethodParameters:
                          Name  Flags
      type                      
      scope                     
      binariesFromIndexMatches  final
      pathRequestor             final
      waitingPolicy             
      progressMonitor           final
}
SourceFile: "IndexBasedHierarchyBuilder.java"
NestMembers:
  org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1  org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1PathCollector  org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$2  org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue
InnerClasses:
  org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1
  PathCollector = org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$1PathCollector
  org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$2
  Queue = org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder$Queue of org.eclipse.jdt.internal.core.hierarchy.IndexBasedHierarchyBuilder