public class org.eclipse.jdt.internal.corext.dom.LocalVariableIndex extends org.eclipse.jdt.core.dom.ASTVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.corext.dom.LocalVariableIndex
  super_class: org.eclipse.jdt.core.dom.ASTVisitor
{
  private int fTopIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.corext.dom.LocalVariableIndex this
         0: .line 30
            aload 0 /* this */
            invokespecial org.eclipse.jdt.core.dom.ASTVisitor.<init>:()V
            return
        end local 0 // org.eclipse.jdt.internal.corext.dom.LocalVariableIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/corext/dom/LocalVariableIndex;

  public static int perform(org.eclipse.jdt.core.dom.BodyDeclaration);
    descriptor: (Lorg/eclipse/jdt/core/dom/BodyDeclaration;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.core.dom.BodyDeclaration declaration
         0: .line 43
            aload 0 /* declaration */
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokestatic org.eclipse.core.runtime.Assert.isTrue:(Z)Z
            pop
         3: .line 44
            aload 0 /* declaration */
            invokevirtual org.eclipse.jdt.core.dom.BodyDeclaration.getNodeType:()I
            lookupswitch { // 3
                   23: 4
                   28: 4
                   31: 4
              default: 5
          }
         4: .line 48
      StackMap locals:
      StackMap stack:
            aload 0 /* declaration */
            invokestatic org.eclipse.jdt.internal.corext.dom.LocalVariableIndex.internalPerform:(Lorg/eclipse/jdt/core/dom/BodyDeclaration;)I
            ireturn
         5: .line 50
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 0 /* declaration */
            invokevirtual org.eclipse.jdt.core.dom.BodyDeclaration.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.eclipse.jdt.core.dom.BodyDeclaration declaration
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0  declaration  Lorg/eclipse/jdt/core/dom/BodyDeclaration;
    MethodParameters:
             Name  Flags
      declaration  

  private static int internalPerform(org.eclipse.jdt.core.dom.BodyDeclaration);
    descriptor: (Lorg/eclipse/jdt/core/dom/BodyDeclaration;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.core.dom.BodyDeclaration methodOrInitializer
         0: .line 57
            aload 0 /* methodOrInitializer */
            astore 1 /* target */
        start local 1 // org.eclipse.jdt.core.dom.BodyDeclaration target
         1: .line 58
            aload 1 /* target */
            invokevirtual org.eclipse.jdt.core.dom.BodyDeclaration.getParent:()Lorg/eclipse/jdt/core/dom/ASTNode;
            astore 2 /* parent */
        start local 2 // org.eclipse.jdt.core.dom.ASTNode parent
         2: .line 59
            goto 6
         3: .line 60
      StackMap locals: org.eclipse.jdt.core.dom.BodyDeclaration org.eclipse.jdt.core.dom.ASTNode
      StackMap stack:
            aload 2 /* parent */
            instanceof org.eclipse.jdt.core.dom.MethodDeclaration
            ifne 4
            aload 2 /* parent */
            instanceof org.eclipse.jdt.core.dom.Initializer
            ifne 4
            aload 2 /* parent */
            instanceof org.eclipse.jdt.core.dom.FieldDeclaration
            ifeq 5
         4: .line 61
      StackMap locals:
      StackMap stack:
            aload 2 /* parent */
            checkcast org.eclipse.jdt.core.dom.BodyDeclaration
            astore 1 /* target */
         5: .line 63
      StackMap locals:
      StackMap stack:
            aload 2 /* parent */
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.getParent:()Lorg/eclipse/jdt/core/dom/ASTNode;
            astore 2 /* parent */
         6: .line 59
      StackMap locals:
      StackMap stack:
            aload 2 /* parent */
            ifnonnull 3
         7: .line 66
            aload 1 /* target */
            invokestatic org.eclipse.jdt.internal.corext.dom.LocalVariableIndex.doPerform:(Lorg/eclipse/jdt/core/dom/BodyDeclaration;)I
            ireturn
        end local 2 // org.eclipse.jdt.core.dom.ASTNode parent
        end local 1 // org.eclipse.jdt.core.dom.BodyDeclaration target
        end local 0 // org.eclipse.jdt.core.dom.BodyDeclaration methodOrInitializer
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0  methodOrInitializer  Lorg/eclipse/jdt/core/dom/BodyDeclaration;
            1    8     1               target  Lorg/eclipse/jdt/core/dom/BodyDeclaration;
            2    8     2               parent  Lorg/eclipse/jdt/core/dom/ASTNode;
    MethodParameters:
                     Name  Flags
      methodOrInitializer  

  private static int doPerform(org.eclipse.jdt.core.dom.BodyDeclaration);
    descriptor: (Lorg/eclipse/jdt/core/dom/BodyDeclaration;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.core.dom.BodyDeclaration node
         0: .line 70
            new org.eclipse.jdt.internal.corext.dom.LocalVariableIndex
            dup
            invokespecial org.eclipse.jdt.internal.corext.dom.LocalVariableIndex.<init>:()V
            astore 1 /* counter */
        start local 1 // org.eclipse.jdt.internal.corext.dom.LocalVariableIndex counter
         1: .line 71
            aload 0 /* node */
            aload 1 /* counter */
            invokevirtual org.eclipse.jdt.core.dom.BodyDeclaration.accept:(Lorg/eclipse/jdt/core/dom/ASTVisitor;)V
         2: .line 72
            aload 1 /* counter */
            getfield org.eclipse.jdt.internal.corext.dom.LocalVariableIndex.fTopIndex:I
            ireturn
        end local 1 // org.eclipse.jdt.internal.corext.dom.LocalVariableIndex counter
        end local 0 // org.eclipse.jdt.core.dom.BodyDeclaration node
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     node  Lorg/eclipse/jdt/core/dom/BodyDeclaration;
            1    3     1  counter  Lorg/eclipse/jdt/internal/corext/dom/LocalVariableIndex;
    MethodParameters:
      Name  Flags
      node  

  public boolean visit(org.eclipse.jdt.core.dom.SingleVariableDeclaration);
    descriptor: (Lorg/eclipse/jdt/core/dom/SingleVariableDeclaration;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.corext.dom.LocalVariableIndex this
        start local 1 // org.eclipse.jdt.core.dom.SingleVariableDeclaration node
         0: .line 77
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual org.eclipse.jdt.core.dom.SingleVariableDeclaration.resolveBinding:()Lorg/eclipse/jdt/core/dom/IVariableBinding;
            invokevirtual org.eclipse.jdt.internal.corext.dom.LocalVariableIndex.handleVariableBinding:(Lorg/eclipse/jdt/core/dom/IVariableBinding;)V
         1: .line 78
            iconst_1
            ireturn
        end local 1 // org.eclipse.jdt.core.dom.SingleVariableDeclaration node
        end local 0 // org.eclipse.jdt.internal.corext.dom.LocalVariableIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/corext/dom/LocalVariableIndex;
            0    2     1  node  Lorg/eclipse/jdt/core/dom/SingleVariableDeclaration;
    MethodParameters:
      Name  Flags
      node  

  public boolean visit(org.eclipse.jdt.core.dom.VariableDeclarationFragment);
    descriptor: (Lorg/eclipse/jdt/core/dom/VariableDeclarationFragment;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.corext.dom.LocalVariableIndex this
        start local 1 // org.eclipse.jdt.core.dom.VariableDeclarationFragment node
         0: .line 83
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual org.eclipse.jdt.core.dom.VariableDeclarationFragment.resolveBinding:()Lorg/eclipse/jdt/core/dom/IVariableBinding;
            invokevirtual org.eclipse.jdt.internal.corext.dom.LocalVariableIndex.handleVariableBinding:(Lorg/eclipse/jdt/core/dom/IVariableBinding;)V
         1: .line 84
            iconst_1
            ireturn
        end local 1 // org.eclipse.jdt.core.dom.VariableDeclarationFragment node
        end local 0 // org.eclipse.jdt.internal.corext.dom.LocalVariableIndex this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/corext/dom/LocalVariableIndex;
            0    2     1  node  Lorg/eclipse/jdt/core/dom/VariableDeclarationFragment;
    MethodParameters:
      Name  Flags
      node  

  private void handleVariableBinding(org.eclipse.jdt.core.dom.IVariableBinding);
    descriptor: (Lorg/eclipse/jdt/core/dom/IVariableBinding;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.corext.dom.LocalVariableIndex this
        start local 1 // org.eclipse.jdt.core.dom.IVariableBinding binding
         0: .line 88
            aload 1 /* binding */
            ifnonnull 2
         1: .line 89
            return
         2: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.corext.dom.LocalVariableIndex.fTopIndex:I
            aload 1 /* binding */
            invokeinterface org.eclipse.jdt.core.dom.IVariableBinding.getVariableId:()I
            invokestatic java.lang.Math.max:(II)I
            putfield org.eclipse.jdt.internal.corext.dom.LocalVariableIndex.fTopIndex:I
         3: .line 91
            return
        end local 1 // org.eclipse.jdt.core.dom.IVariableBinding binding
        end local 0 // org.eclipse.jdt.internal.corext.dom.LocalVariableIndex this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/eclipse/jdt/internal/corext/dom/LocalVariableIndex;
            0    4     1  binding  Lorg/eclipse/jdt/core/dom/IVariableBinding;
    MethodParameters:
         Name  Flags
      binding  
}
SourceFile: "LocalVariableIndex.java"