class org.springframework.aop.aspectj.RuntimeTestWalker
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.aop.aspectj.RuntimeTestWalker
  super_class: java.lang.Object
{
  private static final java.lang.reflect.Field residualTestField;
    descriptor: Ljava/lang/reflect/Field;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.reflect.Field varTypeField;
    descriptor: Ljava/lang/reflect/Field;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.reflect.Field myClassField;
    descriptor: Ljava/lang/reflect/Field;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.aspectj.weaver.ast.Test runtimeTest;
    descriptor: Lorg/aspectj/weaver/ast/Test;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=0
         0: .line 71
            ldc Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            ldc "residualTest"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            putstatic org.springframework.aop.aspectj.RuntimeTestWalker.residualTestField:Ljava/lang/reflect/Field;
         1: .line 72
            ldc Lorg/aspectj/weaver/reflect/ReflectionVar;
            ldc "varType"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            putstatic org.springframework.aop.aspectj.RuntimeTestWalker.varTypeField:Ljava/lang/reflect/Field;
         2: .line 73
            ldc Lorg/aspectj/weaver/reflect/ReflectionBasedReferenceTypeDelegate;
            ldc "myClass"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            putstatic org.springframework.aop.aspectj.RuntimeTestWalker.myClassField:Ljava/lang/reflect/Field;
         3: .line 74
            goto 8
         4: .line 75
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldException
            astore 0 /* ex */
        start local 0 // java.lang.NoSuchFieldException ex
         5: .line 76
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The version of aspectjtools.jar / aspectjweaver.jar on the classpath is incompatible with this version of Spring: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 77
            aload 0 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 76
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.NoSuchFieldException ex
         8: .line 79
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            5    8     0    ex  Ljava/lang/NoSuchFieldException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.NoSuchFieldException

  public void <init>(org.aspectj.weaver.tools.ShadowMatch);
    descriptor: (Lorg/aspectj/weaver/tools/ShadowMatch;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.springframework.aop.aspectj.RuntimeTestWalker this
        start local 1 // org.aspectj.weaver.tools.ShadowMatch shadowMatch
         0: .line 86
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 88
            getstatic org.springframework.aop.aspectj.RuntimeTestWalker.residualTestField:Ljava/lang/reflect/Field;
            invokestatic org.springframework.util.ReflectionUtils.makeAccessible:(Ljava/lang/reflect/Field;)V
         2: .line 89
            aload 0 /* this */
            getstatic org.springframework.aop.aspectj.RuntimeTestWalker.residualTestField:Ljava/lang/reflect/Field;
            aload 1 /* shadowMatch */
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.aspectj.weaver.ast.Test
            putfield org.springframework.aop.aspectj.RuntimeTestWalker.runtimeTest:Lorg/aspectj/weaver/ast/Test;
         3: .line 90
            goto 6
         4: .line 91
      StackMap locals: org.springframework.aop.aspectj.RuntimeTestWalker org.aspectj.weaver.tools.ShadowMatch
      StackMap stack: java.lang.IllegalAccessException
            astore 2 /* ex */
        start local 2 // java.lang.IllegalAccessException ex
         5: .line 92
            new java.lang.IllegalStateException
            dup
            aload 2 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.IllegalAccessException ex
         6: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.aspectj.weaver.tools.ShadowMatch shadowMatch
        end local 0 // org.springframework.aop.aspectj.RuntimeTestWalker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/springframework/aop/aspectj/RuntimeTestWalker;
            0    7     1  shadowMatch  Lorg/aspectj/weaver/tools/ShadowMatch;
            5    6     2           ex  Ljava/lang/IllegalAccessException;
      Exception table:
        from    to  target  type
           1     3       4  Class java.lang.IllegalAccessException
    MethodParameters:
             Name  Flags
      shadowMatch  

  public boolean testsSubtypeSensitiveVars();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.aop.aspectj.RuntimeTestWalker this
         0: .line 102
            aload 0 /* this */
            getfield org.springframework.aop.aspectj.RuntimeTestWalker.runtimeTest:Lorg/aspectj/weaver/ast/Test;
            ifnull 3
         1: .line 103
            new org.springframework.aop.aspectj.RuntimeTestWalker$SubtypeSensitiveVarTypeTestVisitor
            dup
            invokespecial org.springframework.aop.aspectj.RuntimeTestWalker$SubtypeSensitiveVarTypeTestVisitor.<init>:()V
            aload 0 /* this */
            getfield org.springframework.aop.aspectj.RuntimeTestWalker.runtimeTest:Lorg/aspectj/weaver/ast/Test;
            invokevirtual org.springframework.aop.aspectj.RuntimeTestWalker$SubtypeSensitiveVarTypeTestVisitor.testsSubtypeSensitiveVars:(Lorg/aspectj/weaver/ast/Test;)Z
            ifeq 3
         2: .line 102
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // org.springframework.aop.aspectj.RuntimeTestWalker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/aop/aspectj/RuntimeTestWalker;

  public boolean testThisInstanceOfResidue(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.aop.aspectj.RuntimeTestWalker this
        start local 1 // java.lang.Class thisClass
         0: .line 107
            aload 0 /* this */
            getfield org.springframework.aop.aspectj.RuntimeTestWalker.runtimeTest:Lorg/aspectj/weaver/ast/Test;
            ifnull 3
         1: .line 108
            new org.springframework.aop.aspectj.RuntimeTestWalker$ThisInstanceOfResidueTestVisitor
            dup
            aload 1 /* thisClass */
            invokespecial org.springframework.aop.aspectj.RuntimeTestWalker$ThisInstanceOfResidueTestVisitor.<init>:(Ljava/lang/Class;)V
            aload 0 /* this */
            getfield org.springframework.aop.aspectj.RuntimeTestWalker.runtimeTest:Lorg/aspectj/weaver/ast/Test;
            invokevirtual org.springframework.aop.aspectj.RuntimeTestWalker$ThisInstanceOfResidueTestVisitor.thisInstanceOfMatches:(Lorg/aspectj/weaver/ast/Test;)Z
            ifeq 3
         2: .line 107
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // java.lang.Class thisClass
        end local 0 // org.springframework.aop.aspectj.RuntimeTestWalker this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/springframework/aop/aspectj/RuntimeTestWalker;
            0    4     1  thisClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
           Name  Flags
      thisClass  

  public boolean testTargetInstanceOfResidue(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.aop.aspectj.RuntimeTestWalker this
        start local 1 // java.lang.Class targetClass
         0: .line 112
            aload 0 /* this */
            getfield org.springframework.aop.aspectj.RuntimeTestWalker.runtimeTest:Lorg/aspectj/weaver/ast/Test;
            ifnull 3
         1: .line 113
            new org.springframework.aop.aspectj.RuntimeTestWalker$TargetInstanceOfResidueTestVisitor
            dup
            aload 1 /* targetClass */
            invokespecial org.springframework.aop.aspectj.RuntimeTestWalker$TargetInstanceOfResidueTestVisitor.<init>:(Ljava/lang/Class;)V
            aload 0 /* this */
            getfield org.springframework.aop.aspectj.RuntimeTestWalker.runtimeTest:Lorg/aspectj/weaver/ast/Test;
            invokevirtual org.springframework.aop.aspectj.RuntimeTestWalker$TargetInstanceOfResidueTestVisitor.targetInstanceOfMatches:(Lorg/aspectj/weaver/ast/Test;)Z
            ifeq 3
         2: .line 112
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // java.lang.Class targetClass
        end local 0 // org.springframework.aop.aspectj.RuntimeTestWalker this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/springframework/aop/aspectj/RuntimeTestWalker;
            0    4     1  targetClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
             Name  Flags
      targetClass  
}
SourceFile: "RuntimeTestWalker.java"
NestMembers:
  org.springframework.aop.aspectj.RuntimeTestWalker$InstanceOfResidueTestVisitor  org.springframework.aop.aspectj.RuntimeTestWalker$SubtypeSensitiveVarTypeTestVisitor  org.springframework.aop.aspectj.RuntimeTestWalker$TargetInstanceOfResidueTestVisitor  org.springframework.aop.aspectj.RuntimeTestWalker$TestVisitorAdapter  org.springframework.aop.aspectj.RuntimeTestWalker$ThisInstanceOfResidueTestVisitor
InnerClasses:
  private abstract InstanceOfResidueTestVisitor = org.springframework.aop.aspectj.RuntimeTestWalker$InstanceOfResidueTestVisitor of org.springframework.aop.aspectj.RuntimeTestWalker
  private SubtypeSensitiveVarTypeTestVisitor = org.springframework.aop.aspectj.RuntimeTestWalker$SubtypeSensitiveVarTypeTestVisitor of org.springframework.aop.aspectj.RuntimeTestWalker
  private TargetInstanceOfResidueTestVisitor = org.springframework.aop.aspectj.RuntimeTestWalker$TargetInstanceOfResidueTestVisitor of org.springframework.aop.aspectj.RuntimeTestWalker
  private TestVisitorAdapter = org.springframework.aop.aspectj.RuntimeTestWalker$TestVisitorAdapter of org.springframework.aop.aspectj.RuntimeTestWalker
  private ThisInstanceOfResidueTestVisitor = org.springframework.aop.aspectj.RuntimeTestWalker$ThisInstanceOfResidueTestVisitor of org.springframework.aop.aspectj.RuntimeTestWalker