public class org.eclipse.jdt.internal.core.util.ASTNodeFinder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.util.ASTNodeFinder
  super_class: java.lang.Object
{
  private org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration unit;
    descriptor: Lorg/eclipse/jdt/internal/compiler/ast/CompilationUnitDeclaration;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/CompilationUnitDeclaration;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.util.ASTNodeFinder this
        start local 1 // org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration unit
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 37
            aload 0 /* this */
            aload 1 /* unit */
            putfield org.eclipse.jdt.internal.core.util.ASTNodeFinder.unit:Lorg/eclipse/jdt/internal/compiler/ast/CompilationUnitDeclaration;
         2: .line 38
            return
        end local 1 // org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration unit
        end local 0 // org.eclipse.jdt.internal.core.util.ASTNodeFinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder;
            0    3     1  unit  Lorg/eclipse/jdt/internal/compiler/ast/CompilationUnitDeclaration;
    MethodParameters:
      Name  Flags
      unit  

  public org.eclipse.jdt.internal.compiler.ast.FieldDeclaration findField(org.eclipse.jdt.core.IField);
    descriptor: (Lorg/eclipse/jdt/core/IField;)Lorg/eclipse/jdt/internal/compiler/ast/FieldDeclaration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.util.ASTNodeFinder this
        start local 1 // org.eclipse.jdt.core.IField fieldHandle
         0: .line 45
            aload 0 /* this */
            aload 1 /* fieldHandle */
            invokeinterface org.eclipse.jdt.core.IField.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            checkcast org.eclipse.jdt.core.IType
            invokevirtual org.eclipse.jdt.internal.core.util.ASTNodeFinder.findType:(Lorg/eclipse/jdt/core/IType;)Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            astore 2 /* typeDecl */
        start local 2 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDecl
         1: .line 46
            aload 2 /* typeDecl */
            ifnonnull 2
            aconst_null
            areturn
         2: .line 47
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.TypeDeclaration
      StackMap stack:
            aload 2 /* typeDecl */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.fields:[Lorg/eclipse/jdt/internal/compiler/ast/FieldDeclaration;
            astore 3 /* fields */
        start local 3 // org.eclipse.jdt.internal.compiler.ast.FieldDeclaration[] fields
         3: .line 48
            aload 3 /* fields */
            ifnull 13
         4: .line 49
            aload 1 /* fieldHandle */
            invokeinterface org.eclipse.jdt.core.IField.getElementName:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 4 /* fieldName */
        start local 4 // char[] fieldName
         5: .line 50
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: aload 3 /* fields */
            arraylength
            istore 6 /* length */
        start local 6 // int length
         7: goto 12
         8: .line 51
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IField org.eclipse.jdt.internal.compiler.ast.TypeDeclaration org.eclipse.jdt.internal.compiler.ast.FieldDeclaration[] char[] int int
      StackMap stack:
            aload 3 /* fields */
            iload 5 /* i */
            aaload
            astore 7 /* field */
        start local 7 // org.eclipse.jdt.internal.compiler.ast.FieldDeclaration field
         9: .line 52
            aload 4 /* fieldName */
            aload 7 /* field */
            getfield org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.name:[C
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.equals:([C[C)Z
            ifeq 11
        10: .line 53
            aload 7 /* field */
            areturn
        end local 7 // org.eclipse.jdt.internal.compiler.ast.FieldDeclaration field
        11: .line 50
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            iload 6 /* length */
            if_icmplt 8
        end local 6 // int length
        end local 5 // int i
        end local 4 // char[] fieldName
        13: .line 57
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.eclipse.jdt.internal.compiler.ast.FieldDeclaration[] fields
        end local 2 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDecl
        end local 1 // org.eclipse.jdt.core.IField fieldHandle
        end local 0 // org.eclipse.jdt.internal.core.util.ASTNodeFinder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder;
            0   14     1  fieldHandle  Lorg/eclipse/jdt/core/IField;
            1   14     2     typeDecl  Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            3   14     3       fields  [Lorg/eclipse/jdt/internal/compiler/ast/FieldDeclaration;
            5   13     4    fieldName  [C
            6   13     5            i  I
            7   13     6       length  I
            9   11     7        field  Lorg/eclipse/jdt/internal/compiler/ast/FieldDeclaration;
    MethodParameters:
             Name  Flags
      fieldHandle  

  public org.eclipse.jdt.internal.compiler.ast.Initializer findInitializer(org.eclipse.jdt.core.IInitializer);
    descriptor: (Lorg/eclipse/jdt/core/IInitializer;)Lorg/eclipse/jdt/internal/compiler/ast/Initializer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=8, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.util.ASTNodeFinder this
        start local 1 // org.eclipse.jdt.core.IInitializer initializerHandle
         0: .line 65
            aload 0 /* this */
            aload 1 /* initializerHandle */
            invokeinterface org.eclipse.jdt.core.IInitializer.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            checkcast org.eclipse.jdt.core.IType
            invokevirtual org.eclipse.jdt.internal.core.util.ASTNodeFinder.findType:(Lorg/eclipse/jdt/core/IType;)Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            astore 2 /* typeDecl */
        start local 2 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDecl
         1: .line 66
            aload 2 /* typeDecl */
            ifnonnull 2
            aconst_null
            areturn
         2: .line 67
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.TypeDeclaration
      StackMap stack:
            aload 2 /* typeDecl */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.fields:[Lorg/eclipse/jdt/internal/compiler/ast/FieldDeclaration;
            astore 3 /* fields */
        start local 3 // org.eclipse.jdt.internal.compiler.ast.FieldDeclaration[] fields
         3: .line 68
            aload 3 /* fields */
            ifnull 13
         4: .line 69
            aload 1 /* initializerHandle */
            checkcast org.eclipse.jdt.internal.core.SourceRefElement
            getfield org.eclipse.jdt.internal.core.SourceRefElement.occurrenceCount:I
            istore 4 /* occurenceCount */
        start local 4 // int occurenceCount
         5: .line 70
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: aload 3 /* fields */
            arraylength
            istore 6 /* length */
        start local 6 // int length
         7: goto 12
         8: .line 71
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IInitializer org.eclipse.jdt.internal.compiler.ast.TypeDeclaration org.eclipse.jdt.internal.compiler.ast.FieldDeclaration[] int int int
      StackMap stack:
            aload 3 /* fields */
            iload 5 /* i */
            aaload
            astore 7 /* field */
        start local 7 // org.eclipse.jdt.internal.compiler.ast.FieldDeclaration field
         9: .line 72
            aload 7 /* field */
            instanceof org.eclipse.jdt.internal.compiler.ast.Initializer
            ifeq 11
            iinc 4 /* occurenceCount */ -1
            iload 4 /* occurenceCount */
            ifne 11
        10: .line 73
            aload 7 /* field */
            checkcast org.eclipse.jdt.internal.compiler.ast.Initializer
            areturn
        end local 7 // org.eclipse.jdt.internal.compiler.ast.FieldDeclaration field
        11: .line 70
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            iload 6 /* length */
            if_icmplt 8
        end local 6 // int length
        end local 5 // int i
        end local 4 // int occurenceCount
        13: .line 77
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.eclipse.jdt.internal.compiler.ast.FieldDeclaration[] fields
        end local 2 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDecl
        end local 1 // org.eclipse.jdt.core.IInitializer initializerHandle
        end local 0 // org.eclipse.jdt.internal.core.util.ASTNodeFinder this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   14     0               this  Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder;
            0   14     1  initializerHandle  Lorg/eclipse/jdt/core/IInitializer;
            1   14     2           typeDecl  Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            3   14     3             fields  [Lorg/eclipse/jdt/internal/compiler/ast/FieldDeclaration;
            5   13     4     occurenceCount  I
            6   13     5                  i  I
            7   13     6             length  I
            9   11     7              field  Lorg/eclipse/jdt/internal/compiler/ast/FieldDeclaration;
    MethodParameters:
                   Name  Flags
      initializerHandle  

  public org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration findMethod(org.eclipse.jdt.core.IMethod);
    descriptor: (Lorg/eclipse/jdt/core/IMethod;)Lorg/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=15, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.util.ASTNodeFinder this
        start local 1 // org.eclipse.jdt.core.IMethod methodHandle
         0: .line 85
            aload 0 /* this */
            aload 1 /* methodHandle */
            invokeinterface org.eclipse.jdt.core.IMethod.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            checkcast org.eclipse.jdt.core.IType
            invokevirtual org.eclipse.jdt.internal.core.util.ASTNodeFinder.findType:(Lorg/eclipse/jdt/core/IType;)Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            astore 2 /* typeDecl */
        start local 2 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDecl
         1: .line 86
            aload 2 /* typeDecl */
            ifnonnull 2
            aconst_null
            areturn
         2: .line 87
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.TypeDeclaration
      StackMap stack:
            aload 2 /* typeDecl */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.methods:[Lorg/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration;
            astore 3 /* methods */
        start local 3 // org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration[] methods
         3: .line 88
            aload 3 /* methods */
            ifnull 28
         4: .line 89
            aload 1 /* methodHandle */
            invokeinterface org.eclipse.jdt.core.IMethod.getElementName:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 4 /* selector */
        start local 4 // char[] selector
         5: .line 90
            aload 1 /* methodHandle */
            invokeinterface org.eclipse.jdt.core.IMethod.getParameterTypes:()[Ljava/lang/String;
            astore 5 /* parameterTypeSignatures */
        start local 5 // java.lang.String[] parameterTypeSignatures
         6: .line 91
            aload 5 /* parameterTypeSignatures */
            arraylength
            istore 6 /* parameterCount */
        start local 6 // int parameterCount
         7: .line 92
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         8: aload 3 /* methods */
            arraylength
            istore 8 /* length */
        start local 8 // int length
         9: goto 27
        10: .line 93
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IMethod org.eclipse.jdt.internal.compiler.ast.TypeDeclaration org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration[] char[] java.lang.String[] int int int
      StackMap stack:
            aload 3 /* methods */
            iload 7 /* i */
            aaload
            astore 9 /* method */
        start local 9 // org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration method
        11: .line 94
            aload 4 /* selector */
            aload 9 /* method */
            getfield org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.selector:[C
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.equals:([C[C)Z
            ifeq 26
        12: .line 95
            aload 9 /* method */
            getfield org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.arguments:[Lorg/eclipse/jdt/internal/compiler/ast/Argument;
            astore 10 /* args */
        start local 10 // org.eclipse.jdt.internal.compiler.ast.Argument[] args
        13: .line 96
            aload 10 /* args */
            ifnonnull 14
            iconst_0
            goto 15
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration org.eclipse.jdt.internal.compiler.ast.Argument[]
      StackMap stack:
        14: aload 10 /* args */
            arraylength
      StackMap locals:
      StackMap stack: int
        15: istore 11 /* argsLength */
        start local 11 // int argsLength
        16: .line 97
            iload 11 /* argsLength */
            iload 6 /* parameterCount */
            if_icmpne 26
        17: .line 98
            iconst_0
            istore 12 /* j */
        start local 12 // int j
        18: goto 24
        19: .line 99
      StackMap locals: int int
      StackMap stack:
            aload 10 /* args */
            iload 12 /* j */
            aaload
            getfield org.eclipse.jdt.internal.compiler.ast.Argument.type:Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
            astore 13 /* type */
        start local 13 // org.eclipse.jdt.internal.compiler.ast.TypeReference type
        20: .line 100
            aload 13 /* type */
            invokestatic org.eclipse.jdt.internal.core.util.Util.typeSignature:(Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;)Ljava/lang/String;
            astore 14 /* signature */
        start local 14 // java.lang.String signature
        21: .line 101
            aload 14 /* signature */
            aload 5 /* parameterTypeSignatures */
            iload 12 /* j */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 23
        22: .line 102
            goto 26
        end local 14 // java.lang.String signature
        end local 13 // org.eclipse.jdt.internal.compiler.ast.TypeReference type
        23: .line 98
      StackMap locals:
      StackMap stack:
            iinc 12 /* j */ 1
      StackMap locals:
      StackMap stack:
        24: iload 12 /* j */
            iload 6 /* parameterCount */
            if_icmplt 19
        end local 12 // int j
        25: .line 105
            aload 9 /* method */
            areturn
        end local 11 // int argsLength
        end local 10 // org.eclipse.jdt.internal.compiler.ast.Argument[] args
        end local 9 // org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration method
        26: .line 92
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IMethod org.eclipse.jdt.internal.compiler.ast.TypeDeclaration org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration[] char[] java.lang.String[] int int int
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 7 /* i */
            iload 8 /* length */
            if_icmplt 10
        end local 8 // int length
        end local 7 // int i
        end local 6 // int parameterCount
        end local 5 // java.lang.String[] parameterTypeSignatures
        end local 4 // char[] selector
        28: .line 110
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IMethod org.eclipse.jdt.internal.compiler.ast.TypeDeclaration org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration[]
      StackMap stack:
            aconst_null
            areturn
        end local 3 // org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration[] methods
        end local 2 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDecl
        end local 1 // org.eclipse.jdt.core.IMethod methodHandle
        end local 0 // org.eclipse.jdt.internal.core.util.ASTNodeFinder this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   29     0                     this  Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder;
            0   29     1             methodHandle  Lorg/eclipse/jdt/core/IMethod;
            1   29     2                 typeDecl  Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            3   29     3                  methods  [Lorg/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration;
            5   28     4                 selector  [C
            6   28     5  parameterTypeSignatures  [Ljava/lang/String;
            7   28     6           parameterCount  I
            8   28     7                        i  I
            9   28     8                   length  I
           11   26     9                   method  Lorg/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration;
           13   26    10                     args  [Lorg/eclipse/jdt/internal/compiler/ast/Argument;
           16   26    11               argsLength  I
           18   25    12                        j  I
           20   23    13                     type  Lorg/eclipse/jdt/internal/compiler/ast/TypeReference;
           21   23    14                signature  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      methodHandle  

  public org.eclipse.jdt.internal.compiler.ast.TypeDeclaration findType(org.eclipse.jdt.core.IType);
    descriptor: (Lorg/eclipse/jdt/core/IType;)Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=12, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.util.ASTNodeFinder this
        start local 1 // org.eclipse.jdt.core.IType typeHandle
         0: .line 118
            aload 1 /* typeHandle */
            invokeinterface org.eclipse.jdt.core.IType.getParent:()Lorg/eclipse/jdt/core/IJavaElement;
            astore 2 /* parent */
        start local 2 // org.eclipse.jdt.core.IJavaElement parent
         1: .line 119
            aload 1 /* typeHandle */
            invokeinterface org.eclipse.jdt.core.IType.getElementName:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 3 /* typeName */
        start local 3 // char[] typeName
         2: .line 120
            aload 1 /* typeHandle */
            checkcast org.eclipse.jdt.internal.core.SourceType
            getfield org.eclipse.jdt.internal.core.SourceType.occurrenceCount:I
            istore 4 /* occurenceCount */
        start local 4 // int occurenceCount
         3: .line 121
            aload 3 /* typeName */
            arraylength
            ifne 4
            iconst_1
            goto 5
      StackMap locals: org.eclipse.jdt.core.IJavaElement char[] int
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 5 /* findAnonymous */
        start local 5 // boolean findAnonymous
         6: .line 140
            aload 2 /* parent */
            invokeinterface org.eclipse.jdt.core.IJavaElement.getElementType:()I
            tableswitch { // 5 - 10
                    5: 7
                    6: 46
                    7: 18
                    8: 31
                    9: 41
                   10: 36
              default: 46
          }
         7: .line 142
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.util.ASTNodeFinder.unit:Lorg/eclipse/jdt/internal/compiler/ast/CompilationUnitDeclaration;
            getfield org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.types:[Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            astore 6 /* types */
        start local 6 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration[] types
         8: .line 143
            aload 6 /* types */
            ifnull 46
         9: .line 144
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        10: aload 6 /* types */
            arraylength
            istore 8 /* length */
        start local 8 // int length
        11: goto 16
        12: .line 145
      StackMap locals: org.eclipse.jdt.internal.compiler.ast.TypeDeclaration[] int int
      StackMap stack:
            aload 6 /* types */
            iload 7 /* i */
            aaload
            astore 9 /* type */
        start local 9 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration type
        13: .line 146
            aload 3 /* typeName */
            aload 9 /* type */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.name:[C
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.equals:([C[C)Z
            ifeq 15
        14: .line 147
            aload 9 /* type */
            areturn
        end local 9 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration type
        15: .line 144
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 7 /* i */
            iload 8 /* length */
            if_icmplt 12
        end local 8 // int length
        end local 7 // int i
        17: .line 151
            goto 46
        end local 6 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration[] types
        18: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* parent */
            checkcast org.eclipse.jdt.core.IType
            invokevirtual org.eclipse.jdt.internal.core.util.ASTNodeFinder.findType:(Lorg/eclipse/jdt/core/IType;)Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            astore 7 /* parentDecl */
        start local 7 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration parentDecl
        19: .line 154
            aload 7 /* parentDecl */
            ifnonnull 20
            aconst_null
            areturn
        20: .line 155
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IType org.eclipse.jdt.core.IJavaElement char[] int int top org.eclipse.jdt.internal.compiler.ast.TypeDeclaration
      StackMap stack:
            aload 7 /* parentDecl */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.memberTypes:[Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            astore 6 /* types */
        start local 6 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration[] types
        21: .line 156
            aload 6 /* types */
            ifnull 46
        22: .line 157
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        23: aload 6 /* types */
            arraylength
            istore 9 /* length */
        start local 9 // int length
        24: goto 29
        25: .line 158
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IType org.eclipse.jdt.core.IJavaElement char[] int int org.eclipse.jdt.internal.compiler.ast.TypeDeclaration[] org.eclipse.jdt.internal.compiler.ast.TypeDeclaration int int
      StackMap stack:
            aload 6 /* types */
            iload 8 /* i */
            aaload
            astore 10 /* type */
        start local 10 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration type
        26: .line 159
            aload 3 /* typeName */
            aload 10 /* type */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.name:[C
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.equals:([C[C)Z
            ifeq 28
        27: .line 160
            aload 10 /* type */
            areturn
        end local 10 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration type
        28: .line 157
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 8 /* i */
            iload 9 /* length */
            if_icmplt 25
        end local 9 // int length
        end local 8 // int i
        30: .line 164
            goto 46
        end local 7 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration parentDecl
        end local 6 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration[] types
        31: .line 166
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IType org.eclipse.jdt.core.IJavaElement char[] int int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* parent */
            checkcast org.eclipse.jdt.core.IField
            invokevirtual org.eclipse.jdt.internal.core.util.ASTNodeFinder.findField:(Lorg/eclipse/jdt/core/IField;)Lorg/eclipse/jdt/internal/compiler/ast/FieldDeclaration;
            astore 8 /* fieldDecl */
        start local 8 // org.eclipse.jdt.internal.compiler.ast.FieldDeclaration fieldDecl
        32: .line 167
            aload 8 /* fieldDecl */
            ifnonnull 33
            aconst_null
            areturn
        33: .line 168
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IType org.eclipse.jdt.core.IJavaElement char[] int int top top org.eclipse.jdt.internal.compiler.ast.FieldDeclaration
      StackMap stack:
            new org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor
            dup
            aload 0 /* this */
            iload 5 /* findAnonymous */
            iload 4 /* occurenceCount */
            aload 3 /* typeName */
            invokespecial org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor.<init>:(Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder;ZI[C)V
            astore 9 /* visitor */
        start local 9 // org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor visitor
        34: .line 169
            aload 8 /* fieldDecl */
            aload 9 /* visitor */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.ast.FieldDeclaration.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;)V
        35: .line 170
            aload 9 /* visitor */
            getfield org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor.result:Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            areturn
        end local 9 // org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor visitor
        end local 8 // org.eclipse.jdt.internal.compiler.ast.FieldDeclaration fieldDecl
        36: .line 172
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IType org.eclipse.jdt.core.IJavaElement char[] int int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* parent */
            checkcast org.eclipse.jdt.core.IInitializer
            invokevirtual org.eclipse.jdt.internal.core.util.ASTNodeFinder.findInitializer:(Lorg/eclipse/jdt/core/IInitializer;)Lorg/eclipse/jdt/internal/compiler/ast/Initializer;
            astore 10 /* initializer */
        start local 10 // org.eclipse.jdt.internal.compiler.ast.Initializer initializer
        37: .line 173
            aload 10 /* initializer */
            ifnonnull 38
            aconst_null
            areturn
        38: .line 174
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IType org.eclipse.jdt.core.IJavaElement char[] int int top top top top org.eclipse.jdt.internal.compiler.ast.Initializer
      StackMap stack:
            new org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor
            dup
            aload 0 /* this */
            iload 5 /* findAnonymous */
            iload 4 /* occurenceCount */
            aload 3 /* typeName */
            invokespecial org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor.<init>:(Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder;ZI[C)V
            astore 9 /* visitor */
        start local 9 // org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor visitor
        39: .line 175
            aload 10 /* initializer */
            aload 9 /* visitor */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.ast.Initializer.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;)V
        40: .line 176
            aload 9 /* visitor */
            getfield org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor.result:Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            areturn
        end local 10 // org.eclipse.jdt.internal.compiler.ast.Initializer initializer
        end local 9 // org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor visitor
        41: .line 178
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IType org.eclipse.jdt.core.IJavaElement char[] int int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* parent */
            checkcast org.eclipse.jdt.core.IMethod
            invokevirtual org.eclipse.jdt.internal.core.util.ASTNodeFinder.findMethod:(Lorg/eclipse/jdt/core/IMethod;)Lorg/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration;
            astore 11 /* methodDecl */
        start local 11 // org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration methodDecl
        42: .line 179
            aload 11 /* methodDecl */
            ifnonnull 43
            aconst_null
            areturn
        43: .line 180
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IType org.eclipse.jdt.core.IJavaElement char[] int int top top top top top org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration
      StackMap stack:
            new org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor
            dup
            aload 0 /* this */
            iload 5 /* findAnonymous */
            iload 4 /* occurenceCount */
            aload 3 /* typeName */
            invokespecial org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor.<init>:(Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder;ZI[C)V
            astore 9 /* visitor */
        start local 9 // org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor visitor
        44: .line 181
            aload 11 /* methodDecl */
            aload 9 /* visitor */
            aconst_null
            invokevirtual org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/ClassScope;)V
        45: .line 182
            aload 9 /* visitor */
            getfield org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor.result:Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            areturn
        end local 11 // org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration methodDecl
        end local 9 // org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor visitor
        46: .line 184
      StackMap locals: org.eclipse.jdt.internal.core.util.ASTNodeFinder org.eclipse.jdt.core.IType org.eclipse.jdt.core.IJavaElement char[] int int
      StackMap stack:
            aconst_null
            areturn
        end local 5 // boolean findAnonymous
        end local 4 // int occurenceCount
        end local 3 // char[] typeName
        end local 2 // org.eclipse.jdt.core.IJavaElement parent
        end local 1 // org.eclipse.jdt.core.IType typeHandle
        end local 0 // org.eclipse.jdt.internal.core.util.ASTNodeFinder this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   47     0            this  Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder;
            0   47     1      typeHandle  Lorg/eclipse/jdt/core/IType;
            1   47     2          parent  Lorg/eclipse/jdt/core/IJavaElement;
            2   47     3        typeName  [C
            3   47     4  occurenceCount  I
            6   47     5   findAnonymous  Z
            8   18     6           types  [Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
           21   31     6           types  [Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
           10   17     7               i  I
           11   17     8          length  I
           13   15     9            type  Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
           19   31     7      parentDecl  Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
           23   30     8               i  I
           24   30     9          length  I
           26   28    10            type  Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
           32   36     8       fieldDecl  Lorg/eclipse/jdt/internal/compiler/ast/FieldDeclaration;
           34   36     9         visitor  Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder$1Visitor;
           39   41     9         visitor  Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder$1Visitor;
           44   46     9         visitor  Lorg/eclipse/jdt/internal/core/util/ASTNodeFinder$1Visitor;
           37   41    10     initializer  Lorg/eclipse/jdt/internal/compiler/ast/Initializer;
           42   46    11      methodDecl  Lorg/eclipse/jdt/internal/compiler/ast/AbstractMethodDeclaration;
    MethodParameters:
            Name  Flags
      typeHandle  
}
SourceFile: "ASTNodeFinder.java"
NestMembers:
  org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor
InnerClasses:
  Visitor = org.eclipse.jdt.internal.core.util.ASTNodeFinder$1Visitor