public class org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder extends org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder
  super_class: org.eclipse.jdt.internal.core.hierarchy.HierarchyBuilder
{
  public void <init>(org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy);
    descriptor: (Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
        start local 1 // org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy hierarchy
         0: .line 41
            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 42
            return
        end local 1 // org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy hierarchy
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/eclipse/jdt/internal/core/hierarchy/RegionBasedHierarchyBuilder;
            0    2     1  hierarchy  Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
    Exceptions:
      throws org.eclipse.jdt.core.JavaModelException
    MethodParameters:
           Name  Flags
      hierarchy  

  public void build(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
        start local 1 // boolean computeSubtypes
         0: .line 47
            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 50
            aload 2 /* manager */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.cacheZipFiles:(Ljava/lang/Object;)V
         2: .line 52
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            getfield org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.focusType:Lorg/eclipse/jdt/core/IType;
            ifnull 3
            iload 1 /* computeSubtypes */
            ifeq 8
         3: .line 53
      StackMap locals: org.eclipse.jdt.internal.core.JavaModelManager
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            getfield org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.progressMonitor:Lorg/eclipse/core/runtime/SubMonitor;
            bipush 30
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.determineOpenablesInRegion:(Lorg/eclipse/core/runtime/IProgressMonitor;)Ljava/util/HashMap;
            astore 3 /* allOpenablesInRegion */
        start local 3 // java.util.HashMap allOpenablesInRegion
         4: .line 54
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            aload 3 /* allOpenablesInRegion */
            invokevirtual java.util.HashMap.size:()I
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.initialize:(I)V
         5: .line 55
            aload 0 /* this */
            aload 3 /* allOpenablesInRegion */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            getfield org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.progressMonitor:Lorg/eclipse/core/runtime/SubMonitor;
            bipush 70
            invokevirtual org.eclipse.core.runtime.SubMonitor.split:(I)Lorg/eclipse/core/runtime/SubMonitor;
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.createTypeHierarchyBasedOnRegion:(Ljava/util/HashMap;Lorg/eclipse/core/runtime/IProgressMonitor;)V
         6: .line 56
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            checkcast org.eclipse.jdt.internal.core.hierarchy.RegionBasedTypeHierarchy
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.RegionBasedTypeHierarchy.pruneDeadBranches:()V
        end local 3 // java.util.HashMap allOpenablesInRegion
         7: .line 57
            goto 14
         8: .line 58
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.initialize:(I)V
         9: .line 59
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.buildSupertypes:()V
        10: .line 61
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 4
        12: .line 62
            aload 2 /* manager */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.flushZipFiles:(Ljava/lang/Object;)V
        13: .line 63
            aload 4
            athrow
        14: .line 62
      StackMap locals:
      StackMap stack:
            aload 2 /* manager */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.flushZipFiles:(Ljava/lang/Object;)V
        15: .line 64
            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.RegionBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   16     0                  this  Lorg/eclipse/jdt/internal/core/hierarchy/RegionBasedHierarchyBuilder;
            0   16     1       computeSubtypes  Z
            1   16     2               manager  Lorg/eclipse/jdt/internal/core/JavaModelManager;
            4    7     3  allOpenablesInRegion  Ljava/util/HashMap;
      Exception table:
        from    to  target  type
           1    11      11  any
    MethodParameters:
                 Name  Flags
      computeSubtypes  

  private void createTypeHierarchyBasedOnRegion(java.util.HashMap, org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Ljava/util/HashMap;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
        start local 1 // java.util.HashMap allOpenablesInRegion
        start local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 71
            aload 1 /* allOpenablesInRegion */
            invokevirtual java.util.HashMap.size:()I
            istore 3 /* size */
        start local 3 // int size
         1: .line 72
            aload 2 /* monitor */
            ifnull 2
            aload 2 /* monitor */
            ldc ""
            iload 3 /* size */
            iconst_2
            imul
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.beginTask:(Ljava/lang/String;I)V
         2: .line 73
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            new java.util.HashMap
            dup
            iload 3 /* size */
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.infoToHandle:Ljava/util/Map;
         3: .line 74
            aload 1 /* allOpenablesInRegion */
            invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4 /* javaProjects */
        start local 4 // java.util.Iterator javaProjects
         4: .line 75
            goto 15
         5: .line 76
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 4 /* javaProjects */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* entry */
        start local 5 // java.util.Map$Entry entry
         6: .line 77
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.JavaProject
            astore 6 /* project */
        start local 6 // org.eclipse.jdt.internal.core.JavaProject project
         7: .line 78
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.ArrayList
            astore 7 /* allOpenables */
        start local 7 // java.util.ArrayList allOpenables
         8: .line 79
            aload 7 /* allOpenables */
            invokevirtual java.util.ArrayList.size:()I
            anewarray org.eclipse.jdt.internal.core.Openable
            astore 8 /* openables */
        start local 8 // org.eclipse.jdt.internal.core.Openable[] openables
         9: .line 80
            aload 7 /* allOpenables */
            aload 8 /* openables */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        10: .line 84
            aload 6 /* project */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            getfield org.eclipse.jdt.internal.core.hierarchy.TypeHierarchy.workingCopies:[Lorg/eclipse/jdt/core/ICompilationUnit;
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.newSearchableNameEnvironment:([Lorg/eclipse/jdt/core/ICompilationUnit;)Lorg/eclipse/jdt/internal/core/SearchableEnvironment;
            astore 9 /* searchableEnvironment */
        start local 9 // org.eclipse.jdt.internal.core.SearchableEnvironment searchableEnvironment
        11: .line 85
            aload 0 /* this */
            aload 9 /* searchableEnvironment */
            getfield org.eclipse.jdt.internal.core.SearchableEnvironment.nameLookup:Lorg/eclipse/jdt/internal/core/NameLookup;
            putfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.nameLookup:Lorg/eclipse/jdt/internal/core/NameLookup;
        12: .line 86
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.hierarchyResolver:Lorg/eclipse/jdt/internal/core/hierarchy/HierarchyResolver;
            aload 8 /* openables */
            aconst_null
            aload 2 /* monitor */
            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 9 // org.eclipse.jdt.internal.core.SearchableEnvironment searchableEnvironment
        13: .line 87
            goto 15
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder java.util.HashMap org.eclipse.core.runtime.IProgressMonitor int java.util.Iterator java.util.Map$Entry org.eclipse.jdt.internal.core.JavaProject java.util.ArrayList org.eclipse.jdt.internal.core.Openable[]
      StackMap stack: org.eclipse.jdt.core.JavaModelException
        14: pop
        end local 8 // org.eclipse.jdt.internal.core.Openable[] openables
        end local 7 // java.util.ArrayList allOpenables
        end local 6 // org.eclipse.jdt.internal.core.JavaProject project
        end local 5 // java.util.Map$Entry entry
        15: .line 75
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder java.util.HashMap org.eclipse.core.runtime.IProgressMonitor int java.util.Iterator
      StackMap stack:
            aload 4 /* javaProjects */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 4 // java.util.Iterator javaProjects
        end local 3 // int size
        16: .line 91
            goto 20
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder java.util.HashMap org.eclipse.core.runtime.IProgressMonitor
      StackMap stack: java.lang.Throwable
        17: astore 10
        18: .line 92
            aload 2 /* monitor */
            ifnull 19
            aload 2 /* monitor */
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.done:()V
        19: .line 93
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder java.util.HashMap org.eclipse.core.runtime.IProgressMonitor top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        20: .line 92
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder java.util.HashMap org.eclipse.core.runtime.IProgressMonitor
      StackMap stack:
            aload 2 /* monitor */
            ifnull 21
            aload 2 /* monitor */
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.done:()V
        21: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 1 // java.util.HashMap allOpenablesInRegion
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   22     0                   this  Lorg/eclipse/jdt/internal/core/hierarchy/RegionBasedHierarchyBuilder;
            0   22     1   allOpenablesInRegion  Ljava/util/HashMap;
            0   22     2                monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   16     3                   size  I
            4   16     4           javaProjects  Ljava/util/Iterator;
            6   15     5                  entry  Ljava/util/Map$Entry;
            7   15     6                project  Lorg/eclipse/jdt/internal/core/JavaProject;
            8   15     7           allOpenables  Ljava/util/ArrayList;
            9   15     8              openables  [Lorg/eclipse/jdt/internal/core/Openable;
           11   13     9  searchableEnvironment  Lorg/eclipse/jdt/internal/core/SearchableEnvironment;
      Exception table:
        from    to  target  type
          10    13      14  Class org.eclipse.jdt.core.JavaModelException
           0    17      17  any
    MethodParameters:
                      Name  Flags
      allOpenablesInRegion  
      monitor               

  private java.util.HashMap determineOpenablesInRegion(org.eclipse.core.runtime.IProgressMonitor);
    descriptor: (Lorg/eclipse/core/runtime/IProgressMonitor;)Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=12, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
        start local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
         0: .line 103
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* allOpenables */
        start local 2 // java.util.HashMap allOpenables
         1: .line 105
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.hierarchy:Lorg/eclipse/jdt/internal/core/hierarchy/TypeHierarchy;
            checkcast org.eclipse.jdt.internal.core.hierarchy.RegionBasedTypeHierarchy
            getfield org.eclipse.jdt.internal.core.hierarchy.RegionBasedTypeHierarchy.region:Lorg/eclipse/jdt/core/IRegion;
            invokeinterface org.eclipse.jdt.core.IRegion.getElements:()[Lorg/eclipse/jdt/core/IJavaElement;
         2: .line 104
            astore 3 /* roots */
        start local 3 // org.eclipse.jdt.core.IJavaElement[] roots
         3: .line 106
            aload 3 /* roots */
            arraylength
            istore 4 /* length */
        start local 4 // int length
         4: .line 107
            aload 1 /* monitor */
            ifnull 5
            aload 1 /* monitor */
            ldc ""
            iload 4 /* length */
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.beginTask:(Ljava/lang/String;I)V
         5: .line 108
      StackMap locals: java.util.HashMap org.eclipse.jdt.core.IJavaElement[] int
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 30
         7: .line 109
      StackMap locals: int
      StackMap stack:
            aload 3 /* roots */
            iload 5 /* i */
            aaload
            astore 6 /* root */
        start local 6 // org.eclipse.jdt.core.IJavaElement root
         8: .line 110
            aload 6 /* root */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getJavaProject:()Lorg/eclipse/jdt/core/IJavaProject;
            astore 7 /* javaProject */
        start local 7 // org.eclipse.jdt.core.IJavaProject javaProject
         9: .line 111
            aload 2 /* allOpenables */
            aload 7 /* javaProject */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.ArrayList
            astore 8 /* openables */
        start local 8 // java.util.ArrayList openables
        10: .line 112
            aload 8 /* openables */
            ifnonnull 13
        11: .line 113
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* openables */
        12: .line 114
            aload 2 /* allOpenables */
            aload 7 /* javaProject */
            aload 8 /* openables */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 116
      StackMap locals: org.eclipse.jdt.core.IJavaElement org.eclipse.jdt.core.IJavaProject java.util.ArrayList
      StackMap stack:
            aload 6 /* root */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getElementType:()I
            tableswitch { // 2 - 7
                    2: 14
                    3: 16
                    4: 18
                    5: 20
                    6: 20
                    7: 22
              default: 28
          }
        14: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* root */
            checkcast org.eclipse.jdt.core.IJavaProject
            aload 8 /* openables */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.injectAllOpenablesForJavaProject:(Lorg/eclipse/jdt/core/IJavaProject;Ljava/util/ArrayList;)V
        15: .line 119
            goto 28
        16: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* root */
            checkcast org.eclipse.jdt.core.IPackageFragmentRoot
            aload 8 /* openables */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.injectAllOpenablesForPackageFragmentRoot:(Lorg/eclipse/jdt/core/IPackageFragmentRoot;Ljava/util/ArrayList;)V
        17: .line 122
            goto 28
        18: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* root */
            checkcast org.eclipse.jdt.core.IPackageFragment
            aload 8 /* openables */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.injectAllOpenablesForPackageFragment:(Lorg/eclipse/jdt/core/IPackageFragment;Ljava/util/ArrayList;)V
        19: .line 125
            goto 28
        20: .line 128
      StackMap locals:
      StackMap stack:
            aload 8 /* openables */
            aload 6 /* root */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        21: .line 129
            goto 28
        22: .line 131
      StackMap locals:
      StackMap stack:
            aload 6 /* root */
            checkcast org.eclipse.jdt.core.IType
            astore 9 /* type */
        start local 9 // org.eclipse.jdt.core.IType type
        23: .line 132
            aload 9 /* type */
            invokeinterface org.eclipse.jdt.core.IType.isBinary:()Z
            ifeq 26
        24: .line 133
            aload 8 /* openables */
            aload 9 /* type */
            invokeinterface org.eclipse.jdt.core.IType.getClassFile:()Lorg/eclipse/jdt/core/IOrdinaryClassFile;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        25: .line 134
            goto 28
        26: .line 135
      StackMap locals: org.eclipse.jdt.core.IType
      StackMap stack:
            aload 8 /* openables */
            aload 9 /* type */
            invokeinterface org.eclipse.jdt.core.IType.getCompilationUnit:()Lorg/eclipse/jdt/core/ICompilationUnit;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        27: .line 137
            goto 28
        end local 9 // org.eclipse.jdt.core.IType type
        28: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* monitor */
            iconst_1
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.worked:(Lorg/eclipse/core/runtime/IProgressMonitor;I)V
        end local 8 // java.util.ArrayList openables
        end local 7 // org.eclipse.jdt.core.IJavaProject javaProject
        end local 6 // org.eclipse.jdt.core.IJavaElement root
        29: .line 108
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        30: iload 5 /* i */
            iload 4 /* length */
            if_icmplt 7
        end local 5 // int i
        31: .line 143
            aload 2 /* allOpenables */
            astore 11
        32: .line 145
            aload 1 /* monitor */
            ifnull 33
            aload 1 /* monitor */
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.done:()V
        33: .line 143
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder org.eclipse.core.runtime.IProgressMonitor java.util.HashMap org.eclipse.jdt.core.IJavaElement[] int top top top top top top java.util.HashMap
      StackMap stack:
            aload 11
            areturn
        end local 4 // int length
        end local 3 // org.eclipse.jdt.core.IJavaElement[] roots
        end local 2 // java.util.HashMap allOpenables
        34: .line 144
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder org.eclipse.core.runtime.IProgressMonitor
      StackMap stack: java.lang.Throwable
            astore 10
        35: .line 145
            aload 1 /* monitor */
            ifnull 36
            aload 1 /* monitor */
            invokeinterface org.eclipse.core.runtime.IProgressMonitor.done:()V
        36: .line 146
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder org.eclipse.core.runtime.IProgressMonitor top top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 10
            athrow
        end local 1 // org.eclipse.core.runtime.IProgressMonitor monitor
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   37     0          this  Lorg/eclipse/jdt/internal/core/hierarchy/RegionBasedHierarchyBuilder;
            0   37     1       monitor  Lorg/eclipse/core/runtime/IProgressMonitor;
            1   34     2  allOpenables  Ljava/util/HashMap;
            3   34     3         roots  [Lorg/eclipse/jdt/core/IJavaElement;
            4   34     4        length  I
            6   31     5             i  I
            8   29     6          root  Lorg/eclipse/jdt/core/IJavaElement;
            9   29     7   javaProject  Lorg/eclipse/jdt/core/IJavaProject;
           10   29     8     openables  Ljava/util/ArrayList;
           23   28     9          type  Lorg/eclipse/jdt/core/IType;
      Exception table:
        from    to  target  type
           0    32      34  any
    MethodParameters:
         Name  Flags
      monitor  

  private void injectAllOpenablesForJavaProject(org.eclipse.jdt.core.IJavaProject, java.util.ArrayList);
    descriptor: (Lorg/eclipse/jdt/core/IJavaProject;Ljava/util/ArrayList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
        start local 1 // org.eclipse.jdt.core.IJavaProject project
        start local 2 // java.util.ArrayList openables
         0: .line 158
            aload 1 /* project */
            checkcast org.eclipse.jdt.internal.core.JavaProject
            invokevirtual org.eclipse.jdt.internal.core.JavaProject.getPackageFragmentRoots:()[Lorg/eclipse/jdt/core/IPackageFragmentRoot;
         1: .line 157
            astore 3 /* devPathRoots */
        start local 3 // org.eclipse.jdt.core.IPackageFragmentRoot[] devPathRoots
         2: .line 159
            aload 3 /* devPathRoots */
            ifnonnull 4
         3: .line 160
            return
         4: .line 162
      StackMap locals: org.eclipse.jdt.core.IPackageFragmentRoot[]
      StackMap stack:
            iconst_0
            istore 4 /* j */
        start local 4 // int j
         5: goto 9
         6: .line 163
      StackMap locals: int
      StackMap stack:
            aload 3 /* devPathRoots */
            iload 4 /* j */
            aaload
            astore 5 /* root */
        start local 5 // org.eclipse.jdt.core.IPackageFragmentRoot root
         7: .line 164
            aload 0 /* this */
            aload 5 /* root */
            aload 2 /* openables */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.injectAllOpenablesForPackageFragmentRoot:(Lorg/eclipse/jdt/core/IPackageFragmentRoot;Ljava/util/ArrayList;)V
        end local 5 // org.eclipse.jdt.core.IPackageFragmentRoot root
         8: .line 162
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* j */
            aload 3 /* devPathRoots */
            arraylength
            if_icmplt 6
        end local 4 // int j
        end local 3 // org.eclipse.jdt.core.IPackageFragmentRoot[] devPathRoots
        10: .line 166
            goto 12
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder org.eclipse.jdt.core.IJavaProject java.util.ArrayList
      StackMap stack: org.eclipse.jdt.core.JavaModelException
        11: pop
        12: .line 169
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.ArrayList openables
        end local 1 // org.eclipse.jdt.core.IJavaProject project
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/eclipse/jdt/internal/core/hierarchy/RegionBasedHierarchyBuilder;
            0   13     1       project  Lorg/eclipse/jdt/core/IJavaProject;
            0   13     2     openables  Ljava/util/ArrayList;
            2   10     3  devPathRoots  [Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            5   10     4             j  I
            7    8     5          root  Lorg/eclipse/jdt/core/IPackageFragmentRoot;
      Exception table:
        from    to  target  type
           0     3      11  Class org.eclipse.jdt.core.JavaModelException
           4    10      11  Class org.eclipse.jdt.core.JavaModelException
    MethodParameters:
           Name  Flags
      project    
      openables  

  private void injectAllOpenablesForPackageFragment(org.eclipse.jdt.core.IPackageFragment, java.util.ArrayList);
    descriptor: (Lorg/eclipse/jdt/core/IPackageFragment;Ljava/util/ArrayList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
        start local 1 // org.eclipse.jdt.core.IPackageFragment packFrag
        start local 2 // java.util.ArrayList openables
         0: .line 180
            aload 1 /* packFrag */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            checkcast org.eclipse.jdt.core.IPackageFragmentRoot
            astore 3 /* root */
        start local 3 // org.eclipse.jdt.core.IPackageFragmentRoot root
         1: .line 181
            aload 3 /* root */
            invokeinterface org.eclipse.jdt.core.IPackageFragmentRoot.getKind:()I
            istore 4 /* kind */
        start local 4 // int kind
         2: .line 182
            iload 4 /* kind */
            ifeq 24
         3: .line 183
            iload 4 /* kind */
            iconst_1
            if_icmpne 4
            iconst_1
            goto 5
      StackMap locals: org.eclipse.jdt.core.IPackageFragmentRoot int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* isSourcePackageFragment */
        start local 5 // boolean isSourcePackageFragment
         6: .line 184
            iload 5 /* isSourcePackageFragment */
            ifeq 15
         7: .line 185
            aload 1 /* packFrag */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.getCompilationUnits:()[Lorg/eclipse/jdt/core/ICompilationUnit;
            astore 6 /* cus */
        start local 6 // org.eclipse.jdt.core.ICompilationUnit[] cus
         8: .line 186
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         9: aload 6 /* cus */
            arraylength
            istore 8 /* length */
        start local 8 // int length
        10: goto 13
        11: .line 187
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder org.eclipse.jdt.core.IPackageFragment java.util.ArrayList org.eclipse.jdt.core.IPackageFragmentRoot int int org.eclipse.jdt.core.ICompilationUnit[] int int
      StackMap stack:
            aload 2 /* openables */
            aload 6 /* cus */
            iload 7 /* i */
            aaload
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        12: .line 186
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 7 /* i */
            iload 8 /* length */
            if_icmplt 11
        end local 8 // int length
        end local 7 // int i
        end local 6 // org.eclipse.jdt.core.ICompilationUnit[] cus
        14: .line 189
            goto 24
        15: .line 190
      StackMap locals:
      StackMap stack:
            aload 1 /* packFrag */
            invokeinterface org.eclipse.jdt.core.IPackageFragment.getOrdinaryClassFiles:()[Lorg/eclipse/jdt/core/IOrdinaryClassFile;
            astore 6 /* classFiles */
        start local 6 // org.eclipse.jdt.core.IOrdinaryClassFile[] classFiles
        16: .line 191
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        17: aload 6 /* classFiles */
            arraylength
            istore 8 /* length */
        start local 8 // int length
        18: goto 21
        19: .line 192
      StackMap locals: org.eclipse.jdt.core.IOrdinaryClassFile[] int int
      StackMap stack:
            aload 2 /* openables */
            aload 6 /* classFiles */
            iload 7 /* i */
            aaload
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        20: .line 191
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 7 /* i */
            iload 8 /* length */
            if_icmplt 19
        end local 8 // int length
        end local 7 // int i
        end local 6 // org.eclipse.jdt.core.IOrdinaryClassFile[] classFiles
        end local 5 // boolean isSourcePackageFragment
        end local 4 // int kind
        end local 3 // org.eclipse.jdt.core.IPackageFragmentRoot root
        22: .line 196
            goto 24
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder org.eclipse.jdt.core.IPackageFragment java.util.ArrayList
      StackMap stack: org.eclipse.jdt.core.JavaModelException
        23: pop
        24: .line 199
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.ArrayList openables
        end local 1 // org.eclipse.jdt.core.IPackageFragment packFrag
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   25     0                     this  Lorg/eclipse/jdt/internal/core/hierarchy/RegionBasedHierarchyBuilder;
            0   25     1                 packFrag  Lorg/eclipse/jdt/core/IPackageFragment;
            0   25     2                openables  Ljava/util/ArrayList;
            1   22     3                     root  Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            2   22     4                     kind  I
            6   22     5  isSourcePackageFragment  Z
            8   14     6                      cus  [Lorg/eclipse/jdt/core/ICompilationUnit;
            9   14     7                        i  I
           10   14     8                   length  I
           16   22     6               classFiles  [Lorg/eclipse/jdt/core/IOrdinaryClassFile;
           17   22     7                        i  I
           18   22     8                   length  I
      Exception table:
        from    to  target  type
           0    22      23  Class org.eclipse.jdt.core.JavaModelException
    MethodParameters:
           Name  Flags
      packFrag   
      openables  

  private void injectAllOpenablesForPackageFragmentRoot(org.eclipse.jdt.core.IPackageFragmentRoot, java.util.ArrayList);
    descriptor: (Lorg/eclipse/jdt/core/IPackageFragmentRoot;Ljava/util/ArrayList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
        start local 1 // org.eclipse.jdt.core.IPackageFragmentRoot root
        start local 2 // java.util.ArrayList openables
         0: .line 209
            aload 1 /* root */
            invokeinterface org.eclipse.jdt.core.IPackageFragmentRoot.getChildren:()[Lorg/eclipse/jdt/core/IJavaElement;
            astore 3 /* packFrags */
        start local 3 // org.eclipse.jdt.core.IJavaElement[] packFrags
         1: .line 210
            iconst_0
            istore 4 /* k */
        start local 4 // int k
         2: goto 6
         3: .line 211
      StackMap locals: org.eclipse.jdt.core.IJavaElement[] int
      StackMap stack:
            aload 3 /* packFrags */
            iload 4 /* k */
            aaload
            checkcast org.eclipse.jdt.core.IPackageFragment
            astore 5 /* packFrag */
        start local 5 // org.eclipse.jdt.core.IPackageFragment packFrag
         4: .line 212
            aload 0 /* this */
            aload 5 /* packFrag */
            aload 2 /* openables */
            invokevirtual org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder.injectAllOpenablesForPackageFragment:(Lorg/eclipse/jdt/core/IPackageFragment;Ljava/util/ArrayList;)V
        end local 5 // org.eclipse.jdt.core.IPackageFragment packFrag
         5: .line 210
            iinc 4 /* k */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* k */
            aload 3 /* packFrags */
            arraylength
            if_icmplt 3
        end local 4 // int k
        end local 3 // org.eclipse.jdt.core.IJavaElement[] packFrags
         7: .line 214
            goto 10
      StackMap locals: org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder org.eclipse.jdt.core.IPackageFragmentRoot java.util.ArrayList
      StackMap stack: org.eclipse.jdt.core.JavaModelException
         8: pop
         9: .line 215
            return
        10: .line 217
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.ArrayList openables
        end local 1 // org.eclipse.jdt.core.IPackageFragmentRoot root
        end local 0 // org.eclipse.jdt.internal.core.hierarchy.RegionBasedHierarchyBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/eclipse/jdt/internal/core/hierarchy/RegionBasedHierarchyBuilder;
            0   11     1       root  Lorg/eclipse/jdt/core/IPackageFragmentRoot;
            0   11     2  openables  Ljava/util/ArrayList;
            1    7     3  packFrags  [Lorg/eclipse/jdt/core/IJavaElement;
            2    7     4          k  I
            4    5     5   packFrag  Lorg/eclipse/jdt/core/IPackageFragment;
      Exception table:
        from    to  target  type
           0     7       8  Class org.eclipse.jdt.core.JavaModelException
    MethodParameters:
           Name  Flags
      root       
      openables  
}
SourceFile: "RegionBasedHierarchyBuilder.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map