public class org.aspectj.weaver.internal.tools.PointcutExpressionImpl implements org.aspectj.weaver.tools.PointcutExpression
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.weaver.internal.tools.PointcutExpressionImpl
  super_class: java.lang.Object
{
  private static final boolean MATCH_INFO;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private org.aspectj.weaver.World world;
    descriptor: Lorg/aspectj/weaver/World;
    flags: (0x0002) ACC_PRIVATE

  private org.aspectj.weaver.patterns.Pointcut pointcut;
    descriptor: Lorg/aspectj/weaver/patterns/Pointcut;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String expression;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.aspectj.weaver.tools.PointcutParameter[] parameters;
    descriptor: [Lorg/aspectj/weaver/tools/PointcutParameter;
    flags: (0x0002) ACC_PRIVATE

  private org.aspectj.weaver.tools.MatchingContext matchContext;
    descriptor: Lorg/aspectj/weaver/tools/MatchingContext;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(org.aspectj.weaver.patterns.Pointcut, java.lang.String, org.aspectj.weaver.tools.PointcutParameter[], org.aspectj.weaver.World);
    descriptor: (Lorg/aspectj/weaver/patterns/Pointcut;Ljava/lang/String;[Lorg/aspectj/weaver/tools/PointcutParameter;Lorg/aspectj/weaver/World;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // org.aspectj.weaver.patterns.Pointcut pointcut
        start local 2 // java.lang.String expression
        start local 3 // org.aspectj.weaver.tools.PointcutParameter[] params
        start local 4 // org.aspectj.weaver.World inWorld
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 57
            aload 0 /* this */
            new org.aspectj.weaver.tools.DefaultMatchingContext
            dup
            invokespecial org.aspectj.weaver.tools.DefaultMatchingContext.<init>:()V
            putfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
         2: .line 60
            aload 0 /* this */
            aload 1 /* pointcut */
            putfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.pointcut:Lorg/aspectj/weaver/patterns/Pointcut;
         3: .line 61
            aload 0 /* this */
            aload 2 /* expression */
            putfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.expression:Ljava/lang/String;
         4: .line 62
            aload 0 /* this */
            aload 4 /* inWorld */
            putfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
         5: .line 63
            aload 0 /* this */
            aload 3 /* params */
            putfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.parameters:[Lorg/aspectj/weaver/tools/PointcutParameter;
         6: .line 64
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.parameters:[Lorg/aspectj/weaver/tools/PointcutParameter;
            ifnonnull 8
         7: .line 65
            aload 0 /* this */
            iconst_0
            anewarray org.aspectj.weaver.tools.PointcutParameter
            putfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.parameters:[Lorg/aspectj/weaver/tools/PointcutParameter;
         8: .line 67
      StackMap locals: org.aspectj.weaver.internal.tools.PointcutExpressionImpl org.aspectj.weaver.patterns.Pointcut java.lang.String org.aspectj.weaver.tools.PointcutParameter[] org.aspectj.weaver.World
      StackMap stack:
            return
        end local 4 // org.aspectj.weaver.World inWorld
        end local 3 // org.aspectj.weaver.tools.PointcutParameter[] params
        end local 2 // java.lang.String expression
        end local 1 // org.aspectj.weaver.patterns.Pointcut pointcut
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    9     1    pointcut  Lorg/aspectj/weaver/patterns/Pointcut;
            0    9     2  expression  Ljava/lang/String;
            0    9     3      params  [Lorg/aspectj/weaver/tools/PointcutParameter;
            0    9     4     inWorld  Lorg/aspectj/weaver/World;
    MethodParameters:
            Name  Flags
      pointcut    
      expression  
      params      
      inWorld     

  public org.aspectj.weaver.patterns.Pointcut getUnderlyingPointcut();
    descriptor: ()Lorg/aspectj/weaver/patterns/Pointcut;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
         0: .line 70
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.pointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            areturn
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;

  public void setMatchingContext(org.aspectj.weaver.tools.MatchingContext);
    descriptor: (Lorg/aspectj/weaver/tools/MatchingContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // org.aspectj.weaver.tools.MatchingContext aMatchContext
         0: .line 79
            aload 0 /* this */
            aload 1 /* aMatchContext */
            putfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
         1: .line 80
            return
        end local 1 // org.aspectj.weaver.tools.MatchingContext aMatchContext
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    2     1  aMatchContext  Lorg/aspectj/weaver/tools/MatchingContext;
    MethodParameters:
               Name  Flags
      aMatchContext  

  public boolean couldMatchJoinPointsInType(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.Class aClass
         0: .line 83
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.aspectj.weaver.World.resolve:(Ljava/lang/String;)Lorg/aspectj/weaver/ResolvedType;
            astore 2 /* matchType */
        start local 2 // org.aspectj.weaver.ResolvedType matchType
         1: .line 84
            aload 2 /* matchType */
            invokevirtual org.aspectj.weaver.ResolvedType.isMissing:()Z
            ifeq 3
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            instanceof org.aspectj.weaver.reflect.ReflectionWorld
            ifeq 3
         2: .line 88
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            checkcast org.aspectj.weaver.reflect.ReflectionWorld
            aload 1 /* aClass */
            invokevirtual org.aspectj.weaver.reflect.ReflectionWorld.resolveUsingClass:(Ljava/lang/Class;)Lorg/aspectj/weaver/ResolvedType;
            astore 2 /* matchType */
         3: .line 90
      StackMap locals: org.aspectj.weaver.ResolvedType
      StackMap stack:
            new org.aspectj.weaver.reflect.ReflectionFastMatchInfo
            dup
            aload 2 /* matchType */
            aconst_null
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            invokespecial org.aspectj.weaver.reflect.ReflectionFastMatchInfo.<init>:(Lorg/aspectj/weaver/ResolvedType;Lorg/aspectj/weaver/Shadow$Kind;Lorg/aspectj/weaver/tools/MatchingContext;Lorg/aspectj/weaver/World;)V
            astore 3 /* info */
        start local 3 // org.aspectj.weaver.reflect.ReflectionFastMatchInfo info
         4: .line 91
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.pointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            aload 3 /* info */
            invokevirtual org.aspectj.weaver.patterns.Pointcut.fastMatch:(Lorg/aspectj/weaver/patterns/FastMatchInfo;)Lorg/aspectj/util/FuzzyBoolean;
            invokevirtual org.aspectj.util.FuzzyBoolean.maybeTrue:()Z
            istore 4 /* couldMatch */
        start local 4 // boolean couldMatch
         5: .line 96
            iload 4 /* couldMatch */
            ireturn
        end local 4 // boolean couldMatch
        end local 3 // org.aspectj.weaver.reflect.ReflectionFastMatchInfo info
        end local 2 // org.aspectj.weaver.ResolvedType matchType
        end local 1 // java.lang.Class aClass
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1      aClass  Ljava/lang/Class;
            1    6     2   matchType  Lorg/aspectj/weaver/ResolvedType;
            4    6     3        info  Lorg/aspectj/weaver/reflect/ReflectionFastMatchInfo;
            5    6     4  couldMatch  Z
    MethodParameters:
        Name  Flags
      aClass  

  public boolean mayNeedDynamicTest();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
         0: .line 100
            new org.aspectj.weaver.internal.tools.PointcutExpressionImpl$HasPossibleDynamicContentVisitor
            dup
            invokespecial org.aspectj.weaver.internal.tools.PointcutExpressionImpl$HasPossibleDynamicContentVisitor.<init>:()V
            astore 1 /* visitor */
        start local 1 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl$HasPossibleDynamicContentVisitor visitor
         1: .line 101
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.pointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            aload 1 /* visitor */
            aconst_null
            invokevirtual org.aspectj.weaver.patterns.Pointcut.traverse:(Lorg/aspectj/weaver/patterns/PatternNodeVisitor;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 102
            aload 1 /* visitor */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl$HasPossibleDynamicContentVisitor.hasDynamicContent:()Z
            ireturn
        end local 1 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl$HasPossibleDynamicContentVisitor visitor
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            1    3     1  visitor  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl$HasPossibleDynamicContentVisitor;

  private org.aspectj.weaver.patterns.ExposedState getExposedState();
    descriptor: ()Lorg/aspectj/weaver/patterns/ExposedState;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
         0: .line 106
            new org.aspectj.weaver.patterns.ExposedState
            dup
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.parameters:[Lorg/aspectj/weaver/tools/PointcutParameter;
            arraylength
            invokespecial org.aspectj.weaver.patterns.ExposedState.<init>:(I)V
            areturn
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;

  public org.aspectj.weaver.tools.ShadowMatch matchesMethodExecution(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Method aMethod
         0: .line 110
            aload 0 /* this */
            aload 1 /* aMethod */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchesExecution:(Ljava/lang/reflect/Member;)Lorg/aspectj/weaver/tools/ShadowMatch;
            astore 2 /* match */
        start local 2 // org.aspectj.weaver.tools.ShadowMatch match
         1: .line 115
            aload 2 /* match */
            areturn
        end local 2 // org.aspectj.weaver.tools.ShadowMatch match
        end local 1 // java.lang.reflect.Method aMethod
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    2     1  aMethod  Ljava/lang/reflect/Method;
            1    2     2    match  Lorg/aspectj/weaver/tools/ShadowMatch;
    MethodParameters:
         Name  Flags
      aMethod  

  public org.aspectj.weaver.tools.ShadowMatch matchesConstructorExecution(java.lang.reflect.Constructor);
    descriptor: (Ljava/lang/reflect/Constructor;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Constructor aConstructor
         0: .line 119
            aload 0 /* this */
            aload 1 /* aConstructor */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchesExecution:(Ljava/lang/reflect/Member;)Lorg/aspectj/weaver/tools/ShadowMatch;
            astore 2 /* match */
        start local 2 // org.aspectj.weaver.tools.ShadowMatch match
         1: .line 124
            aload 2 /* match */
            areturn
        end local 2 // org.aspectj.weaver.tools.ShadowMatch match
        end local 1 // java.lang.reflect.Constructor aConstructor
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    2     1  aConstructor  Ljava/lang/reflect/Constructor;
            1    2     2         match  Lorg/aspectj/weaver/tools/ShadowMatch;
    MethodParameters:
              Name  Flags
      aConstructor  

  private org.aspectj.weaver.tools.ShadowMatch matchesExecution(java.lang.reflect.Member);
    descriptor: (Ljava/lang/reflect/Member;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Member aMember
         0: .line 128
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aMember */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeExecutionShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Member;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 2 /* s */
        start local 2 // org.aspectj.weaver.Shadow s
         1: .line 129
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 3 /* sm */
        start local 3 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 130
            aload 3 /* sm */
            aload 1 /* aMember */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 131
            aload 3 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 132
            aload 3 /* sm */
            aload 1 /* aMember */
            invokeinterface java.lang.reflect.Member.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 133
            aload 3 /* sm */
            areturn
        end local 3 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 2 // org.aspectj.weaver.Shadow s
        end local 1 // java.lang.reflect.Member aMember
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1  aMember  Ljava/lang/reflect/Member;
            1    6     2        s  Lorg/aspectj/weaver/Shadow;
            2    6     3       sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
         Name  Flags
      aMember  

  public org.aspectj.weaver.tools.ShadowMatch matchesStaticInitialization(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.Class aClass
         0: .line 137
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aClass */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeStaticInitializationShadow:(Lorg/aspectj/weaver/World;Ljava/lang/Class;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 2 /* s */
        start local 2 // org.aspectj.weaver.Shadow s
         1: .line 138
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 3 /* sm */
        start local 3 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 139
            aload 3 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 140
            aload 3 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 141
            aload 3 /* sm */
            aload 1 /* aClass */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 146
            aload 3 /* sm */
            areturn
        end local 3 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 2 // org.aspectj.weaver.Shadow s
        end local 1 // java.lang.Class aClass
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1  aClass  Ljava/lang/Class;
            1    6     2       s  Lorg/aspectj/weaver/Shadow;
            2    6     3      sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
        Name  Flags
      aClass  

  public org.aspectj.weaver.tools.ShadowMatch matchesAdviceExecution(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Method aMethod
         0: .line 150
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aMethod */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeAdviceExecutionShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Method;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 2 /* s */
        start local 2 // org.aspectj.weaver.Shadow s
         1: .line 151
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 3 /* sm */
        start local 3 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 152
            aload 3 /* sm */
            aload 1 /* aMethod */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 153
            aload 3 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 154
            aload 3 /* sm */
            aload 1 /* aMethod */
            invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 159
            aload 3 /* sm */
            areturn
        end local 3 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 2 // org.aspectj.weaver.Shadow s
        end local 1 // java.lang.reflect.Method aMethod
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1  aMethod  Ljava/lang/reflect/Method;
            1    6     2        s  Lorg/aspectj/weaver/Shadow;
            2    6     3       sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
         Name  Flags
      aMethod  

  public org.aspectj.weaver.tools.ShadowMatch matchesInitialization(java.lang.reflect.Constructor);
    descriptor: (Ljava/lang/reflect/Constructor;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Constructor aConstructor
         0: .line 163
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aConstructor */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeInitializationShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Constructor;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 2 /* s */
        start local 2 // org.aspectj.weaver.Shadow s
         1: .line 164
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 3 /* sm */
        start local 3 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 165
            aload 3 /* sm */
            aload 1 /* aConstructor */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 166
            aload 3 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 167
            aload 3 /* sm */
            aload 1 /* aConstructor */
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 172
            aload 3 /* sm */
            areturn
        end local 3 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 2 // org.aspectj.weaver.Shadow s
        end local 1 // java.lang.reflect.Constructor aConstructor
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1  aConstructor  Ljava/lang/reflect/Constructor;
            1    6     2             s  Lorg/aspectj/weaver/Shadow;
            2    6     3            sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
              Name  Flags
      aConstructor  

  public org.aspectj.weaver.tools.ShadowMatch matchesPreInitialization(java.lang.reflect.Constructor);
    descriptor: (Ljava/lang/reflect/Constructor;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Constructor aConstructor
         0: .line 176
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aConstructor */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makePreInitializationShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Constructor;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 2 /* s */
        start local 2 // org.aspectj.weaver.Shadow s
         1: .line 177
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 3 /* sm */
        start local 3 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 178
            aload 3 /* sm */
            aload 1 /* aConstructor */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 179
            aload 3 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 180
            aload 3 /* sm */
            aload 1 /* aConstructor */
            invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 185
            aload 3 /* sm */
            areturn
        end local 3 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 2 // org.aspectj.weaver.Shadow s
        end local 1 // java.lang.reflect.Constructor aConstructor
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1  aConstructor  Ljava/lang/reflect/Constructor;
            1    6     2             s  Lorg/aspectj/weaver/Shadow;
            2    6     3            sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
              Name  Flags
      aConstructor  

  public org.aspectj.weaver.tools.ShadowMatch matchesMethodCall(java.lang.reflect.Method, java.lang.reflect.Member);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/reflect/Member;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Method aMethod
        start local 2 // java.lang.reflect.Member withinCode
         0: .line 189
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aMethod */
            aload 2 /* withinCode */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeCallShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Member;Ljava/lang/reflect/Member;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 3 /* s */
        start local 3 // org.aspectj.weaver.Shadow s
         1: .line 190
            aload 0 /* this */
            aload 3 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 4 /* sm */
        start local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 191
            aload 4 /* sm */
            aload 1 /* aMethod */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 192
            aload 4 /* sm */
            aload 2 /* withinCode */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 193
            aload 4 /* sm */
            aload 2 /* withinCode */
            invokeinterface java.lang.reflect.Member.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 198
            aload 4 /* sm */
            areturn
        end local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 3 // org.aspectj.weaver.Shadow s
        end local 2 // java.lang.reflect.Member withinCode
        end local 1 // java.lang.reflect.Method aMethod
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1     aMethod  Ljava/lang/reflect/Method;
            0    6     2  withinCode  Ljava/lang/reflect/Member;
            1    6     3           s  Lorg/aspectj/weaver/Shadow;
            2    6     4          sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
            Name  Flags
      aMethod     
      withinCode  

  public org.aspectj.weaver.tools.ShadowMatch matchesMethodCall(java.lang.reflect.Method, java.lang.Class);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/Class;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Method aMethod
        start local 2 // java.lang.Class callerType
         0: .line 202
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aMethod */
            aload 2 /* callerType */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeCallShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Member;Ljava/lang/Class;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 3 /* s */
        start local 3 // org.aspectj.weaver.Shadow s
         1: .line 203
            aload 0 /* this */
            aload 3 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 4 /* sm */
        start local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 204
            aload 4 /* sm */
            aload 1 /* aMethod */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 205
            aload 4 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 206
            aload 4 /* sm */
            aload 2 /* callerType */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 211
            aload 4 /* sm */
            areturn
        end local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 3 // org.aspectj.weaver.Shadow s
        end local 2 // java.lang.Class callerType
        end local 1 // java.lang.reflect.Method aMethod
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1     aMethod  Ljava/lang/reflect/Method;
            0    6     2  callerType  Ljava/lang/Class;
            1    6     3           s  Lorg/aspectj/weaver/Shadow;
            2    6     4          sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
            Name  Flags
      aMethod     
      callerType  

  public org.aspectj.weaver.tools.ShadowMatch matchesConstructorCall(java.lang.reflect.Constructor, java.lang.Class);
    descriptor: (Ljava/lang/reflect/Constructor;Ljava/lang/Class;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Constructor aConstructor
        start local 2 // java.lang.Class callerType
         0: .line 215
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aConstructor */
            aload 2 /* callerType */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeCallShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Member;Ljava/lang/Class;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 3 /* s */
        start local 3 // org.aspectj.weaver.Shadow s
         1: .line 216
            aload 0 /* this */
            aload 3 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 4 /* sm */
        start local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 217
            aload 4 /* sm */
            aload 1 /* aConstructor */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 218
            aload 4 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 219
            aload 4 /* sm */
            aload 2 /* callerType */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 224
            aload 4 /* sm */
            areturn
        end local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 3 // org.aspectj.weaver.Shadow s
        end local 2 // java.lang.Class callerType
        end local 1 // java.lang.reflect.Constructor aConstructor
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1  aConstructor  Ljava/lang/reflect/Constructor;
            0    6     2    callerType  Ljava/lang/Class;
            1    6     3             s  Lorg/aspectj/weaver/Shadow;
            2    6     4            sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
              Name  Flags
      aConstructor  
      callerType    

  public org.aspectj.weaver.tools.ShadowMatch matchesConstructorCall(java.lang.reflect.Constructor, java.lang.reflect.Member);
    descriptor: (Ljava/lang/reflect/Constructor;Ljava/lang/reflect/Member;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Constructor aConstructor
        start local 2 // java.lang.reflect.Member withinCode
         0: .line 228
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aConstructor */
            aload 2 /* withinCode */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeCallShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Member;Ljava/lang/reflect/Member;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 3 /* s */
        start local 3 // org.aspectj.weaver.Shadow s
         1: .line 229
            aload 0 /* this */
            aload 3 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 4 /* sm */
        start local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 230
            aload 4 /* sm */
            aload 1 /* aConstructor */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 231
            aload 4 /* sm */
            aload 2 /* withinCode */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 232
            aload 4 /* sm */
            aload 2 /* withinCode */
            invokeinterface java.lang.reflect.Member.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 237
            aload 4 /* sm */
            areturn
        end local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 3 // org.aspectj.weaver.Shadow s
        end local 2 // java.lang.reflect.Member withinCode
        end local 1 // java.lang.reflect.Constructor aConstructor
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1  aConstructor  Ljava/lang/reflect/Constructor;
            0    6     2    withinCode  Ljava/lang/reflect/Member;
            1    6     3             s  Lorg/aspectj/weaver/Shadow;
            2    6     4            sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
              Name  Flags
      aConstructor  
      withinCode    

  public org.aspectj.weaver.tools.ShadowMatch matchesHandler(java.lang.Class, java.lang.Class);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.Class exceptionType
        start local 2 // java.lang.Class handlingType
         0: .line 241
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* exceptionType */
            aload 2 /* handlingType */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeHandlerShadow:(Lorg/aspectj/weaver/World;Ljava/lang/Class;Ljava/lang/Class;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 3 /* s */
        start local 3 // org.aspectj.weaver.Shadow s
         1: .line 242
            aload 0 /* this */
            aload 3 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 4 /* sm */
        start local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 243
            aload 4 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 244
            aload 4 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 245
            aload 4 /* sm */
            aload 2 /* handlingType */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 250
            aload 4 /* sm */
            areturn
        end local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 3 // org.aspectj.weaver.Shadow s
        end local 2 // java.lang.Class handlingType
        end local 1 // java.lang.Class exceptionType
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1  exceptionType  Ljava/lang/Class;
            0    6     2   handlingType  Ljava/lang/Class;
            1    6     3              s  Lorg/aspectj/weaver/Shadow;
            2    6     4             sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
               Name  Flags
      exceptionType  
      handlingType   

  public org.aspectj.weaver.tools.ShadowMatch matchesHandler(java.lang.Class, java.lang.reflect.Member);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Member;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.Class exceptionType
        start local 2 // java.lang.reflect.Member withinCode
         0: .line 254
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* exceptionType */
            aload 2 /* withinCode */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeHandlerShadow:(Lorg/aspectj/weaver/World;Ljava/lang/Class;Ljava/lang/reflect/Member;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 3 /* s */
        start local 3 // org.aspectj.weaver.Shadow s
         1: .line 255
            aload 0 /* this */
            aload 3 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 4 /* sm */
        start local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 256
            aload 4 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 257
            aload 4 /* sm */
            aload 2 /* withinCode */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 258
            aload 4 /* sm */
            aload 2 /* withinCode */
            invokeinterface java.lang.reflect.Member.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 263
            aload 4 /* sm */
            areturn
        end local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 3 // org.aspectj.weaver.Shadow s
        end local 2 // java.lang.reflect.Member withinCode
        end local 1 // java.lang.Class exceptionType
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1  exceptionType  Ljava/lang/Class;
            0    6     2     withinCode  Ljava/lang/reflect/Member;
            1    6     3              s  Lorg/aspectj/weaver/Shadow;
            2    6     4             sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
               Name  Flags
      exceptionType  
      withinCode     

  public org.aspectj.weaver.tools.ShadowMatch matchesFieldGet(java.lang.reflect.Field, java.lang.Class);
    descriptor: (Ljava/lang/reflect/Field;Ljava/lang/Class;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Field aField
        start local 2 // java.lang.Class withinType
         0: .line 267
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aField */
            aload 2 /* withinType */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeFieldGetShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Field;Ljava/lang/Class;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 3 /* s */
        start local 3 // org.aspectj.weaver.Shadow s
         1: .line 268
            aload 0 /* this */
            aload 3 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 4 /* sm */
        start local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 269
            aload 4 /* sm */
            aload 1 /* aField */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 270
            aload 4 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 271
            aload 4 /* sm */
            aload 2 /* withinType */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 276
            aload 4 /* sm */
            areturn
        end local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 3 // org.aspectj.weaver.Shadow s
        end local 2 // java.lang.Class withinType
        end local 1 // java.lang.reflect.Field aField
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1      aField  Ljava/lang/reflect/Field;
            0    6     2  withinType  Ljava/lang/Class;
            1    6     3           s  Lorg/aspectj/weaver/Shadow;
            2    6     4          sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
            Name  Flags
      aField      
      withinType  

  public org.aspectj.weaver.tools.ShadowMatch matchesFieldGet(java.lang.reflect.Field, java.lang.reflect.Member);
    descriptor: (Ljava/lang/reflect/Field;Ljava/lang/reflect/Member;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Field aField
        start local 2 // java.lang.reflect.Member withinCode
         0: .line 280
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aField */
            aload 2 /* withinCode */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeFieldGetShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Field;Ljava/lang/reflect/Member;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 3 /* s */
        start local 3 // org.aspectj.weaver.Shadow s
         1: .line 281
            aload 0 /* this */
            aload 3 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 4 /* sm */
        start local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 282
            aload 4 /* sm */
            aload 1 /* aField */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 283
            aload 4 /* sm */
            aload 2 /* withinCode */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 284
            aload 4 /* sm */
            aload 2 /* withinCode */
            invokeinterface java.lang.reflect.Member.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 289
            aload 4 /* sm */
            areturn
        end local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 3 // org.aspectj.weaver.Shadow s
        end local 2 // java.lang.reflect.Member withinCode
        end local 1 // java.lang.reflect.Field aField
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1      aField  Ljava/lang/reflect/Field;
            0    6     2  withinCode  Ljava/lang/reflect/Member;
            1    6     3           s  Lorg/aspectj/weaver/Shadow;
            2    6     4          sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
            Name  Flags
      aField      
      withinCode  

  public org.aspectj.weaver.tools.ShadowMatch matchesFieldSet(java.lang.reflect.Field, java.lang.Class);
    descriptor: (Ljava/lang/reflect/Field;Ljava/lang/Class;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Field aField
        start local 2 // java.lang.Class withinType
         0: .line 293
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aField */
            aload 2 /* withinType */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeFieldSetShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Field;Ljava/lang/Class;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 3 /* s */
        start local 3 // org.aspectj.weaver.Shadow s
         1: .line 294
            aload 0 /* this */
            aload 3 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 4 /* sm */
        start local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 295
            aload 4 /* sm */
            aload 1 /* aField */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 296
            aload 4 /* sm */
            aconst_null
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 297
            aload 4 /* sm */
            aload 2 /* withinType */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 302
            aload 4 /* sm */
            areturn
        end local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 3 // org.aspectj.weaver.Shadow s
        end local 2 // java.lang.Class withinType
        end local 1 // java.lang.reflect.Field aField
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1      aField  Ljava/lang/reflect/Field;
            0    6     2  withinType  Ljava/lang/Class;
            1    6     3           s  Lorg/aspectj/weaver/Shadow;
            2    6     4          sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
            Name  Flags
      aField      
      withinType  

  public org.aspectj.weaver.tools.ShadowMatch matchesFieldSet(java.lang.reflect.Field, java.lang.reflect.Member);
    descriptor: (Ljava/lang/reflect/Field;Ljava/lang/reflect/Member;)Lorg/aspectj/weaver/tools/ShadowMatch;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // java.lang.reflect.Field aField
        start local 2 // java.lang.reflect.Member withinCode
         0: .line 306
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.world:Lorg/aspectj/weaver/World;
            aload 1 /* aField */
            aload 2 /* withinCode */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokestatic org.aspectj.weaver.reflect.ReflectionShadow.makeFieldSetShadow:(Lorg/aspectj/weaver/World;Ljava/lang/reflect/Field;Ljava/lang/reflect/Member;Lorg/aspectj/weaver/tools/MatchingContext;)Lorg/aspectj/weaver/Shadow;
            astore 3 /* s */
        start local 3 // org.aspectj.weaver.Shadow s
         1: .line 307
            aload 0 /* this */
            aload 3 /* s */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
            astore 4 /* sm */
        start local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         2: .line 308
            aload 4 /* sm */
            aload 1 /* aField */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setSubject:(Ljava/lang/reflect/Member;)V
         3: .line 309
            aload 4 /* sm */
            aload 2 /* withinCode */
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinCode:(Ljava/lang/reflect/Member;)V
         4: .line 310
            aload 4 /* sm */
            aload 2 /* withinCode */
            invokeinterface java.lang.reflect.Member.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setWithinType:(Ljava/lang/Class;)V
         5: .line 315
            aload 4 /* sm */
            areturn
        end local 4 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 3 // org.aspectj.weaver.Shadow s
        end local 2 // java.lang.reflect.Member withinCode
        end local 1 // java.lang.reflect.Field aField
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    6     1      aField  Ljava/lang/reflect/Field;
            0    6     2  withinCode  Ljava/lang/reflect/Member;
            1    6     3           s  Lorg/aspectj/weaver/Shadow;
            2    6     4          sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
            Name  Flags
      aField      
      withinCode  

  private org.aspectj.weaver.reflect.ShadowMatchImpl getShadowMatch(org.aspectj.weaver.Shadow);
    descriptor: (Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
        start local 1 // org.aspectj.weaver.Shadow forShadow
         0: .line 319
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.pointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            aload 1 /* forShadow */
            invokevirtual org.aspectj.weaver.patterns.Pointcut.match:(Lorg/aspectj/weaver/Shadow;)Lorg/aspectj/util/FuzzyBoolean;
            astore 2 /* match */
        start local 2 // org.aspectj.util.FuzzyBoolean match
         1: .line 320
            getstatic org.aspectj.weaver.ast.Literal.TRUE:Lorg/aspectj/weaver/ast/Literal;
            astore 3 /* residueTest */
        start local 3 // org.aspectj.weaver.ast.Test residueTest
         2: .line 321
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getExposedState:()Lorg/aspectj/weaver/patterns/ExposedState;
            astore 4 /* state */
        start local 4 // org.aspectj.weaver.patterns.ExposedState state
         3: .line 322
            aload 2 /* match */
            invokevirtual org.aspectj.util.FuzzyBoolean.maybeTrue:()Z
            ifeq 5
         4: .line 323
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.pointcut:Lorg/aspectj/weaver/patterns/Pointcut;
            aload 1 /* forShadow */
            aload 4 /* state */
            invokevirtual org.aspectj.weaver.patterns.Pointcut.findResidue:(Lorg/aspectj/weaver/Shadow;Lorg/aspectj/weaver/patterns/ExposedState;)Lorg/aspectj/weaver/ast/Test;
            astore 3 /* residueTest */
         5: .line 325
      StackMap locals: org.aspectj.util.FuzzyBoolean org.aspectj.weaver.ast.Test org.aspectj.weaver.patterns.ExposedState
      StackMap stack:
            new org.aspectj.weaver.reflect.ShadowMatchImpl
            dup
            aload 2 /* match */
            aload 3 /* residueTest */
            aload 4 /* state */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.parameters:[Lorg/aspectj/weaver/tools/PointcutParameter;
            invokespecial org.aspectj.weaver.reflect.ShadowMatchImpl.<init>:(Lorg/aspectj/util/FuzzyBoolean;Lorg/aspectj/weaver/ast/Test;Lorg/aspectj/weaver/patterns/ExposedState;[Lorg/aspectj/weaver/tools/PointcutParameter;)V
            astore 5 /* sm */
        start local 5 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
         6: .line 326
            aload 5 /* sm */
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchContext:Lorg/aspectj/weaver/tools/MatchingContext;
            invokevirtual org.aspectj.weaver.reflect.ShadowMatchImpl.setMatchingContext:(Lorg/aspectj/weaver/tools/MatchingContext;)V
         7: .line 327
            aload 5 /* sm */
            areturn
        end local 5 // org.aspectj.weaver.reflect.ShadowMatchImpl sm
        end local 4 // org.aspectj.weaver.patterns.ExposedState state
        end local 3 // org.aspectj.weaver.ast.Test residueTest
        end local 2 // org.aspectj.util.FuzzyBoolean match
        end local 1 // org.aspectj.weaver.Shadow forShadow
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
            0    8     1    forShadow  Lorg/aspectj/weaver/Shadow;
            1    8     2        match  Lorg/aspectj/util/FuzzyBoolean;
            2    8     3  residueTest  Lorg/aspectj/weaver/ast/Test;
            3    8     4        state  Lorg/aspectj/weaver/patterns/ExposedState;
            6    8     5           sm  Lorg/aspectj/weaver/reflect/ShadowMatchImpl;
    MethodParameters:
           Name  Flags
      forShadow  

  public java.lang.String getPointcutExpression();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
         0: .line 336
            aload 0 /* this */
            getfield org.aspectj.weaver.internal.tools.PointcutExpressionImpl.expression:Ljava/lang/String;
            areturn
        end local 0 // org.aspectj.weaver.internal.tools.PointcutExpressionImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/internal/tools/PointcutExpressionImpl;
}
SourceFile: "PointcutExpressionImpl.java"
NestMembers:
  org.aspectj.weaver.internal.tools.PointcutExpressionImpl$Handler  org.aspectj.weaver.internal.tools.PointcutExpressionImpl$HasPossibleDynamicContentVisitor
InnerClasses:
  public final Kind = org.aspectj.weaver.Shadow$Kind of org.aspectj.weaver.Shadow
  public Handler = org.aspectj.weaver.internal.tools.PointcutExpressionImpl$Handler of org.aspectj.weaver.internal.tools.PointcutExpressionImpl
  private HasPossibleDynamicContentVisitor = org.aspectj.weaver.internal.tools.PointcutExpressionImpl$HasPossibleDynamicContentVisitor of org.aspectj.weaver.internal.tools.PointcutExpressionImpl