public class org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet
  super_class: java.lang.Object
{
  org.eclipse.jdt.internal.compiler.util.SimpleLookupTable matchingNodes;
    descriptor: Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
    flags: (0x0000) 

  private org.eclipse.jdt.internal.compiler.util.HashtableOfLong matchingNodesKeys;
    descriptor: Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
    flags: (0x0002) ACC_PRIVATE

  static java.lang.Integer EXACT_MATCH;
    descriptor: Ljava/lang/Integer;
    flags: (0x0008) ACC_STATIC

  static java.lang.Integer POTENTIAL_MATCH;
    descriptor: Ljava/lang/Integer;
    flags: (0x0008) ACC_STATIC

  static java.lang.Integer ERASURE_MATCH;
    descriptor: Ljava/lang/Integer;
    flags: (0x0008) ACC_STATIC

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

  org.eclipse.jdt.internal.compiler.util.SimpleSet possibleMatchingNodesSet;
    descriptor: Lorg/eclipse/jdt/internal/compiler/util/SimpleSet;
    flags: (0x0000) 

  private org.eclipse.jdt.internal.compiler.util.HashtableOfLong possibleMatchingNodesKeys;
    descriptor: Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 38
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putstatic org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.EXACT_MATCH:Ljava/lang/Integer;
         1: .line 39
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putstatic org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.POTENTIAL_MATCH:Ljava/lang/Integer;
         2: .line 40
            bipush 16
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putstatic org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.ERASURE_MATCH:Ljava/lang/Integer;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
        start local 1 // boolean mustResolvePattern
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 36
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.SimpleLookupTable
            dup
            iconst_3
            invokespecial org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodes:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
         2: .line 37
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.HashtableOfLong
            dup
            iconst_3
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfLong.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodesKeys:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
         3: .line 51
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.SimpleSet
            dup
            bipush 7
            invokespecial org.eclipse.jdt.internal.compiler.util.SimpleSet.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesSet:Lorg/eclipse/jdt/internal/compiler/util/SimpleSet;
         4: .line 52
            aload 0 /* this */
            new org.eclipse.jdt.internal.compiler.util.HashtableOfLong
            dup
            bipush 7
            invokespecial org.eclipse.jdt.internal.compiler.util.HashtableOfLong.<init>:(I)V
            putfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesKeys:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
         5: .line 57
            aload 0 /* this */
            iload 1 /* mustResolvePattern */
            putfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.mustResolve:Z
         6: .line 58
            return
        end local 1 // boolean mustResolvePattern
        end local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;
            0    7     1  mustResolvePattern  Z
    MethodParameters:
                    Name  Flags
      mustResolvePattern  

  public int addMatch(org.eclipse.jdt.internal.compiler.ast.ASTNode, int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        start local 2 // int matchLevel
         0: .line 61
            iload 2 /* matchLevel */
            bipush 15
            iand
            istore 3 /* maskedLevel */
        start local 3 // int maskedLevel
         1: .line 62
            iload 3 /* maskedLevel */
            tableswitch { // 1 - 4
                    1: 2
                    2: 7
                    3: 14
                    4: 9
              default: 18
          }
         2: .line 64
      StackMap locals: int
      StackMap stack:
            iload 2 /* matchLevel */
            iload 3 /* maskedLevel */
            if_icmpeq 5
         3: .line 65
            aload 0 /* this */
            aload 1 /* node */
            iconst_1
            iload 2 /* matchLevel */
            bipush -16
            iand
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.addTrustedMatch:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Ljava/lang/Integer;)V
         4: .line 66
            goto 18
         5: .line 67
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            getstatic org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.POTENTIAL_MATCH:Ljava/lang/Integer;
            invokevirtual org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.addTrustedMatch:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Ljava/lang/Integer;)V
         6: .line 69
            goto 18
         7: .line 71
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.addPossibleMatch:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)V
         8: .line 72
            goto 18
         9: .line 74
      StackMap locals:
      StackMap stack:
            iload 2 /* matchLevel */
            iload 3 /* maskedLevel */
            if_icmpeq 12
        10: .line 75
            aload 0 /* this */
            aload 1 /* node */
            bipush 16
            iload 2 /* matchLevel */
            bipush -16
            iand
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.addTrustedMatch:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Ljava/lang/Integer;)V
        11: .line 76
            goto 18
        12: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            getstatic org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.ERASURE_MATCH:Ljava/lang/Integer;
            invokevirtual org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.addTrustedMatch:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Ljava/lang/Integer;)V
        13: .line 79
            goto 18
        14: .line 81
      StackMap locals:
      StackMap stack:
            iload 2 /* matchLevel */
            iload 3 /* maskedLevel */
            if_icmpeq 17
        15: .line 82
            aload 0 /* this */
            aload 1 /* node */
            iconst_0
            iload 2 /* matchLevel */
            bipush -16
            iand
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.addTrustedMatch:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Ljava/lang/Integer;)V
        16: .line 83
            goto 18
        17: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* node */
            getstatic org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.EXACT_MATCH:Ljava/lang/Integer;
            invokevirtual org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.addTrustedMatch:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Ljava/lang/Integer;)V
        18: .line 88
      StackMap locals:
      StackMap stack:
            iload 2 /* matchLevel */
            ireturn
        end local 3 // int maskedLevel
        end local 2 // int matchLevel
        end local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        end local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;
            0   19     1         node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
            0   19     2   matchLevel  I
            1   19     3  maskedLevel  I
    MethodParameters:
            Name  Flags
      node        
      matchLevel  

  public void addPossibleMatch(org.eclipse.jdt.internal.compiler.ast.ASTNode);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
         0: .line 94
            aload 1 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceStart:I
            i2l
            bipush 32
            lshl
            aload 1 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceEnd:I
            i2l
            ladd
            lstore 2 /* key */
        start local 2 // long key
         1: .line 95
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesKeys:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
            lload 2 /* key */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfLong.get:(J)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.ast.ASTNode
            astore 4 /* existing */
        start local 4 // org.eclipse.jdt.internal.compiler.ast.ASTNode existing
         2: .line 96
            aload 4 /* existing */
            ifnull 4
            aload 4 /* existing */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* node */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 97
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesSet:Lorg/eclipse/jdt/internal/compiler/util/SimpleSet;
            aload 4 /* existing */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleSet.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 100
      StackMap locals: long org.eclipse.jdt.internal.compiler.ast.ASTNode
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesSet:Lorg/eclipse/jdt/internal/compiler/util/SimpleSet;
            aload 1 /* node */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleSet.add:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 101
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesKeys:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
            lload 2 /* key */
            aload 1 /* node */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfLong.put:(JLjava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 102
            return
        end local 4 // org.eclipse.jdt.internal.compiler.ast.ASTNode existing
        end local 2 // long key
        end local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        end local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;
            0    7     1      node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
            1    7     2       key  J
            2    7     4  existing  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
    MethodParameters:
      Name  Flags
      node  

  public void addTrustedMatch(org.eclipse.jdt.internal.compiler.ast.ASTNode, boolean);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        start local 2 // boolean isExact
         0: .line 104
            aload 0 /* this */
            aload 1 /* node */
            iload 2 /* isExact */
            ifeq 1
            getstatic org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.EXACT_MATCH:Ljava/lang/Integer;
            goto 2
      StackMap locals: org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet org.eclipse.jdt.internal.compiler.ast.ASTNode int
      StackMap stack: org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet org.eclipse.jdt.internal.compiler.ast.ASTNode
         1: getstatic org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.POTENTIAL_MATCH:Ljava/lang/Integer;
      StackMap locals: org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet org.eclipse.jdt.internal.compiler.ast.ASTNode int
      StackMap stack: org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet org.eclipse.jdt.internal.compiler.ast.ASTNode java.lang.Integer
         2: invokevirtual org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.addTrustedMatch:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Ljava/lang/Integer;)V
         3: .line 106
            return
        end local 2 // boolean isExact
        end local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        end local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;
            0    4     1     node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
            0    4     2  isExact  Z
    MethodParameters:
         Name  Flags
      node     
      isExact  

  void addTrustedMatch(org.eclipse.jdt.internal.compiler.ast.ASTNode, java.lang.Integer);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Ljava/lang/Integer;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        start local 2 // java.lang.Integer level
         0: .line 111
            aload 1 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceStart:I
            i2l
            bipush 32
            lshl
            aload 1 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceEnd:I
            i2l
            ladd
            lstore 3 /* key */
        start local 3 // long key
         1: .line 112
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodesKeys:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
            lload 3 /* key */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfLong.get:(J)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.ast.ASTNode
            astore 5 /* existing */
        start local 5 // org.eclipse.jdt.internal.compiler.ast.ASTNode existing
         2: .line 113
            aload 5 /* existing */
            ifnull 4
            aload 5 /* existing */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* node */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 114
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodes:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            aload 5 /* existing */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.removeKey:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 117
      StackMap locals: long org.eclipse.jdt.internal.compiler.ast.ASTNode
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodes:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            aload 1 /* node */
            aload 2 /* level */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 118
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodesKeys:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
            lload 3 /* key */
            aload 1 /* node */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfLong.put:(JLjava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 119
            return
        end local 5 // org.eclipse.jdt.internal.compiler.ast.ASTNode existing
        end local 3 // long key
        end local 2 // java.lang.Integer level
        end local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        end local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;
            0    7     1      node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
            0    7     2     level  Ljava/lang/Integer;
            1    7     3       key  J
            2    7     5  existing  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
    MethodParameters:
       Name  Flags
      node   
      level  

  protected boolean hasPossibleNodes(int, int);
    descriptor: (II)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
        start local 1 // int start
        start local 2 // int end
         0: .line 121
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesSet:Lorg/eclipse/jdt/internal/compiler/util/SimpleSet;
            getfield org.eclipse.jdt.internal.compiler.util.SimpleSet.values:[Ljava/lang/Object;
            astore 3 /* nodes */
        start local 3 // java.lang.Object[] nodes
         1: .line 122
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: aload 3 /* nodes */
            arraylength
            istore 5 /* l */
        start local 5 // int l
         3: goto 8
         4: .line 123
      StackMap locals: java.lang.Object[] int int
      StackMap stack:
            aload 3 /* nodes */
            iload 4 /* i */
            aaload
            checkcast org.eclipse.jdt.internal.compiler.ast.ASTNode
            astore 6 /* node */
        start local 6 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
         5: .line 124
            aload 6 /* node */
            ifnull 7
            iload 1 /* start */
            aload 6 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceStart:I
            if_icmpgt 7
            aload 6 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceEnd:I
            iload 2 /* end */
            if_icmpgt 7
         6: .line 125
            iconst_1
            ireturn
        end local 6 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
         7: .line 122
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            iload 5 /* l */
            if_icmplt 4
        end local 5 // int l
        end local 4 // int i
         9: .line 127
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodes:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.keyTable:[Ljava/lang/Object;
            astore 3 /* nodes */
        10: .line 128
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        11: aload 3 /* nodes */
            arraylength
            istore 5 /* l */
        start local 5 // int l
        12: goto 17
        13: .line 129
      StackMap locals:
      StackMap stack:
            aload 3 /* nodes */
            iload 4 /* i */
            aaload
            checkcast org.eclipse.jdt.internal.compiler.ast.ASTNode
            astore 6 /* node */
        start local 6 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        14: .line 130
            aload 6 /* node */
            ifnull 16
            iload 1 /* start */
            aload 6 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceStart:I
            if_icmpgt 16
            aload 6 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceEnd:I
            iload 2 /* end */
            if_icmpgt 16
        15: .line 131
            iconst_1
            ireturn
        end local 6 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        16: .line 128
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 4 /* i */
            iload 5 /* l */
            if_icmplt 13
        end local 5 // int l
        end local 4 // int i
        18: .line 133
            iconst_0
            ireturn
        end local 3 // java.lang.Object[] nodes
        end local 2 // int end
        end local 1 // int start
        end local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;
            0   19     1  start  I
            0   19     2    end  I
            1   19     3  nodes  [Ljava/lang/Object;
            2    9     4      i  I
            3    9     5      l  I
            5    7     6   node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
           11   18     4      i  I
           12   18     5      l  I
           14   16     6   node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
    MethodParameters:
       Name  Flags
      start  
      end    

  protected org.eclipse.jdt.internal.compiler.ast.ASTNode[] matchingNodes(int, int);
    descriptor: (II)[Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
        start local 1 // int start
        start local 2 // int end
         0: .line 139
            aconst_null
            astore 3 /* nodes */
        start local 3 // java.util.ArrayList nodes
         1: .line 140
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodes:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.keyTable:[Ljava/lang/Object;
            astore 4 /* keyTable */
        start local 4 // java.lang.Object[] keyTable
         2: .line 141
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: aload 4 /* keyTable */
            arraylength
            istore 6 /* l */
        start local 6 // int l
         4: goto 10
         5: .line 142
      StackMap locals: org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet int int java.util.ArrayList java.lang.Object[] int int
      StackMap stack:
            aload 4 /* keyTable */
            iload 5 /* i */
            aaload
            checkcast org.eclipse.jdt.internal.compiler.ast.ASTNode
            astore 7 /* node */
        start local 7 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
         6: .line 143
            aload 7 /* node */
            ifnull 9
            iload 1 /* start */
            aload 7 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceStart:I
            if_icmpgt 9
            aload 7 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceEnd:I
            iload 2 /* end */
            if_icmpgt 9
         7: .line 144
            aload 3 /* nodes */
            ifnonnull 8
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* nodes */
         8: .line 145
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.ASTNode
      StackMap stack:
            aload 3 /* nodes */
            aload 7 /* node */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
         9: .line 141
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            iload 6 /* l */
            if_icmplt 5
        end local 6 // int l
        end local 5 // int i
        11: .line 148
            aload 3 /* nodes */
            ifnonnull 12
            aconst_null
            areturn
        12: .line 150
      StackMap locals:
      StackMap stack:
            aload 3 /* nodes */
            invokevirtual java.util.ArrayList.size:()I
            anewarray org.eclipse.jdt.internal.compiler.ast.ASTNode
            astore 5 /* result */
        start local 5 // org.eclipse.jdt.internal.compiler.ast.ASTNode[] result
        13: .line 151
            aload 3 /* nodes */
            aload 5 /* result */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        14: .line 154
            new org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet$1
            dup
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet$1.<init>:(Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;)V
            astore 6 /* comparer */
        start local 6 // org.eclipse.jdt.internal.core.util.Util$Comparer comparer
        15: .line 160
            aload 5 /* result */
            aload 6 /* comparer */
            invokestatic org.eclipse.jdt.internal.core.util.Util.sort:([Ljava/lang/Object;Lorg/eclipse/jdt/internal/core/util/Util$Comparer;)V
        16: .line 161
            aload 5 /* result */
            areturn
        end local 6 // org.eclipse.jdt.internal.core.util.Util$Comparer comparer
        end local 5 // org.eclipse.jdt.internal.compiler.ast.ASTNode[] result
        end local 4 // java.lang.Object[] keyTable
        end local 3 // java.util.ArrayList nodes
        end local 2 // int end
        end local 1 // int start
        end local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;
            0   17     1     start  I
            0   17     2       end  I
            1   17     3     nodes  Ljava/util/ArrayList;
            2   17     4  keyTable  [Ljava/lang/Object;
            3   11     5         i  I
            4   11     6         l  I
            6    9     7      node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
           13   17     5    result  [Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
           15   17     6  comparer  Lorg/eclipse/jdt/internal/core/util/Util$Comparer;
    MethodParameters:
       Name  Flags
      start  
      end    

  public java.lang.Object removePossibleMatch(org.eclipse.jdt.internal.compiler.ast.ASTNode);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
         0: .line 164
            aload 1 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceStart:I
            i2l
            bipush 32
            lshl
            aload 1 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceEnd:I
            i2l
            ladd
            lstore 2 /* key */
        start local 2 // long key
         1: .line 165
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesKeys:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
            lload 2 /* key */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfLong.get:(J)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.ast.ASTNode
            astore 4 /* existing */
        start local 4 // org.eclipse.jdt.internal.compiler.ast.ASTNode existing
         2: .line 166
            aload 4 /* existing */
            ifnonnull 3
            aconst_null
            areturn
         3: .line 168
      StackMap locals: long org.eclipse.jdt.internal.compiler.ast.ASTNode
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesKeys:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
            lload 2 /* key */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfLong.put:(JLjava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 169
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesSet:Lorg/eclipse/jdt/internal/compiler/util/SimpleSet;
            aload 1 /* node */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleSet.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // org.eclipse.jdt.internal.compiler.ast.ASTNode existing
        end local 2 // long key
        end local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        end local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;
            0    5     1      node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
            1    5     2       key  J
            2    5     4  existing  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
    MethodParameters:
      Name  Flags
      node  

  public java.lang.Object removeTrustedMatch(org.eclipse.jdt.internal.compiler.ast.ASTNode);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
         0: .line 172
            aload 1 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceStart:I
            i2l
            bipush 32
            lshl
            aload 1 /* node */
            getfield org.eclipse.jdt.internal.compiler.ast.ASTNode.sourceEnd:I
            i2l
            ladd
            lstore 2 /* key */
        start local 2 // long key
         1: .line 173
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodesKeys:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
            lload 2 /* key */
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfLong.get:(J)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.compiler.ast.ASTNode
            astore 4 /* existing */
        start local 4 // org.eclipse.jdt.internal.compiler.ast.ASTNode existing
         2: .line 174
            aload 4 /* existing */
            ifnonnull 3
            aconst_null
            areturn
         3: .line 176
      StackMap locals: long org.eclipse.jdt.internal.compiler.ast.ASTNode
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodesKeys:Lorg/eclipse/jdt/internal/compiler/util/HashtableOfLong;
            lload 2 /* key */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.util.HashtableOfLong.put:(JLjava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 177
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodes:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            aload 1 /* node */
            invokevirtual org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.removeKey:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 4 // org.eclipse.jdt.internal.compiler.ast.ASTNode existing
        end local 2 // long key
        end local 1 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        end local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;
            0    5     1      node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
            1    5     2       key  J
            2    5     4  existing  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
    MethodParameters:
      Name  Flags
      node  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
         0: .line 182
            new java.lang.StringBuffer
            dup
            invokespecial java.lang.StringBuffer.<init>:()V
            astore 1 /* result */
        start local 1 // java.lang.StringBuffer result
         1: .line 183
            aload 1 /* result */
            ldc "Exact matches:"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
         2: .line 184
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodes:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.keyTable:[Ljava/lang/Object;
            astore 2 /* keyTable */
        start local 2 // java.lang.Object[] keyTable
         3: .line 185
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.matchingNodes:Lorg/eclipse/jdt/internal/compiler/util/SimpleLookupTable;
            getfield org.eclipse.jdt.internal.compiler.util.SimpleLookupTable.valueTable:[Ljava/lang/Object;
            astore 3 /* valueTable */
        start local 3 // java.lang.Object[] valueTable
         4: .line 186
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         5: aload 2 /* keyTable */
            arraylength
            istore 5 /* l */
        start local 5 // int l
         6: goto 18
         7: .line 187
      StackMap locals: org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet java.lang.StringBuffer java.lang.Object[] java.lang.Object[] int int
      StackMap stack:
            aload 2 /* keyTable */
            iload 4 /* i */
            aaload
            checkcast org.eclipse.jdt.internal.compiler.ast.ASTNode
            astore 6 /* node */
        start local 6 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
         8: .line 188
            aload 6 /* node */
            ifnonnull 9
            goto 17
         9: .line 189
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.ASTNode
      StackMap stack:
            aload 1 /* result */
            ldc "\n\t"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        10: .line 190
            aload 3 /* valueTable */
            iload 4 /* i */
            aaload
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            lookupswitch { // 3
                    0: 11
                    1: 13
                   16: 15
              default: 16
          }
        11: .line 192
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            ldc "ACCURATE_MATCH: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        12: .line 193
            goto 16
        13: .line 195
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            ldc "INACCURATE_MATCH: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        14: .line 196
            goto 16
        15: .line 198
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            ldc "ERASURE_MATCH: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        16: .line 201
      StackMap locals:
      StackMap stack:
            aload 6 /* node */
            iconst_0
            aload 1 /* result */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.ASTNode.print:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
            pop
        end local 6 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        17: .line 186
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 4 /* i */
            iload 5 /* l */
            if_icmplt 7
        end local 5 // int l
        end local 4 // int i
        19: .line 204
            aload 1 /* result */
            ldc "\nPossible matches:"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        20: .line 205
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet.possibleMatchingNodesSet:Lorg/eclipse/jdt/internal/compiler/util/SimpleSet;
            getfield org.eclipse.jdt.internal.compiler.util.SimpleSet.values:[Ljava/lang/Object;
            astore 4 /* nodes */
        start local 4 // java.lang.Object[] nodes
        21: .line 206
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        22: aload 4 /* nodes */
            arraylength
            istore 6 /* l */
        start local 6 // int l
        23: goto 29
        24: .line 207
      StackMap locals: org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet java.lang.StringBuffer java.lang.Object[] java.lang.Object[] java.lang.Object[] int int
      StackMap stack:
            aload 4 /* nodes */
            iload 5 /* i */
            aaload
            checkcast org.eclipse.jdt.internal.compiler.ast.ASTNode
            astore 7 /* node */
        start local 7 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        25: .line 208
            aload 7 /* node */
            ifnonnull 26
            goto 28
        26: .line 209
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.ASTNode
      StackMap stack:
            aload 1 /* result */
            ldc "\nPOSSIBLE_MATCH: "
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        27: .line 210
            aload 7 /* node */
            iconst_0
            aload 1 /* result */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.ASTNode.print:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
            pop
        end local 7 // org.eclipse.jdt.internal.compiler.ast.ASTNode node
        28: .line 206
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 5 /* i */
            iload 6 /* l */
            if_icmplt 24
        end local 6 // int l
        end local 5 // int i
        30: .line 212
            aload 1 /* result */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.Object[] nodes
        end local 3 // java.lang.Object[] valueTable
        end local 2 // java.lang.Object[] keyTable
        end local 1 // java.lang.StringBuffer result
        end local 0 // org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   31     0        this  Lorg/eclipse/jdt/internal/core/search/matching/MatchingNodeSet;
            1   31     1      result  Ljava/lang/StringBuffer;
            3   31     2    keyTable  [Ljava/lang/Object;
            4   31     3  valueTable  [Ljava/lang/Object;
            5   19     4           i  I
            6   19     5           l  I
            8   17     6        node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
           21   31     4       nodes  [Ljava/lang/Object;
           22   30     5           i  I
           23   30     6           l  I
           25   28     7        node  Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;
}
SourceFile: "MatchingNodeSet.java"
NestMembers:
  org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet$1
InnerClasses:
  org.eclipse.jdt.internal.core.search.matching.MatchingNodeSet$1
  public abstract Comparer = org.eclipse.jdt.internal.core.util.Util$Comparer of org.eclipse.jdt.internal.core.util.Util