class org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator implements org.aspectj.weaver.ast.ITestVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator
  super_class: java.lang.Object
{
  private boolean matches;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final org.aspectj.weaver.ast.Test test;
    descriptor: Lorg/aspectj/weaver/ast/Test;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object thisObject;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object targetObject;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object[] args;
    descriptor: [Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.aspectj.weaver.tools.MatchingContext matchContext;
    descriptor: Lorg/aspectj/weaver/tools/MatchingContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.aspectj.weaver.ast.Test, java.lang.Object, java.lang.Object, java.lang.Object[], org.aspectj.weaver.tools.MatchingContext);
    descriptor: (Lorg/aspectj/weaver/ast/Test;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Lorg/aspectj/weaver/tools/MatchingContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
        start local 1 // org.aspectj.weaver.ast.Test aTest
        start local 2 // java.lang.Object thisObject
        start local 3 // java.lang.Object targetObject
        start local 4 // java.lang.Object[] args
        start local 5 // org.aspectj.weaver.tools.MatchingContext context
         0: .line 123
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 116
            aload 0 /* this */
            iconst_1
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         2: .line 124
            aload 0 /* this */
            aload 1 /* aTest */
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.test:Lorg/aspectj/weaver/ast/Test;
         3: .line 125
            aload 0 /* this */
            aload 2 /* thisObject */
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.thisObject:Ljava/lang/Object;
         4: .line 126
            aload 0 /* this */
            aload 3 /* targetObject */
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.targetObject:Ljava/lang/Object;
         5: .line 127
            aload 0 /* this */
            aload 4 /* args */
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.args:[Ljava/lang/Object;
         6: .line 128
            aload 0 /* this */
            aload 5 /* context */
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
         7: .line 129
            return
        end local 5 // org.aspectj.weaver.tools.MatchingContext context
        end local 4 // java.lang.Object[] args
        end local 3 // java.lang.Object targetObject
        end local 2 // java.lang.Object thisObject
        end local 1 // org.aspectj.weaver.ast.Test aTest
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;
            0    8     1         aTest  Lorg/aspectj/weaver/ast/Test;
            0    8     2    thisObject  Ljava/lang/Object;
            0    8     3  targetObject  Ljava/lang/Object;
            0    8     4          args  [Ljava/lang/Object;
            0    8     5       context  Lorg/aspectj/weaver/tools/MatchingContext;
    MethodParameters:
              Name  Flags
      aTest         
      thisObject    
      targetObject  
      args          
      context       

  public boolean matches();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
         0: .line 132
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.test:Lorg/aspectj/weaver/ast/Test;
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.ast.Test.accept:(Lorg/aspectj/weaver/ast/ITestVisitor;)V
         1: .line 133
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
            ireturn
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;

  public void visit(org.aspectj.weaver.ast.And);
    descriptor: (Lorg/aspectj/weaver/ast/And;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
        start local 1 // org.aspectj.weaver.ast.And e
         0: .line 137
            new org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator
            dup
            aload 1 /* e */
            invokevirtual org.aspectj.weaver.ast.And.getLeft:()Lorg/aspectj/weaver/ast/Test;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.thisObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.targetObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.args:[Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokespecial org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.<init>:(Lorg/aspectj/weaver/ast/Test;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Lorg/aspectj/weaver/tools/MatchingContext;)V
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:()Z
            istore 2 /* leftMatches */
        start local 2 // boolean leftMatches
         1: .line 138
            iload 2 /* leftMatches */
            ifne 4
         2: .line 139
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         3: .line 140
            goto 5
         4: .line 141
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            new org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator
            dup
            aload 1 /* e */
            invokevirtual org.aspectj.weaver.ast.And.getRight:()Lorg/aspectj/weaver/ast/Test;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.thisObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.targetObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.args:[Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokespecial org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.<init>:(Lorg/aspectj/weaver/ast/Test;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Lorg/aspectj/weaver/tools/MatchingContext;)V
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:()Z
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         5: .line 143
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean leftMatches
        end local 1 // org.aspectj.weaver.ast.And e
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;
            0    6     1            e  Lorg/aspectj/weaver/ast/And;
            1    6     2  leftMatches  Z
    MethodParameters:
      Name  Flags
      e     

  public void visit(org.aspectj.weaver.ast.Instanceof);
    descriptor: (Lorg/aspectj/weaver/ast/Instanceof;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
        start local 1 // org.aspectj.weaver.ast.Instanceof instanceofTest
         0: .line 146
            aload 1 /* instanceofTest */
            invokevirtual org.aspectj.weaver.ast.Instanceof.getVar:()Lorg/aspectj/weaver/ast/Var;
            checkcast org.aspectj.weaver.reflect.ReflectionVar
            astore 2 /* v */
        start local 2 // org.aspectj.weaver.reflect.ReflectionVar v
         1: .line 147
            aload 2 /* v */
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.thisObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.targetObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.args:[Ljava/lang/Object;
            invokevirtual org.aspectj.weaver.reflect.ReflectionVar.getBindingAtJoinPoint:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         2: .line 148
            aload 2 /* v */
            invokevirtual org.aspectj.weaver.reflect.ReflectionVar.getType:()Lorg/aspectj/weaver/ResolvedType;
            invokevirtual org.aspectj.weaver.ResolvedType.getWorld:()Lorg/aspectj/weaver/World;
            astore 4 /* world */
        start local 4 // org.aspectj.weaver.World world
         3: .line 149
            aload 1 /* instanceofTest */
            invokevirtual org.aspectj.weaver.ast.Instanceof.getType:()Lorg/aspectj/weaver/UnresolvedType;
            aload 4 /* world */
            invokevirtual org.aspectj.weaver.UnresolvedType.resolve:(Lorg/aspectj/weaver/World;)Lorg/aspectj/weaver/ResolvedType;
            astore 5 /* desiredType */
        start local 5 // org.aspectj.weaver.ResolvedType desiredType
         4: .line 150
            aload 3 /* value */
            ifnonnull 7
         5: .line 151
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         6: .line 152
            goto 9
         7: .line 153
      StackMap locals: org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator org.aspectj.weaver.ast.Instanceof org.aspectj.weaver.reflect.ReflectionVar java.lang.Object org.aspectj.weaver.World org.aspectj.weaver.ResolvedType
      StackMap stack:
            aload 4 /* world */
            aload 3 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.aspectj.weaver.World.resolve:(Ljava/lang/String;)Lorg/aspectj/weaver/ResolvedType;
            astore 6 /* actualType */
        start local 6 // org.aspectj.weaver.ResolvedType actualType
         8: .line 154
            aload 0 /* this */
            aload 5 /* desiredType */
            aload 6 /* actualType */
            invokevirtual org.aspectj.weaver.ResolvedType.isAssignableFrom:(Lorg/aspectj/weaver/ResolvedType;)Z
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
        end local 6 // org.aspectj.weaver.ResolvedType actualType
         9: .line 156
      StackMap locals:
      StackMap stack:
            return
        end local 5 // org.aspectj.weaver.ResolvedType desiredType
        end local 4 // org.aspectj.weaver.World world
        end local 3 // java.lang.Object value
        end local 2 // org.aspectj.weaver.reflect.ReflectionVar v
        end local 1 // org.aspectj.weaver.ast.Instanceof instanceofTest
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;
            0   10     1  instanceofTest  Lorg/aspectj/weaver/ast/Instanceof;
            1   10     2               v  Lorg/aspectj/weaver/reflect/ReflectionVar;
            2   10     3           value  Ljava/lang/Object;
            3   10     4           world  Lorg/aspectj/weaver/World;
            4   10     5     desiredType  Lorg/aspectj/weaver/ResolvedType;
            8    9     6      actualType  Lorg/aspectj/weaver/ResolvedType;
    MethodParameters:
                Name  Flags
      instanceofTest  

  public void visit(org.aspectj.weaver.internal.tools.MatchingContextBasedTest);
    descriptor: (Lorg/aspectj/weaver/internal/tools/MatchingContextBasedTest;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
        start local 1 // org.aspectj.weaver.internal.tools.MatchingContextBasedTest matchingContextTest
         0: .line 159
            aload 0 /* this */
            aload 1 /* matchingContextTest */
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokevirtual org.aspectj.weaver.internal.tools.MatchingContextBasedTest.matches:(Lorg/aspectj/weaver/tools/MatchingContext;)Z
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         1: .line 160
            return
        end local 1 // org.aspectj.weaver.internal.tools.MatchingContextBasedTest matchingContextTest
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;
            0    2     1  matchingContextTest  Lorg/aspectj/weaver/internal/tools/MatchingContextBasedTest;
    MethodParameters:
                     Name  Flags
      matchingContextTest  

  public void visit(org.aspectj.weaver.ast.Not);
    descriptor: (Lorg/aspectj/weaver/ast/Not;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
        start local 1 // org.aspectj.weaver.ast.Not not
         0: .line 163
            aload 0 /* this */
            new org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator
            dup
            aload 1 /* not */
            invokevirtual org.aspectj.weaver.ast.Not.getBody:()Lorg/aspectj/weaver/ast/Test;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.thisObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.targetObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.args:[Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokespecial org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.<init>:(Lorg/aspectj/weaver/ast/Test;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Lorg/aspectj/weaver/tools/MatchingContext;)V
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack: org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator
         1: iconst_1
      StackMap locals: org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator org.aspectj.weaver.ast.Not
      StackMap stack: org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator int
         2: putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         3: .line 164
            return
        end local 1 // org.aspectj.weaver.ast.Not not
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;
            0    4     1   not  Lorg/aspectj/weaver/ast/Not;
    MethodParameters:
      Name  Flags
      not   

  public void visit(org.aspectj.weaver.ast.Or);
    descriptor: (Lorg/aspectj/weaver/ast/Or;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
        start local 1 // org.aspectj.weaver.ast.Or or
         0: .line 167
            new org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator
            dup
            aload 1 /* or */
            invokevirtual org.aspectj.weaver.ast.Or.getLeft:()Lorg/aspectj/weaver/ast/Test;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.thisObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.targetObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.args:[Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokespecial org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.<init>:(Lorg/aspectj/weaver/ast/Test;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Lorg/aspectj/weaver/tools/MatchingContext;)V
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:()Z
            istore 2 /* leftMatches */
        start local 2 // boolean leftMatches
         1: .line 168
            iload 2 /* leftMatches */
            ifeq 4
         2: .line 169
            aload 0 /* this */
            iconst_1
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         3: .line 170
            goto 5
         4: .line 171
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            new org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator
            dup
            aload 1 /* or */
            invokevirtual org.aspectj.weaver.ast.Or.getRight:()Lorg/aspectj/weaver/ast/Test;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.thisObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.targetObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.args:[Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokespecial org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.<init>:(Lorg/aspectj/weaver/ast/Test;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;Lorg/aspectj/weaver/tools/MatchingContext;)V
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:()Z
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         5: .line 173
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean leftMatches
        end local 1 // org.aspectj.weaver.ast.Or or
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;
            0    6     1           or  Lorg/aspectj/weaver/ast/Or;
            1    6     2  leftMatches  Z
    MethodParameters:
      Name  Flags
      or    

  public void visit(org.aspectj.weaver.ast.Literal);
    descriptor: (Lorg/aspectj/weaver/ast/Literal;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
        start local 1 // org.aspectj.weaver.ast.Literal literal
         0: .line 176
            aload 1 /* literal */
            getstatic org.aspectj.weaver.ast.Literal.FALSE:Lorg/aspectj/weaver/ast/Literal;
            if_acmpne 3
         1: .line 177
            aload 0 /* this */
            iconst_0
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         2: .line 178
            goto 4
         3: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         4: .line 181
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.aspectj.weaver.ast.Literal literal
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;
            0    5     1  literal  Lorg/aspectj/weaver/ast/Literal;
    MethodParameters:
         Name  Flags
      literal  

  public void visit(org.aspectj.weaver.ast.Call);
    descriptor: (Lorg/aspectj/weaver/ast/Call;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
        start local 1 // org.aspectj.weaver.ast.Call call
         0: .line 184
            new java.lang.UnsupportedOperationException
            dup
            ldc "Can't evaluate call test at runtime"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.aspectj.weaver.ast.Call call
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;
            0    1     1  call  Lorg/aspectj/weaver/ast/Call;
    MethodParameters:
      Name  Flags
      call  

  public void visit(org.aspectj.weaver.ast.FieldGetCall);
    descriptor: (Lorg/aspectj/weaver/ast/FieldGetCall;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
        start local 1 // org.aspectj.weaver.ast.FieldGetCall fieldGetCall
         0: .line 188
            new java.lang.UnsupportedOperationException
            dup
            ldc "Can't evaluate fieldGetCall test at runtime"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // org.aspectj.weaver.ast.FieldGetCall fieldGetCall
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;
            0    1     1  fieldGetCall  Lorg/aspectj/weaver/ast/FieldGetCall;
    MethodParameters:
              Name  Flags
      fieldGetCall  

  public void visit(org.aspectj.weaver.ast.HasAnnotation);
    descriptor: (Lorg/aspectj/weaver/ast/HasAnnotation;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
        start local 1 // org.aspectj.weaver.ast.HasAnnotation hasAnnotation
         0: .line 192
            aload 1 /* hasAnnotation */
            invokevirtual org.aspectj.weaver.ast.HasAnnotation.getVar:()Lorg/aspectj/weaver/ast/Var;
            checkcast org.aspectj.weaver.reflect.ReflectionVar
            astore 2 /* v */
        start local 2 // org.aspectj.weaver.reflect.ReflectionVar v
         1: .line 193
            aload 2 /* v */
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.thisObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.targetObject:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.args:[Ljava/lang/Object;
            invokevirtual org.aspectj.weaver.reflect.ReflectionVar.getBindingAtJoinPoint:(Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         2: .line 194
            aload 2 /* v */
            invokevirtual org.aspectj.weaver.reflect.ReflectionVar.getType:()Lorg/aspectj/weaver/ResolvedType;
            invokevirtual org.aspectj.weaver.ResolvedType.getWorld:()Lorg/aspectj/weaver/World;
            astore 4 /* world */
        start local 4 // org.aspectj.weaver.World world
         3: .line 195
            aload 4 /* world */
            aload 3 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.aspectj.weaver.World.resolve:(Ljava/lang/String;)Lorg/aspectj/weaver/ResolvedType;
            astore 5 /* actualVarType */
        start local 5 // org.aspectj.weaver.ResolvedType actualVarType
         4: .line 196
            aload 1 /* hasAnnotation */
            invokevirtual org.aspectj.weaver.ast.HasAnnotation.getAnnotationType:()Lorg/aspectj/weaver/UnresolvedType;
            aload 4 /* world */
            invokevirtual org.aspectj.weaver.UnresolvedType.resolve:(Lorg/aspectj/weaver/World;)Lorg/aspectj/weaver/ResolvedType;
            astore 6 /* requiredAnnotationType */
        start local 6 // org.aspectj.weaver.ResolvedType requiredAnnotationType
         5: .line 197
            aload 0 /* this */
            aload 5 /* actualVarType */
            aload 6 /* requiredAnnotationType */
            invokevirtual org.aspectj.weaver.ResolvedType.hasAnnotation:(Lorg/aspectj/weaver/UnresolvedType;)Z
            putfield org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator.matches:Z
         6: .line 198
            return
        end local 6 // org.aspectj.weaver.ResolvedType requiredAnnotationType
        end local 5 // org.aspectj.weaver.ResolvedType actualVarType
        end local 4 // org.aspectj.weaver.World world
        end local 3 // java.lang.Object value
        end local 2 // org.aspectj.weaver.reflect.ReflectionVar v
        end local 1 // org.aspectj.weaver.ast.HasAnnotation hasAnnotation
        end local 0 // org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    7     0                    this  Lorg/aspectj/weaver/reflect/ShadowMatchImpl$RuntimeTestEvaluator;
            0    7     1           hasAnnotation  Lorg/aspectj/weaver/ast/HasAnnotation;
            1    7     2                       v  Lorg/aspectj/weaver/reflect/ReflectionVar;
            2    7     3                   value  Ljava/lang/Object;
            3    7     4                   world  Lorg/aspectj/weaver/World;
            4    7     5           actualVarType  Lorg/aspectj/weaver/ResolvedType;
            5    7     6  requiredAnnotationType  Lorg/aspectj/weaver/ResolvedType;
    MethodParameters:
               Name  Flags
      hasAnnotation  
}
SourceFile: "ShadowMatchImpl.java"
NestHost: org.aspectj.weaver.reflect.ShadowMatchImpl
InnerClasses:
  private RuntimeTestEvaluator = org.aspectj.weaver.reflect.ShadowMatchImpl$RuntimeTestEvaluator of org.aspectj.weaver.reflect.ShadowMatchImpl