public class com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor extends com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor
  super_class: com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor
{
  private static final int ARRAY_DIMENSIONS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  protected final com.oracle.svm.hosted.ImageClassLoader imageClassLoader;
    descriptor: Lcom/oracle/svm/hosted/ImageClassLoader;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final jdk.vm.ci.meta.MetaAccessProvider metaAccess;
    descriptor: Ljdk/vm/ci/meta/MetaAccessProvider;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final java.util.Map<java.lang.Object, com.oracle.svm.core.annotate.Delete> deleteAnnotations;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Object;Lcom/oracle/svm/core/annotate/Delete;>;

  private final java.util.Map<jdk.vm.ci.meta.ResolvedJavaType, jdk.vm.ci.meta.ResolvedJavaType> typeSubstitutions;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaType;>;

  private final java.util.Map<jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod> methodSubstitutions;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;>;

  private final java.util.Map<jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod> polymorphicMethodSubstitutions;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;>;

  private final java.util.Map<jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField> fieldSubstitutions;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;>;

  private com.oracle.svm.hosted.classinitialization.ClassInitializationSupport classInitializationSupport;
    descriptor: Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
    flags: (0x0002) ACC_PRIVATE

  static final int SUBSTITUTION_DELETE_HOLDER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0
    RuntimeVisibleAnnotations: 
      com.oracle.svm.core.annotate.Delete(value = "The declaring class of this element has been substituted, but this element is not present in the substitution class")

  static final com.oracle.svm.core.annotate.Delete SUBSTITUTION_DELETE;
    descriptor: Lcom/oracle/svm/core/annotate/Delete;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 84
            ldc Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$assertionsDisabled:Z
         3: .line 555
            ldc Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            ldc "SUBSTITUTION_DELETE_HOLDER"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            ldc Lcom/oracle/svm/core/annotate/Delete;
            invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Delete
            putstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.SUBSTITUTION_DELETE:Lcom/oracle/svm/core/annotate/Delete;
         4: .line 556
            goto 7
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldException
         5: astore 0 /* ex */
        start local 0 // java.lang.NoSuchFieldException ex
         6: .line 557
            aload 0 /* ex */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 0 // java.lang.NoSuchFieldException ex
         7: .line 559
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            6    7     0    ex  Ljava/lang/NoSuchFieldException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.NoSuchFieldException

  public void <init>(com.oracle.svm.hosted.ImageClassLoader, jdk.vm.ci.meta.MetaAccessProvider, com.oracle.svm.hosted.classinitialization.ClassInitializationSupport);
    descriptor: (Lcom/oracle/svm/hosted/ImageClassLoader;Ljdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        start local 3 // com.oracle.svm.hosted.classinitialization.ClassInitializationSupport classInitializationSupport
         0: .line 103
            aload 0 /* this */
            invokespecial com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor.<init>:()V
         1: .line 104
            aload 0 /* this */
            aload 1 /* imageClassLoader */
            putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
         2: .line 105
            aload 0 /* this */
            aload 2 /* metaAccess */
            putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
         3: .line 106
            aload 0 /* this */
            aload 3 /* classInitializationSupport */
            putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.classInitializationSupport:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
         4: .line 108
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
         5: .line 109
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
         6: .line 110
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
         7: .line 111
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.polymorphicMethodSubstitutions:Ljava/util/Map;
         8: .line 112
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
         9: .line 113
            return
        end local 3 // com.oracle.svm.hosted.classinitialization.ClassInitializationSupport classInitializationSupport
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 1 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   10     0                        this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   10     1            imageClassLoader  Lcom/oracle/svm/hosted/ImageClassLoader;
            0   10     2                  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            0   10     3  classInitializationSupport  Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
    MethodParameters:
                            Name  Flags
      imageClassLoader            
      metaAccess                  
      classInitializationSupport  

  public jdk.vm.ci.meta.ResolvedJavaType lookup(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 117
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.annotate.Delete
            astore 2 /* deleteAnnotation */
        start local 2 // com.oracle.svm.core.annotate.Delete deleteAnnotation
         1: .line 118
            aload 2 /* deleteAnnotation */
            ifnull 3
         2: .line 119
            new com.oracle.svm.hosted.substitute.DeletedElementException
            dup
            aload 1 /* type */
            aload 2 /* deleteAnnotation */
            iconst_1
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteErrorMessage:(Ljava/lang/reflect/AnnotatedElement;Lcom/oracle/svm/core/annotate/Delete;Z)Ljava/lang/String;
            invokespecial com.oracle.svm.hosted.substitute.DeletedElementException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 121
      StackMap locals: com.oracle.svm.core.annotate.Delete
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            astore 3 /* substitution */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaType substitution
         4: .line 122
            aload 3 /* substitution */
            ifnull 6
         5: .line 123
            aload 3 /* substitution */
            areturn
         6: .line 125
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            aload 1 /* type */
            areturn
        end local 3 // jdk.vm.ci.meta.ResolvedJavaType substitution
        end local 2 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    7     1              type  Ljdk/vm/ci/meta/ResolvedJavaType;
            1    7     2  deleteAnnotation  Lcom/oracle/svm/core/annotate/Delete;
            4    7     3      substitution  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
      Name  Flags
      type  

  public jdk.vm.ci.meta.ResolvedJavaType resolve(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 130
            aload 1 /* type */
            instanceof com.oracle.svm.hosted.substitute.SubstitutionType
            ifeq 2
         1: .line 131
            aload 1 /* type */
            checkcast com.oracle.svm.hosted.substitute.SubstitutionType
            invokevirtual com.oracle.svm.hosted.substitute.SubstitutionType.getAnnotated:()Ljdk/vm/ci/meta/ResolvedJavaType;
            areturn
         2: .line 132
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof com.oracle.svm.hosted.annotation.AnnotationSubstitutionType
            ifeq 4
         3: .line 133
            aload 1 /* type */
            checkcast com.oracle.svm.hosted.annotation.AnnotationSubstitutionType
            invokevirtual com.oracle.svm.hosted.annotation.AnnotationSubstitutionType.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaType;
            areturn
         4: .line 134
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            instanceof com.oracle.svm.hosted.substitute.InjectedFieldsType
            ifeq 6
         5: .line 135
            aload 1 /* type */
            checkcast com.oracle.svm.hosted.substitute.InjectedFieldsType
            invokevirtual com.oracle.svm.hosted.substitute.InjectedFieldsType.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaType;
            areturn
         6: .line 137
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    7     1  type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
      Name  Flags
      type  

  public jdk.vm.ci.meta.ResolvedJavaField lookup(jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 142
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
            aload 1 /* field */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.annotate.Delete
            astore 2 /* deleteAnnotation */
        start local 2 // com.oracle.svm.core.annotate.Delete deleteAnnotation
         1: .line 143
            aload 2 /* deleteAnnotation */
            ifnull 3
         2: .line 144
            new com.oracle.svm.hosted.substitute.DeletedElementException
            dup
            aload 1 /* field */
            aload 2 /* deleteAnnotation */
            iconst_1
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteErrorMessage:(Ljava/lang/reflect/AnnotatedElement;Lcom/oracle/svm/core/annotate/Delete;Z)Ljava/lang/String;
            invokespecial com.oracle.svm.hosted.substitute.DeletedElementException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 146
      StackMap locals: com.oracle.svm.core.annotate.Delete
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 1 /* field */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaField
            astore 3 /* substitution */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField substitution
         4: .line 147
            aload 3 /* substitution */
            ifnull 6
         5: .line 148
            aload 3 /* substitution */
            areturn
         6: .line 150
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            aload 1 /* field */
            areturn
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField substitution
        end local 2 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    7     1             field  Ljdk/vm/ci/meta/ResolvedJavaField;
            1    7     2  deleteAnnotation  Lcom/oracle/svm/core/annotate/Delete;
            4    7     3      substitution  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
       Name  Flags
      field  

  public boolean isDeleted(jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 154
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
            aload 1 /* field */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    2     1  field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
       Name  Flags
      field  

  public boolean isDeleted(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.Class clazz
         0: .line 158
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* clazz */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    1     1  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      clazz  

  public java.util.Optional<jdk.vm.ci.meta.ResolvedJavaField> findSubstitution(jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField field
         0: .line 162
            getstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.isDeleted:(Ljdk/vm/ci/meta/ResolvedJavaField;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* field */
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "is deleted."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 1 /* field */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaField
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    2     1  field  Ljdk/vm/ci/meta/ResolvedJavaField;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaField;)Ljava/util/Optional<Ljdk/vm/ci/meta/ResolvedJavaField;>;
    MethodParameters:
       Name  Flags
      field  

  public java.util.Optional<jdk.vm.ci.meta.ResolvedJavaType> findSubstitution(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 171
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    1     1  type  Ljdk/vm/ci/meta/ResolvedJavaType;
    Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/util/Optional<Ljdk/vm/ci/meta/ResolvedJavaType;>;
    MethodParameters:
      Name  Flags
      type  

  public boolean isAliased(jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType type
         0: .line 180
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
            aload 1 /* type */
            invokeinterface java.util.Map.containsValue:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    1     1  type  Ljdk/vm/ci/meta/ResolvedJavaType;
    MethodParameters:
      Name  Flags
      type  

  public jdk.vm.ci.meta.ResolvedJavaMethod lookup(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 185
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
            aload 1 /* method */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.annotate.Delete
            astore 2 /* deleteAnnotation */
        start local 2 // com.oracle.svm.core.annotate.Delete deleteAnnotation
         1: .line 186
            aload 2 /* deleteAnnotation */
            ifnull 3
         2: .line 187
            new com.oracle.svm.hosted.substitute.DeletedElementException
            dup
            aload 1 /* method */
            aload 2 /* deleteAnnotation */
            iconst_1
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteErrorMessage:(Ljava/lang/reflect/AnnotatedElement;Lcom/oracle/svm/core/annotate/Delete;Z)Ljava/lang/String;
            invokespecial com.oracle.svm.hosted.substitute.DeletedElementException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 189
      StackMap locals: com.oracle.svm.core.annotate.Delete
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aload 1 /* method */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaMethod
            astore 3 /* substitution */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaMethod substitution
         4: .line 190
            aload 3 /* substitution */
            ifnull 6
         5: .line 191
            aload 3 /* substitution */
            areturn
         6: .line 193
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.polymorphicMethodSubstitutions:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 25
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.core.annotate.Delete jdk.vm.ci.meta.ResolvedJavaMethod top java.util.Iterator
      StackMap stack:
         7: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaMethod
            astore 4 /* baseMethod */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod baseMethod
         8: .line 194
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 4 /* baseMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 25
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            aload 4 /* baseMethod */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
         9: .line 195
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.polymorphicMethodSubstitutions:Ljava/util/Map;
            aload 4 /* baseMethod */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.substitute.SubstitutionMethod
            astore 6 /* substitutionBaseMethod */
        start local 6 // com.oracle.svm.hosted.substitute.SubstitutionMethod substitutionBaseMethod
        10: .line 196
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isVarArgs:()Z
            ifeq 12
        11: .line 200
            aload 6 /* substitutionBaseMethod */
            areturn
        12: .line 203
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.core.annotate.Delete jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.util.Iterator com.oracle.svm.hosted.substitute.SubstitutionMethod
      StackMap stack:
            new com.oracle.svm.hosted.substitute.PolymorphicSignatureWrapperMethod
            dup
            aload 6 /* substitutionBaseMethod */
            aload 1 /* method */
            invokespecial com.oracle.svm.hosted.substitute.PolymorphicSignatureWrapperMethod.<init>:(Lcom/oracle/svm/hosted/substitute/SubstitutionMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
            astore 7 /* wrapperMethod */
        start local 7 // com.oracle.svm.hosted.substitute.PolymorphicSignatureWrapperMethod wrapperMethod
        13: .line 204
            new com.oracle.svm.hosted.substitute.SubstitutionMethod
            dup
            aload 1 /* method */
            aload 7 /* wrapperMethod */
            invokespecial com.oracle.svm.hosted.substitute.SubstitutionMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
            astore 8 /* substitutionMethod */
        start local 8 // com.oracle.svm.hosted.substitute.SubstitutionMethod substitutionMethod
        14: .line 205
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            dup
            astore 9
            monitorenter
        15: .line 212
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aload 1 /* method */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaMethod
            astore 10 /* currentSubstitution */
        start local 10 // jdk.vm.ci.meta.ResolvedJavaMethod currentSubstitution
        16: .line 213
            aload 10 /* currentSubstitution */
            ifnull 19
        17: .line 214
            aload 10 /* currentSubstitution */
            aload 9
            monitorexit
        18: areturn
        19: .line 216
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.core.annotate.Delete jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.util.Iterator com.oracle.svm.hosted.substitute.SubstitutionMethod com.oracle.svm.hosted.substitute.PolymorphicSignatureWrapperMethod com.oracle.svm.hosted.substitute.SubstitutionMethod java.util.Map jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aload 7 /* wrapperMethod */
            aload 1 /* method */
            aload 8 /* substitutionMethod */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 10 // jdk.vm.ci.meta.ResolvedJavaMethod currentSubstitution
        20: .line 205
            aload 9
            monitorexit
        21: goto 24
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.core.annotate.Delete jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.util.Iterator com.oracle.svm.hosted.substitute.SubstitutionMethod com.oracle.svm.hosted.substitute.PolymorphicSignatureWrapperMethod com.oracle.svm.hosted.substitute.SubstitutionMethod java.util.Map
      StackMap stack: java.lang.Throwable
        22: aload 9
            monitorexit
        23: athrow
        24: .line 219
      StackMap locals:
      StackMap stack:
            aload 8 /* substitutionMethod */
            areturn
        end local 8 // com.oracle.svm.hosted.substitute.SubstitutionMethod substitutionMethod
        end local 7 // com.oracle.svm.hosted.substitute.PolymorphicSignatureWrapperMethod wrapperMethod
        end local 6 // com.oracle.svm.hosted.substitute.SubstitutionMethod substitutionBaseMethod
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod baseMethod
        25: .line 193
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.core.annotate.Delete jdk.vm.ci.meta.ResolvedJavaMethod top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        26: .line 222
            aload 1 /* method */
            areturn
        end local 3 // jdk.vm.ci.meta.ResolvedJavaMethod substitution
        end local 2 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   27     0                    this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   27     1                  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            1   27     2        deleteAnnotation  Lcom/oracle/svm/core/annotate/Delete;
            4   27     3            substitution  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            8   25     4              baseMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           10   25     6  substitutionBaseMethod  Lcom/oracle/svm/hosted/substitute/SubstitutionMethod;
           13   25     7           wrapperMethod  Lcom/oracle/svm/hosted/substitute/PolymorphicSignatureWrapperMethod;
           14   25     8      substitutionMethod  Lcom/oracle/svm/hosted/substitute/SubstitutionMethod;
           16   20    10     currentSubstitution  Ljdk/vm/ci/meta/ResolvedJavaMethod;
      Exception table:
        from    to  target  type
          15    18      22  any
          19    21      22  any
          22    23      22  any
    MethodParameters:
        Name  Flags
      method  

  public jdk.vm.ci.meta.ResolvedJavaMethod resolve(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 227
            aload 1 /* method */
            instanceof com.oracle.svm.hosted.substitute.SubstitutionMethod
            ifeq 2
         1: .line 228
            aload 1 /* method */
            checkcast com.oracle.svm.hosted.substitute.SubstitutionMethod
            invokevirtual com.oracle.svm.hosted.substitute.SubstitutionMethod.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            areturn
         2: .line 229
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            instanceof com.oracle.svm.hosted.annotation.CustomSubstitutionMethod
            ifeq 4
         3: .line 230
            aload 1 /* method */
            checkcast com.oracle.svm.hosted.annotation.CustomSubstitutionMethod
            invokevirtual com.oracle.svm.hosted.annotation.CustomSubstitutionMethod.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            areturn
         4: .line 231
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            instanceof com.oracle.svm.hosted.substitute.AnnotatedMethod
            ifeq 6
         5: .line 232
            aload 1 /* method */
            checkcast com.oracle.svm.hosted.substitute.AnnotatedMethod
            invokevirtual com.oracle.svm.hosted.substitute.AnnotatedMethod.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            areturn
         6: .line 234
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            areturn
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    7     1  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
        Name  Flags
      method  

  public void processComputedValueFields(com.oracle.graal.pointsto.BigBang);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // com.oracle.graal.pointsto.BigBang bb
         0: .line 241
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor com.oracle.graal.pointsto.BigBang top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaField
            astore 2 /* field */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField field
         2: .line 242
            aload 2 /* field */
            instanceof com.oracle.svm.hosted.substitute.ComputedValue
            ifeq 10
         3: .line 243
            aload 2 /* field */
            checkcast com.oracle.svm.hosted.substitute.ComputedValue
            astore 4 /* cvField */
        start local 4 // com.oracle.svm.hosted.substitute.ComputedValue cvField
         4: .line 245
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind:()[I
            aload 4 /* cvField */
            invokeinterface com.oracle.svm.hosted.substitute.ComputedValue.getRecomputeValueKind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iaload
            tableswitch { // 5 - 5
                    5: 5
              default: 10
          }
         5: .line 247
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor com.oracle.graal.pointsto.BigBang jdk.vm.ci.meta.ResolvedJavaField java.util.Iterator com.oracle.svm.hosted.substitute.ComputedValue
      StackMap stack:
            aload 1 /* bb */
            invokevirtual com.oracle.graal.pointsto.BigBang.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            aload 4 /* cvField */
            invokeinterface com.oracle.svm.hosted.substitute.ComputedValue.getTargetField:()Ljava/lang/reflect/Field;
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 5 /* targetFieldDeclaringType */
        start local 5 // com.oracle.graal.pointsto.meta.AnalysisType targetFieldDeclaringType
         6: .line 248
            aload 5 /* targetFieldDeclaringType */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable:()V
         7: .line 249
            aload 1 /* bb */
            invokevirtual com.oracle.graal.pointsto.BigBang.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            aload 4 /* cvField */
            invokeinterface com.oracle.svm.hosted.substitute.ComputedValue.getTargetField:()Ljava/lang/reflect/Field;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaField:(Ljava/lang/reflect/Field;)Lcom/oracle/graal/pointsto/meta/AnalysisField;
            astore 6 /* targetField */
        start local 6 // com.oracle.graal.pointsto.meta.AnalysisField targetField
         8: .line 250
            aload 6 /* targetField */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.registerAsAccessed:()V
         9: .line 251
            aload 6 /* targetField */
            aload 1 /* bb */
            invokevirtual com.oracle.graal.pointsto.BigBang.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.registerAsUnsafeAccessed:(Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;)V
        end local 6 // com.oracle.graal.pointsto.meta.AnalysisField targetField
        end local 5 // com.oracle.graal.pointsto.meta.AnalysisType targetFieldDeclaringType
        end local 4 // com.oracle.svm.hosted.substitute.ComputedValue cvField
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField field
        10: .line 241
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor com.oracle.graal.pointsto.BigBang top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        11: .line 256
            return
        end local 1 // com.oracle.graal.pointsto.BigBang bb
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   12     0                      this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   12     1                        bb  Lcom/oracle/graal/pointsto/BigBang;
            2   10     2                     field  Ljdk/vm/ci/meta/ResolvedJavaField;
            4   10     4                   cvField  Lcom/oracle/svm/hosted/substitute/ComputedValue;
            6   10     5  targetFieldDeclaringType  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            8   10     6               targetField  Lcom/oracle/graal/pointsto/meta/AnalysisField;
    MethodParameters:
      Name  Flags
      bb    

  public void init();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
         0: .line 259
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findTargetClasses:()Ljava/util/List;
            astore 1 /* annotatedClasses */
        start local 1 // java.util.List annotatedClasses
         1: .line 262
            aload 1 /* annotatedClasses */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/Class.getName()Ljava/lang/String; (5)
                  (Ljava/lang/Class;)Ljava/lang/String;
            invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
         2: .line 264
            aload 1 /* annotatedClasses */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 2 /* annotatedClass */
        start local 2 // java.lang.Class annotatedClass
         4: .line 265
            aload 0 /* this */
            aload 2 /* annotatedClass */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleClass:(Ljava/lang/Class;)V
        end local 2 // java.lang.Class annotatedClass
         5: .line 264
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 268
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
            ldc Ljdk/vm/ci/common/NativeImageReinitialize;
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.findAnnotatedFields:(Ljava/lang/Class;)Ljava/util/List;
            astore 2 /* annotatedFields */
        start local 2 // java.util.List annotatedFields
         7: .line 269
            aload 2 /* annotatedFields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         8: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.reflect.Field
            astore 3 /* annotatedField */
        start local 3 // java.lang.reflect.Field annotatedField
         9: .line 270
            aload 0 /* this */
            aload 3 /* annotatedField */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.reinitializeField:(Ljava/lang/reflect/Field;)V
        end local 3 // java.lang.reflect.Field annotatedField
        10: .line 269
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 272
            return
        end local 2 // java.util.List annotatedFields
        end local 1 // java.util.List annotatedClasses
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            1   12     1  annotatedClasses  Ljava/util/List<Ljava/lang/Class<*>;>;
            4    5     2    annotatedClass  Ljava/lang/Class<*>;
            7   12     2   annotatedFields  Ljava/util/List<Ljava/lang/reflect/Field;>;
            9   10     3    annotatedField  Ljava/lang/reflect/Field;

  protected java.util.List<java.lang.Class<?>> findTargetClasses();
    descriptor: ()Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
         0: .line 275
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
            ldc Lcom/oracle/svm/core/annotate/TargetClass;
            iconst_0
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.findAnnotatedClasses:(Ljava/lang/Class;Z)Ljava/util/List;
            areturn
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
    Signature: ()Ljava/util/List<Ljava/lang/Class<*>;>;

  private void handleClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.Class annotatedClass
         0: .line 279
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
            ifne 1
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ldc "Annotated class must be final: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedClass */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         3: .line 280
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 4
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: ldc "Annotated class must inherit directly from Object: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedClass */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         6: .line 282
            ldc Lorg/graalvm/nativeimage/Platform;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.graalvm.nativeimage.Platform
            aload 0 /* this */
            aload 1 /* annotatedClass */
            ldc Lorg/graalvm/nativeimage/Platforms;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.graalvm.nativeimage.Platforms
            invokestatic com.oracle.svm.hosted.NativeImageGenerator.includedIn:(Lorg/graalvm/nativeimage/Platform;Lorg/graalvm/nativeimage/Platforms;)Z
            ifne 8
         7: .line 283
            return
         8: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* annotatedClass */
            ldc Lcom/oracle/svm/core/annotate/TargetClass;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.TargetClass
            astore 2 /* targetClassAnnotation */
        start local 2 // com.oracle.svm.core.annotate.TargetClass targetClassAnnotation
         9: .line 287
            aload 0 /* this */
            aload 1 /* annotatedClass */
            aload 2 /* targetClassAnnotation */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findTargetClass:(Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)Ljava/lang/Class;
            astore 3 /* originalClass */
        start local 3 // java.lang.Class originalClass
        10: .line 288
            aload 3 /* originalClass */
            ifnonnull 12
        11: .line 289
            return
        12: .line 296
      StackMap locals: com.oracle.svm.core.annotate.TargetClass java.lang.Class
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.classInitializationSupport:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
            aload 1 /* annotatedClass */
            ldc "substitutions are always initialized"
            iconst_0
            invokeinterface com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.forceInitializeHosted:(Ljava/lang/Class;Ljava/lang/String;Z)V
        13: .line 298
            aload 0 /* this */
            aload 1 /* annotatedClass */
            ldc Lcom/oracle/svm/core/annotate/Delete;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Delete
            astore 4 /* deleteAnnotation */
        start local 4 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        14: .line 299
            aload 0 /* this */
            aload 1 /* annotatedClass */
            ldc Lcom/oracle/svm/core/annotate/Substitute;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Substitute
            astore 5 /* substituteAnnotation */
        start local 5 // com.oracle.svm.core.annotate.Substitute substituteAnnotation
        15: .line 301
            aload 4 /* deleteAnnotation */
            ifnull 16
            iconst_1
            goto 17
      StackMap locals: com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: aload 5 /* substituteAnnotation */
            ifnull 18
            iconst_1
            goto 19
      StackMap locals:
      StackMap stack: int
        18: iconst_0
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.Class com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute
      StackMap stack: int int
        19: iadd
            istore 6 /* numAnnotations */
        start local 6 // int numAnnotations
        20: .line 302
            iload 6 /* numAnnotations */
            iconst_1
            if_icmpgt 21
            iconst_1
            goto 22
      StackMap locals: int
      StackMap stack:
        21: iconst_0
      StackMap locals:
      StackMap stack: int
        22: ldc "Only one of @Delete or @Substitute can be used: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedClass */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        23: .line 304
            aload 4 /* deleteAnnotation */
            ifnull 26
        24: .line 305
            aload 0 /* this */
            aload 3 /* originalClass */
            aload 4 /* deleteAnnotation */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleDeletedClass:(Ljava/lang/Class;Lcom/oracle/svm/core/annotate/Delete;)V
        25: .line 306
            goto 30
      StackMap locals:
      StackMap stack:
        26: aload 5 /* substituteAnnotation */
            ifnull 29
        27: .line 307
            aload 0 /* this */
            aload 1 /* annotatedClass */
            aload 3 /* originalClass */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleSubstitutionClass:(Ljava/lang/Class;Ljava/lang/Class;)V
        28: .line 308
            goto 30
        29: .line 309
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* annotatedClass */
            aload 3 /* originalClass */
            aload 2 /* targetClassAnnotation */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleAliasClass:(Ljava/lang/Class;Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)V
        30: .line 311
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int numAnnotations
        end local 5 // com.oracle.svm.core.annotate.Substitute substituteAnnotation
        end local 4 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        end local 3 // java.lang.Class originalClass
        end local 2 // com.oracle.svm.core.annotate.TargetClass targetClassAnnotation
        end local 1 // java.lang.Class annotatedClass
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   31     0                   this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   31     1         annotatedClass  Ljava/lang/Class<*>;
            9   31     2  targetClassAnnotation  Lcom/oracle/svm/core/annotate/TargetClass;
           10   31     3          originalClass  Ljava/lang/Class<*>;
           14   31     4       deleteAnnotation  Lcom/oracle/svm/core/annotate/Delete;
           15   31     5   substituteAnnotation  Lcom/oracle/svm/core/annotate/Substitute;
           20   31     6         numAnnotations  I
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      annotatedClass  

  private static java.lang.String substitutionName(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.Class originalClass
         0: .line 314
            new java.lang.StringBuilder
            dup
            ldc "Target_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* originalClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            bipush 46
            bipush 95
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            bipush 36
            bipush 95
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.Class originalClass
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0  originalClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
               Name  Flags
      originalClass  

  private void handleAliasClass(java.lang.Class<?>, java.lang.Class<?>, com.oracle.svm.core.annotate.TargetClass);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.Class annotatedClass
        start local 2 // java.lang.Class originalClass
        start local 3 // com.oracle.svm.core.annotate.TargetClass targetClassAnnotation
         0: .line 318
            getstatic com.oracle.svm.core.SubstrateOptions.VerifyNamingConventions:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 7
            aload 3 /* targetClassAnnotation */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.classNameProvider:()Ljava/lang/Class;
            ldc Lcom/oracle/svm/core/annotate/TargetClass$NoClassNameProvider;
            if_acmpne 7
         1: .line 319
            aload 2 /* originalClass */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.substitutionName:(Ljava/lang/Class;)Ljava/lang/String;
            astore 4 /* expectedName */
        start local 4 // java.lang.String expectedName
         2: .line 320
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            astore 5 /* actualName */
        start local 5 // java.lang.String actualName
         3: .line 321
            aload 5 /* actualName */
            aload 4 /* expectedName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 5 /* actualName */
            new java.lang.StringBuilder
            dup
            aload 4 /* expectedName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
            iconst_0
            goto 5
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         4: iconst_1
         5: .line 322
      StackMap locals:
      StackMap stack: int
            ldc "Naming convention violation: %s must be named %s or %s_<suffix>"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedClass */
            aastore
            dup
            iconst_1
            aload 4 /* expectedName */
            aastore
            dup
            iconst_2
            aload 4 /* expectedName */
            aastore
         6: .line 321
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        end local 5 // java.lang.String actualName
        end local 4 // java.lang.String expectedName
         7: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 2 /* originalClass */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* original */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaType original
         8: .line 326
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* annotatedClass */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 5 /* annotated */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaType annotated
         9: .line 328
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        10: goto 18
        11: .line 329
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
            aload 5 /* annotated */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 12
            iconst_0
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_1
      StackMap locals:
      StackMap stack: int
        13: ldc "Already registered: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* annotated */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        14: .line 330
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
            aload 5 /* annotated */
            aload 4 /* original */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 332
            aload 4 /* original */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getArrayClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* original */
        16: .line 333
            aload 5 /* annotated */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getArrayClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 5 /* annotated */
        17: .line 328
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* i */
            bipush 8
            if_icmplt 11
        end local 6 // int i
        19: .line 336
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 23
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class com.oracle.svm.core.annotate.TargetClass jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Method[]
      StackMap stack:
        20: aload 9
            iload 7
            aaload
            astore 6 /* annotatedMethod */
        start local 6 // java.lang.reflect.Method annotatedMethod
        21: .line 337
            aload 0 /* this */
            aload 6 /* annotatedMethod */
            aload 2 /* originalClass */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleMethodInAliasClass:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
        end local 6 // java.lang.reflect.Method annotatedMethod
        22: .line 336
            iinc 7 1
      StackMap locals:
      StackMap stack:
        23: iload 7
            iload 8
            if_icmplt 20
        24: .line 339
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 28
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class com.oracle.svm.core.annotate.TargetClass jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Constructor[]
      StackMap stack:
        25: aload 9
            iload 7
            aaload
            astore 6 /* annotatedMethod */
        start local 6 // java.lang.reflect.Constructor annotatedMethod
        26: .line 340
            aload 0 /* this */
            aload 6 /* annotatedMethod */
            aload 2 /* originalClass */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleMethodInAliasClass:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
        end local 6 // java.lang.reflect.Constructor annotatedMethod
        27: .line 339
            iinc 7 1
      StackMap locals:
      StackMap stack:
        28: iload 7
            iload 8
            if_icmplt 25
        29: .line 342
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 33
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class com.oracle.svm.core.annotate.TargetClass jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Field[]
      StackMap stack:
        30: aload 9
            iload 7
            aaload
            astore 6 /* annotatedField */
        start local 6 // java.lang.reflect.Field annotatedField
        31: .line 343
            aload 0 /* this */
            aload 6 /* annotatedField */
            aload 2 /* originalClass */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleFieldInAliasClass:(Ljava/lang/reflect/Field;Ljava/lang/Class;)V
        end local 6 // java.lang.reflect.Field annotatedField
        32: .line 342
            iinc 7 1
      StackMap locals:
      StackMap stack:
        33: iload 7
            iload 8
            if_icmplt 30
        34: .line 345
            return
        end local 5 // jdk.vm.ci.meta.ResolvedJavaType annotated
        end local 4 // jdk.vm.ci.meta.ResolvedJavaType original
        end local 3 // com.oracle.svm.core.annotate.TargetClass targetClassAnnotation
        end local 2 // java.lang.Class originalClass
        end local 1 // java.lang.Class annotatedClass
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   35     0                   this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   35     1         annotatedClass  Ljava/lang/Class<*>;
            0   35     2          originalClass  Ljava/lang/Class<*>;
            0   35     3  targetClassAnnotation  Lcom/oracle/svm/core/annotate/TargetClass;
            2    7     4           expectedName  Ljava/lang/String;
            3    7     5             actualName  Ljava/lang/String;
            8   35     4               original  Ljdk/vm/ci/meta/ResolvedJavaType;
            9   35     5              annotated  Ljdk/vm/ci/meta/ResolvedJavaType;
           10   19     6                      i  I
           21   22     6        annotatedMethod  Ljava/lang/reflect/Method;
           26   27     6        annotatedMethod  Ljava/lang/reflect/Constructor<*>;
           31   32     6         annotatedField  Ljava/lang/reflect/Field;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Lcom/oracle/svm/core/annotate/TargetClass;)V
    MethodParameters:
                       Name  Flags
      annotatedClass         
      originalClass          
      targetClassAnnotation  

  private void handleMethodInAliasClass(java.lang.reflect.Executable, java.lang.Class<?>);
    descriptor: (Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.reflect.Executable annotatedMethod
        start local 2 // java.lang.Class originalClass
         0: .line 348
            ldc Lorg/graalvm/nativeimage/Platform;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.graalvm.nativeimage.Platform
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            ldc Lorg/graalvm/nativeimage/Platforms;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.graalvm.nativeimage.Platforms
            invokestatic com.oracle.svm.hosted.NativeImageGenerator.includedIn:(Lorg/graalvm/nativeimage/Platform;Lorg/graalvm/nativeimage/Platforms;)Z
            ifne 2
         1: .line 349
            return
         2: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            ldc Lcom/oracle/svm/core/annotate/Delete;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Delete
            astore 3 /* deleteAnnotation */
        start local 3 // com.oracle.svm.core.annotate.Delete deleteAnnotation
         3: .line 353
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            ldc Lcom/oracle/svm/core/annotate/Substitute;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Substitute
            astore 4 /* substituteAnnotation */
        start local 4 // com.oracle.svm.core.annotate.Substitute substituteAnnotation
         4: .line 354
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            ldc Lcom/oracle/svm/core/annotate/AnnotateOriginal;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.AnnotateOriginal
            astore 5 /* annotateOriginalAnnotation */
        start local 5 // com.oracle.svm.core.annotate.AnnotateOriginal annotateOriginalAnnotation
         5: .line 355
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            ldc Lcom/oracle/svm/core/annotate/Alias;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Alias
            astore 6 /* aliasAnnotation */
        start local 6 // com.oracle.svm.core.annotate.Alias aliasAnnotation
         6: .line 357
            aload 3 /* deleteAnnotation */
            ifnull 7
            iconst_1
            goto 8
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Executable java.lang.Class com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.AnnotateOriginal com.oracle.svm.core.annotate.Alias
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: aload 4 /* substituteAnnotation */
            ifnull 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack: int
         9: iconst_0
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Executable java.lang.Class com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.AnnotateOriginal com.oracle.svm.core.annotate.Alias
      StackMap stack: int int
        10: iadd
            aload 5 /* annotateOriginalAnnotation */
            ifnull 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack: int
        11: iconst_0
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Executable java.lang.Class com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.AnnotateOriginal com.oracle.svm.core.annotate.Alias
      StackMap stack: int int
        12: iadd
            aload 6 /* aliasAnnotation */
            ifnull 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack: int
        13: iconst_0
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Executable java.lang.Class com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.AnnotateOriginal com.oracle.svm.core.annotate.Alias
      StackMap stack: int int
        14: iadd
            istore 7 /* numAnnotations */
        start local 7 // int numAnnotations
        15: .line 358
            iload 7 /* numAnnotations */
            ifne 18
        16: .line 359
            aload 1 /* annotatedMethod */
            instanceof java.lang.reflect.Constructor
            ldc "One of @Delete, @Substitute, @AnnotateOriginal, or @Alias must be used: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedMethod */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        17: .line 360
            return
        18: .line 362
      StackMap locals: int
      StackMap stack:
            iload 7 /* numAnnotations */
            iconst_1
            if_icmpne 19
            iconst_1
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: ldc "Only one of @Delete, @Substitute, @AnnotateOriginal, or @Alias can be used: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedMethod */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        21: .line 364
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* annotatedMethod */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 8 /* annotated */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaMethod annotated
        22: .line 365
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            aload 2 /* originalClass */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalMethod:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 9 /* original */
        start local 9 // jdk.vm.ci.meta.ResolvedJavaMethod original
        23: .line 367
            aload 9 /* original */
            ifnull 39
        24: .line 369
            aload 3 /* deleteAnnotation */
            ifnull 27
        25: .line 370
            aload 0 /* this */
            aload 8 /* annotated */
            aload 9 /* original */
            aload 3 /* deleteAnnotation */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
        26: .line 371
            goto 39
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
        27: aload 4 /* substituteAnnotation */
            ifnull 33
        28: .line 372
            new com.oracle.svm.hosted.substitute.SubstitutionMethod
            dup
            aload 9 /* original */
            aload 8 /* annotated */
            invokespecial com.oracle.svm.hosted.substitute.SubstitutionMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
            astore 10 /* substitution */
        start local 10 // com.oracle.svm.hosted.substitute.SubstitutionMethod substitution
        29: .line 373
            aload 4 /* substituteAnnotation */
            invokeinterface com.oracle.svm.core.annotate.Substitute.polymorphicSignature:()Z
            ifeq 31
        30: .line 374
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.polymorphicMethodSubstitutions:Ljava/util/Map;
            aload 8 /* annotated */
            aload 9 /* original */
            aload 10 /* substitution */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        31: .line 376
      StackMap locals: com.oracle.svm.hosted.substitute.SubstitutionMethod
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aload 8 /* annotated */
            aload 9 /* original */
            aload 10 /* substitution */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 10 // com.oracle.svm.hosted.substitute.SubstitutionMethod substitution
        32: .line 377
            goto 39
      StackMap locals:
      StackMap stack:
        33: aload 5 /* annotateOriginalAnnotation */
            ifnull 37
        34: .line 378
            new com.oracle.svm.hosted.substitute.AnnotatedMethod
            dup
            aload 9 /* original */
            aload 8 /* annotated */
            invokespecial com.oracle.svm.hosted.substitute.AnnotatedMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
            astore 10 /* substitution */
        start local 10 // com.oracle.svm.hosted.substitute.AnnotatedMethod substitution
        35: .line 379
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aload 8 /* annotated */
            aload 9 /* original */
            aload 10 /* substitution */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 10 // com.oracle.svm.hosted.substitute.AnnotatedMethod substitution
        36: .line 380
            goto 39
      StackMap locals:
      StackMap stack:
        37: aload 6 /* aliasAnnotation */
            ifnull 39
        38: .line 381
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aload 8 /* annotated */
            aload 9 /* original */
            aload 9 /* original */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        39: .line 383
      StackMap locals:
      StackMap stack:
            return
        end local 9 // jdk.vm.ci.meta.ResolvedJavaMethod original
        end local 8 // jdk.vm.ci.meta.ResolvedJavaMethod annotated
        end local 7 // int numAnnotations
        end local 6 // com.oracle.svm.core.annotate.Alias aliasAnnotation
        end local 5 // com.oracle.svm.core.annotate.AnnotateOriginal annotateOriginalAnnotation
        end local 4 // com.oracle.svm.core.annotate.Substitute substituteAnnotation
        end local 3 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        end local 2 // java.lang.Class originalClass
        end local 1 // java.lang.reflect.Executable annotatedMethod
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   40     0                        this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   40     1             annotatedMethod  Ljava/lang/reflect/Executable;
            0   40     2               originalClass  Ljava/lang/Class<*>;
            3   40     3            deleteAnnotation  Lcom/oracle/svm/core/annotate/Delete;
            4   40     4        substituteAnnotation  Lcom/oracle/svm/core/annotate/Substitute;
            5   40     5  annotateOriginalAnnotation  Lcom/oracle/svm/core/annotate/AnnotateOriginal;
            6   40     6             aliasAnnotation  Lcom/oracle/svm/core/annotate/Alias;
           15   40     7              numAnnotations  I
           22   40     8                   annotated  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           23   40     9                    original  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           29   32    10                substitution  Lcom/oracle/svm/hosted/substitute/SubstitutionMethod;
           35   36    10                substitution  Lcom/oracle/svm/hosted/substitute/AnnotatedMethod;
    Signature: (Ljava/lang/reflect/Executable;Ljava/lang/Class<*>;)V
    MethodParameters:
                 Name  Flags
      annotatedMethod  
      originalClass    

  private void handleFieldInAliasClass(java.lang.reflect.Field, java.lang.Class<?>);
    descriptor: (Ljava/lang/reflect/Field;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=13, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.reflect.Field annotatedField
        start local 2 // java.lang.Class originalClass
         0: .line 386
            ldc Lorg/graalvm/nativeimage/Platform;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.graalvm.nativeimage.Platform
            aload 0 /* this */
            aload 1 /* annotatedField */
            ldc Lorg/graalvm/nativeimage/Platforms;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.graalvm.nativeimage.Platforms
            invokestatic com.oracle.svm.hosted.NativeImageGenerator.includedIn:(Lorg/graalvm/nativeimage/Platform;Lorg/graalvm/nativeimage/Platforms;)Z
            ifne 2
         1: .line 387
            return
         2: .line 390
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* annotatedField */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 3 /* annotated */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField annotated
         3: .line 392
            aload 0 /* this */
            aload 1 /* annotatedField */
            ldc Lcom/oracle/svm/core/annotate/Delete;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Delete
            astore 4 /* deleteAnnotation */
        start local 4 // com.oracle.svm.core.annotate.Delete deleteAnnotation
         4: .line 393
            aload 0 /* this */
            aload 1 /* annotatedField */
            ldc Lcom/oracle/svm/core/annotate/Alias;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Alias
            astore 5 /* aliasAnnotation */
        start local 5 // com.oracle.svm.core.annotate.Alias aliasAnnotation
         5: .line 394
            aload 0 /* this */
            aload 1 /* annotatedField */
            ldc Lcom/oracle/svm/core/annotate/Inject;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Inject
            astore 6 /* injectAnnotation */
        start local 6 // com.oracle.svm.core.annotate.Inject injectAnnotation
         6: .line 396
            aload 4 /* deleteAnnotation */
            ifnull 7
            iconst_1
            goto 8
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Field java.lang.Class jdk.vm.ci.meta.ResolvedJavaField com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Alias com.oracle.svm.core.annotate.Inject
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: aload 5 /* aliasAnnotation */
            ifnull 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack: int
         9: iconst_0
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Field java.lang.Class jdk.vm.ci.meta.ResolvedJavaField com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Alias com.oracle.svm.core.annotate.Inject
      StackMap stack: int int
        10: iadd
            aload 6 /* injectAnnotation */
            ifnull 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack: int
        11: iconst_0
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Field java.lang.Class jdk.vm.ci.meta.ResolvedJavaField com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Alias com.oracle.svm.core.annotate.Inject
      StackMap stack: int int
        12: iadd
            istore 7 /* numAnnotations */
        start local 7 // int numAnnotations
        13: .line 397
            iload 7 /* numAnnotations */
            ifne 19
        14: .line 398
            aload 1 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            ldc "$assertionsDisabled"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ldc "One of @Delete, @Alias, or @Inject must be used: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedField */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        15: .line 403
            aload 0 /* this */
            aload 1 /* annotatedField */
            aload 2 /* originalClass */
            iconst_1
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalField:(Ljava/lang/reflect/Field;Ljava/lang/Class;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 8 /* original */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaField original
        16: .line 404
            aload 8 /* original */
            ifnull 18
        17: .line 405
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 3 /* annotated */
            aconst_null
            aload 8 /* original */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        18: .line 407
      StackMap locals: int jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            return
        end local 8 // jdk.vm.ci.meta.ResolvedJavaField original
        19: .line 409
      StackMap locals:
      StackMap stack:
            iload 7 /* numAnnotations */
            iconst_1
            if_icmpne 20
            iconst_1
            goto 21
      StackMap locals:
      StackMap stack:
        20: iconst_0
      StackMap locals:
      StackMap stack: int
        21: ldc "Only one of @Delete, @Alias, or @Inject can be used: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedField */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        22: .line 411
            aload 6 /* injectAnnotation */
            ifnull 37
        23: .line 412
            aload 3 /* annotated */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
            ifeq 24
            iconst_0
            goto 25
      StackMap locals:
      StackMap stack:
        24: iconst_1
      StackMap locals:
      StackMap stack: int
        25: ldc "@Inject field must not be static: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* annotated */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        26: .line 414
            aload 0 /* this */
            aload 2 /* originalClass */
            aload 3 /* annotated */
            aload 3 /* annotated */
            aload 1 /* annotatedField */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldValueRecomputation:(Ljava/lang/Class;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 8 /* injected */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaField injected
        27: .line 415
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 3 /* annotated */
            aconst_null
            aload 8 /* injected */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        28: .line 417
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 2 /* originalClass */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 9 /* original */
        start local 9 // jdk.vm.ci.meta.ResolvedJavaType original
        29: .line 419
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
            aload 9 /* original */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            instanceof com.oracle.svm.hosted.substitute.InjectedFieldsType
            ifeq 33
        30: .line 420
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
            aload 9 /* original */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.substitute.InjectedFieldsType
            astore 10 /* substitution */
        start local 10 // com.oracle.svm.hosted.substitute.InjectedFieldsType substitution
        31: .line 421
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
            aload 3 /* annotated */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 9 /* original */
            aload 10 /* substitution */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        32: .line 422
            goto 35
        end local 10 // com.oracle.svm.hosted.substitute.InjectedFieldsType substitution
        33: .line 423
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaType
      StackMap stack:
            new com.oracle.svm.hosted.substitute.InjectedFieldsType
            dup
            aload 9 /* original */
            invokespecial com.oracle.svm.hosted.substitute.InjectedFieldsType.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;)V
            astore 10 /* substitution */
        start local 10 // com.oracle.svm.hosted.substitute.InjectedFieldsType substitution
        34: .line 424
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
            aload 3 /* annotated */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 9 /* original */
            aload 10 /* substitution */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        35: .line 426
      StackMap locals: com.oracle.svm.hosted.substitute.InjectedFieldsType
      StackMap stack:
            aload 10 /* substitution */
            aload 8 /* injected */
            invokevirtual com.oracle.svm.hosted.substitute.InjectedFieldsType.addInjectedField:(Ljdk/vm/ci/meta/ResolvedJavaField;)V
        end local 10 // com.oracle.svm.hosted.substitute.InjectedFieldsType substitution
        end local 9 // jdk.vm.ci.meta.ResolvedJavaType original
        end local 8 // jdk.vm.ci.meta.ResolvedJavaField injected
        36: .line 428
            goto 65
        37: .line 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* annotatedField */
            aload 2 /* originalClass */
            iconst_0
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalField:(Ljava/lang/reflect/Field;Ljava/lang/Class;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 8 /* original */
        start local 8 // jdk.vm.ci.meta.ResolvedJavaField original
        38: .line 430
            aload 8 /* original */
            ifnonnull 40
        39: .line 431
            return
        40: .line 434
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            aload 3 /* annotated */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
            aload 8 /* original */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
            if_icmpne 41
            iconst_1
            goto 42
      StackMap locals:
      StackMap stack:
        41: iconst_0
      StackMap locals:
      StackMap stack: int
        42: ldc "Static modifier mismatch: %s, %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* annotated */
            aastore
            dup
            iconst_1
            aload 8 /* original */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        43: .line 435
            aload 3 /* annotated */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 8 /* original */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 44
            iconst_1
            goto 45
      StackMap locals:
      StackMap stack:
        44: iconst_0
      StackMap locals:
      StackMap stack: int
        45: ldc "Type mismatch: %s, %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* annotated */
            aastore
            dup
            iconst_1
            aload 8 /* original */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        46: .line 437
            aload 0 /* this */
            aload 1 /* annotatedField */
            ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.RecomputeFieldValue
            astore 9 /* recomputeAnnotation */
        start local 9 // com.oracle.svm.core.annotate.RecomputeFieldValue recomputeAnnotation
        47: .line 438
            aload 1 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 49
            aload 9 /* recomputeAnnotation */
            ifnull 48
            aload 9 /* recomputeAnnotation */
            invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.kind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FromAlias:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            if_acmpeq 49
        48: .line 439
      StackMap locals: com.oracle.svm.core.annotate.RecomputeFieldValue
      StackMap stack:
            aload 1 /* annotatedField */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.hasDefaultValue:(Ljava/lang/reflect/Field;)Z
            ldc "The value assigned to a static @Alias field is ignored unless @RecomputeFieldValue with kind=FromAlias is used: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* annotated */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        49: .line 441
      StackMap locals:
      StackMap stack:
            aload 1 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
            ifeq 50
            iconst_0
            goto 51
      StackMap locals:
      StackMap stack:
        50: iconst_1
      StackMap locals:
      StackMap stack: int
        51: ldc "The `final` modifier for the @Alias field is ignored and therefore misleading: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* annotated */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        52: .line 443
            aload 4 /* deleteAnnotation */
            ifnull 55
        53: .line 444
            aload 0 /* this */
            aload 3 /* annotated */
            aload 8 /* original */
            aload 4 /* deleteAnnotation */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/Delete;)V
        54: .line 445
            goto 65
        55: .line 446
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* originalClass */
            aload 8 /* original */
            aload 3 /* annotated */
            aload 1 /* annotatedField */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldValueRecomputation:(Ljava/lang/Class;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 10 /* computedAlias */
        start local 10 // jdk.vm.ci.meta.ResolvedJavaField computedAlias
        56: .line 448
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 8 /* original */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaField
            astore 11 /* existingAlias */
        start local 11 // jdk.vm.ci.meta.ResolvedJavaField existingAlias
        57: .line 449
            aload 10 /* computedAlias */
            astore 12 /* alias */
        start local 12 // jdk.vm.ci.meta.ResolvedJavaField alias
        58: .line 450
            aload 11 /* existingAlias */
            ifnull 64
        59: .line 455
            aload 10 /* computedAlias */
            aload 8 /* original */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 62
        60: .line 460
            aload 11 /* existingAlias */
            astore 12 /* alias */
        61: .line 461
            goto 64
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
        62: aload 11 /* existingAlias */
            aload 8 /* original */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 64
        63: .line 468
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 11 /* existingAlias */
            aload 10 /* computedAlias */
            invokedynamic apply(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;)Ljava/util/function/BiFunction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  com/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor.lambda$1(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField; (6)
                  (Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
            invokeinterface java.util.Map.replaceAll:(Ljava/util/function/BiFunction;)V
        64: .line 480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 3 /* annotated */
            aload 8 /* original */
            aload 12 /* alias */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 12 // jdk.vm.ci.meta.ResolvedJavaField alias
        end local 11 // jdk.vm.ci.meta.ResolvedJavaField existingAlias
        end local 10 // jdk.vm.ci.meta.ResolvedJavaField computedAlias
        end local 9 // com.oracle.svm.core.annotate.RecomputeFieldValue recomputeAnnotation
        end local 8 // jdk.vm.ci.meta.ResolvedJavaField original
        65: .line 483
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Field java.lang.Class jdk.vm.ci.meta.ResolvedJavaField com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Alias com.oracle.svm.core.annotate.Inject int
      StackMap stack:
            return
        end local 7 // int numAnnotations
        end local 6 // com.oracle.svm.core.annotate.Inject injectAnnotation
        end local 5 // com.oracle.svm.core.annotate.Alias aliasAnnotation
        end local 4 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField annotated
        end local 2 // java.lang.Class originalClass
        end local 1 // java.lang.reflect.Field annotatedField
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   66     0                 this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   66     1       annotatedField  Ljava/lang/reflect/Field;
            0   66     2        originalClass  Ljava/lang/Class<*>;
            3   66     3            annotated  Ljdk/vm/ci/meta/ResolvedJavaField;
            4   66     4     deleteAnnotation  Lcom/oracle/svm/core/annotate/Delete;
            5   66     5      aliasAnnotation  Lcom/oracle/svm/core/annotate/Alias;
            6   66     6     injectAnnotation  Lcom/oracle/svm/core/annotate/Inject;
           13   66     7       numAnnotations  I
           16   19     8             original  Ljdk/vm/ci/meta/ResolvedJavaField;
           27   36     8             injected  Ljdk/vm/ci/meta/ResolvedJavaField;
           29   36     9             original  Ljdk/vm/ci/meta/ResolvedJavaType;
           31   33    10         substitution  Lcom/oracle/svm/hosted/substitute/InjectedFieldsType;
           34   36    10         substitution  Lcom/oracle/svm/hosted/substitute/InjectedFieldsType;
           38   65     8             original  Ljdk/vm/ci/meta/ResolvedJavaField;
           47   65     9  recomputeAnnotation  Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
           56   65    10        computedAlias  Ljdk/vm/ci/meta/ResolvedJavaField;
           57   65    11        existingAlias  Ljdk/vm/ci/meta/ResolvedJavaField;
           58   65    12                alias  Ljdk/vm/ci/meta/ResolvedJavaField;
    Signature: (Ljava/lang/reflect/Field;Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      annotatedField  
      originalClass   

  private static boolean hasDefaultValue(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.reflect.Field annotatedField
         0: .line 487
            aload 0 /* annotatedField */
            iconst_1
            invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
         1: .line 492
            aload 0 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifne 5
         2: .line 493
            aload 0 /* annotatedField */
            aconst_null
            invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
         4: ireturn
         5: .line 494
      StackMap locals:
      StackMap stack:
            aload 0 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpeq 6
            aload 0 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 9
         6: .line 495
      StackMap locals:
      StackMap stack:
            aload 0 /* annotatedField */
            aconst_null
            invokevirtual java.lang.reflect.Field.getDouble:(Ljava/lang/Object;)D
            dconst_0
            dcmpl
            ifne 7
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
         8: ireturn
         9: .line 496
      StackMap locals:
      StackMap stack:
            aload 0 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 13
        10: .line 497
            aload 0 /* annotatedField */
            aconst_null
            invokevirtual java.lang.reflect.Field.getBoolean:(Ljava/lang/Object;)Z
            ifeq 11
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
        11: iconst_1
        12: ireturn
        13: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* annotatedField */
            aconst_null
            invokevirtual java.lang.reflect.Field.getLong:(Ljava/lang/Object;)J
            lconst_0
            lcmp
            ifne 14
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        14: iconst_0
        15: ireturn
        16: .line 501
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 1 /* ex */
        start local 1 // java.lang.ReflectiveOperationException ex
        17: .line 502
            aload 1 /* ex */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 1 // java.lang.ReflectiveOperationException ex
        end local 0 // java.lang.reflect.Field annotatedField
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0  annotatedField  Ljava/lang/reflect/Field;
           17   18     1              ex  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     4      16  Class java.lang.ReflectiveOperationException
           5     8      16  Class java.lang.ReflectiveOperationException
           9    12      16  Class java.lang.ReflectiveOperationException
          13    15      16  Class java.lang.ReflectiveOperationException
    MethodParameters:
                Name  Flags
      annotatedField  

  private void handleDeletedClass(java.lang.Class<?>, com.oracle.svm.core.annotate.Delete);
    descriptor: (Ljava/lang/Class;Lcom/oracle/svm/core/annotate/Delete;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.Class originalClass
        start local 2 // com.oracle.svm.core.annotate.Delete deleteAnnotation
         0: .line 507
            getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 20
         1: .line 512
            aload 1 /* originalClass */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.Delete top int int java.lang.reflect.Executable[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* m */
        start local 3 // java.lang.reflect.Executable m
         3: .line 513
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 3 /* m */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 7 /* method */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaMethod method
         4: .line 514
            aload 0 /* this */
            aconst_null
            aload 7 /* method */
            aload 2 /* deleteAnnotation */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
        end local 7 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 3 // java.lang.reflect.Executable m
         5: .line 512
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 2
         7: .line 516
            aload 1 /* originalClass */
            invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 12
      StackMap locals:
      StackMap stack:
         8: aload 6
            iload 4
            aaload
            astore 3 /* m */
        start local 3 // java.lang.reflect.Executable m
         9: .line 517
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 3 /* m */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 7 /* method */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaMethod method
        10: .line 518
            aload 0 /* this */
            aconst_null
            aload 7 /* method */
            aload 2 /* deleteAnnotation */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
        end local 7 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 3 // java.lang.reflect.Executable m
        11: .line 516
            iinc 4 1
      StackMap locals:
      StackMap stack:
        12: iload 4
            iload 5
            if_icmplt 8
        13: .line 520
            aload 1 /* originalClass */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 18
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.Delete top int int java.lang.reflect.Field[]
      StackMap stack:
        14: aload 6
            iload 4
            aaload
            astore 3 /* f */
        start local 3 // java.lang.reflect.Field f
        15: .line 521
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 3 /* f */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 7 /* field */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaField field
        16: .line 522
            aload 0 /* this */
            aconst_null
            aload 7 /* field */
            aload 2 /* deleteAnnotation */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/Delete;)V
        end local 7 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 3 // java.lang.reflect.Field f
        17: .line 520
            iinc 4 1
      StackMap locals:
      StackMap stack:
        18: iload 4
            iload 5
            if_icmplt 14
        19: .line 525
            goto 21
        20: .line 526
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.Delete
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* originalClass */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 2 /* deleteAnnotation */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 528
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        end local 1 // java.lang.Class originalClass
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   22     1     originalClass  Ljava/lang/Class<*>;
            0   22     2  deleteAnnotation  Lcom/oracle/svm/core/annotate/Delete;
            3    5     3                 m  Ljava/lang/reflect/Executable;
            4    5     7            method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            9   11     3                 m  Ljava/lang/reflect/Executable;
           10   11     7            method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           15   17     3                 f  Ljava/lang/reflect/Field;
           16   17     7             field  Ljdk/vm/ci/meta/ResolvedJavaField;
    Signature: (Ljava/lang/Class<*>;Lcom/oracle/svm/core/annotate/Delete;)V
    MethodParameters:
                  Name  Flags
      originalClass     
      deleteAnnotation  

  private void registerAsDeleted(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, com.oracle.svm.core.annotate.Delete);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod annotated
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod original
        start local 3 // com.oracle.svm.core.annotate.Delete deleteAnnotation
         0: .line 531
            getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 3
         1: .line 532
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aload 1 /* annotated */
            aload 2 /* original */
            new com.oracle.svm.hosted.substitute.DeletedMethod
            dup
            aload 2 /* original */
            aload 3 /* deleteAnnotation */
            invokespecial com.oracle.svm.hosted.substitute.DeletedMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 533
            goto 5
         3: .line 534
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
            aload 2 /* original */
            aload 3 /* deleteAnnotation */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 535
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
            aload 1 /* annotated */
            aload 3 /* deleteAnnotation */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 537
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod original
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod annotated
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    6     1         annotated  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    6     2          original  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    6     3  deleteAnnotation  Lcom/oracle/svm/core/annotate/Delete;
    MethodParameters:
                  Name  Flags
      annotated         
      original          
      deleteAnnotation  

  private void registerAsDeleted(jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField, com.oracle.svm.core.annotate.Delete);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/Delete;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // jdk.vm.ci.meta.ResolvedJavaField annotated
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField original
        start local 3 // com.oracle.svm.core.annotate.Delete deleteAnnotation
         0: .line 540
            getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 3
         1: .line 541
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 1 /* annotated */
            aload 2 /* original */
            new com.oracle.svm.hosted.substitute.AnnotatedField
            dup
            aload 2 /* original */
            aload 3 /* deleteAnnotation */
            invokespecial com.oracle.svm.hosted.substitute.AnnotatedField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/annotation/Annotation;)V
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 542
            goto 5
         3: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
            aload 2 /* original */
            aload 3 /* deleteAnnotation */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 544
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
            aload 1 /* annotated */
            aload 3 /* deleteAnnotation */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 546
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField original
        end local 1 // jdk.vm.ci.meta.ResolvedJavaField annotated
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    6     1         annotated  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    6     2          original  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    6     3  deleteAnnotation  Lcom/oracle/svm/core/annotate/Delete;
    MethodParameters:
                  Name  Flags
      annotated         
      original          
      deleteAnnotation  

  private void handleSubstitutionClass(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.Class annotatedClass
        start local 2 // java.lang.Class originalClass
         0: .line 563
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.isInterface:()Z
            aload 2 /* originalClass */
            invokevirtual java.lang.Class.isInterface:()Z
            if_icmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "if original is interface, target must also be interface: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedClass */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         3: .line 564
            aload 2 /* originalClass */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 4
            aload 2 /* originalClass */
            invokevirtual java.lang.Class.isInterface:()Z
            ifne 4
            iconst_0
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: ldc "target class must inherit directly from Object: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* originalClass */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         6: .line 566
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 2 /* originalClass */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 3 /* original */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaType original
         7: .line 567
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* annotatedClass */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* annotated */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaType annotated
         8: .line 569
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 15
        10: .line 570
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType int
      StackMap stack:
            new com.oracle.svm.hosted.substitute.SubstitutionType
            dup
            aload 3 /* original */
            aload 4 /* annotated */
            invokespecial com.oracle.svm.hosted.substitute.SubstitutionType.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaType;)V
            astore 6 /* substitution */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaType substitution
        11: .line 571
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
            aload 4 /* annotated */
            aload 3 /* original */
            aload 6 /* substitution */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 573
            aload 3 /* original */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getArrayClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 3 /* original */
        13: .line 574
            aload 4 /* annotated */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getArrayClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* annotated */
        end local 6 // jdk.vm.ci.meta.ResolvedJavaType substitution
        14: .line 569
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* i */
            bipush 8
            if_icmplt 10
        end local 5 // int i
        16: .line 577
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 20
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Method[]
      StackMap stack:
        17: aload 8
            iload 6
            aaload
            astore 5 /* m */
        start local 5 // java.lang.reflect.Method m
        18: .line 578
            aload 0 /* this */
            aload 5 /* m */
            aload 2 /* originalClass */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleAnnotatedMethodInSubstitutionClass:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
        end local 5 // java.lang.reflect.Method m
        19: .line 577
            iinc 6 1
      StackMap locals:
      StackMap stack:
        20: iload 6
            iload 7
            if_icmplt 17
        21: .line 580
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 25
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Constructor[]
      StackMap stack:
        22: aload 8
            iload 6
            aaload
            astore 5 /* c */
        start local 5 // java.lang.reflect.Constructor c
        23: .line 581
            aload 0 /* this */
            aload 5 /* c */
            aload 2 /* originalClass */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleAnnotatedMethodInSubstitutionClass:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
        end local 5 // java.lang.reflect.Constructor c
        24: .line 580
            iinc 6 1
      StackMap locals:
      StackMap stack:
        25: iload 6
            iload 7
            if_icmplt 22
        26: .line 583
            aload 2 /* originalClass */
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 30
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Method[]
      StackMap stack:
        27: aload 8
            iload 6
            aaload
            astore 5 /* m */
        start local 5 // java.lang.reflect.Method m
        28: .line 584
            aload 0 /* this */
            aload 5 /* m */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleOriginalMethodInSubstitutionClass:(Ljava/lang/reflect/Executable;)V
        end local 5 // java.lang.reflect.Method m
        29: .line 583
            iinc 6 1
      StackMap locals:
      StackMap stack:
        30: iload 6
            iload 7
            if_icmplt 27
        31: .line 586
            aload 2 /* originalClass */
            invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 35
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Constructor[]
      StackMap stack:
        32: aload 8
            iload 6
            aaload
            astore 5 /* c */
        start local 5 // java.lang.reflect.Constructor c
        33: .line 587
            aload 0 /* this */
            aload 5 /* c */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleOriginalMethodInSubstitutionClass:(Ljava/lang/reflect/Executable;)V
        end local 5 // java.lang.reflect.Constructor c
        34: .line 586
            iinc 6 1
      StackMap locals:
      StackMap stack:
        35: iload 6
            iload 7
            if_icmplt 32
        36: .line 590
            aload 1 /* annotatedClass */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 49
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Field[]
      StackMap stack:
        37: aload 8
            iload 6
            aaload
            astore 5 /* f */
        start local 5 // java.lang.reflect.Field f
        38: .line 591
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 5 /* f */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 9 /* field */
        start local 9 // jdk.vm.ci.meta.ResolvedJavaField field
        39: .line 592
            aload 0 /* this */
            aload 1 /* annotatedClass */
            aload 9 /* field */
            aload 9 /* field */
            aload 5 /* f */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldValueRecomputation:(Ljava/lang/Class;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 10 /* alias */
        start local 10 // jdk.vm.ci.meta.ResolvedJavaField alias
        40: .line 593
            aload 10 /* alias */
            aload 9 /* field */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 47
        41: .line 594
            aload 0 /* this */
            aload 5 /* f */
            aload 2 /* originalClass */
            iconst_1
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalField:(Ljava/lang/reflect/Field;Ljava/lang/Class;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 11 /* originalField */
        start local 11 // jdk.vm.ci.meta.ResolvedJavaField originalField
        42: .line 595
            aload 11 /* originalField */
            ifnull 43
            aload 10 /* alias */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
            ifeq 43
            aload 11 /* originalField */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
            ifne 43
            iconst_0
            goto 44
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType java.lang.reflect.Field int int java.lang.reflect.Field[] jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
        43: iconst_1
      StackMap locals:
      StackMap stack: int
        44: ldc "a non-final field cannot be redeclared as final through substitution: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* field */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        45: .line 596
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 9 /* field */
            aload 11 /* originalField */
            aload 10 /* alias */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 11 // jdk.vm.ci.meta.ResolvedJavaField originalField
        46: .line 597
            goto 48
        47: .line 598
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* f */
            aload 2 /* originalClass */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleAnnotatedFieldInSubstitutionClass:(Ljava/lang/reflect/Field;Ljava/lang/Class;)V
        end local 10 // jdk.vm.ci.meta.ResolvedJavaField alias
        end local 9 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 5 // java.lang.reflect.Field f
        48: .line 590
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Field[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        49: iload 6
            iload 7
            if_icmplt 37
        50: .line 601
            aload 2 /* originalClass */
            invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 54
      StackMap locals:
      StackMap stack:
        51: aload 8
            iload 6
            aaload
            astore 5 /* f */
        start local 5 // java.lang.reflect.Field f
        52: .line 602
            aload 0 /* this */
            aload 5 /* f */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleOriginalFieldInSubstitutionClass:(Ljava/lang/reflect/Field;)V
        end local 5 // java.lang.reflect.Field f
        53: .line 601
            iinc 6 1
      StackMap locals:
      StackMap stack:
        54: iload 6
            iload 7
            if_icmplt 51
        55: .line 604
            return
        end local 4 // jdk.vm.ci.meta.ResolvedJavaType annotated
        end local 3 // jdk.vm.ci.meta.ResolvedJavaType original
        end local 2 // java.lang.Class originalClass
        end local 1 // java.lang.Class annotatedClass
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   56     0            this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   56     1  annotatedClass  Ljava/lang/Class<*>;
            0   56     2   originalClass  Ljava/lang/Class<*>;
            7   56     3        original  Ljdk/vm/ci/meta/ResolvedJavaType;
            8   56     4       annotated  Ljdk/vm/ci/meta/ResolvedJavaType;
            9   16     5               i  I
           11   14     6    substitution  Ljdk/vm/ci/meta/ResolvedJavaType;
           18   19     5               m  Ljava/lang/reflect/Method;
           23   24     5               c  Ljava/lang/reflect/Constructor<*>;
           28   29     5               m  Ljava/lang/reflect/Method;
           33   34     5               c  Ljava/lang/reflect/Constructor<*>;
           38   48     5               f  Ljava/lang/reflect/Field;
           39   48     9           field  Ljdk/vm/ci/meta/ResolvedJavaField;
           40   48    10           alias  Ljdk/vm/ci/meta/ResolvedJavaField;
           42   46    11   originalField  Ljdk/vm/ci/meta/ResolvedJavaField;
           52   53     5               f  Ljava/lang/reflect/Field;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      annotatedClass  
      originalClass   

  private void handleAnnotatedMethodInSubstitutionClass(java.lang.reflect.Executable, java.lang.Class<?>);
    descriptor: (Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.reflect.Executable annotatedMethod
        start local 2 // java.lang.Class originalClass
         0: .line 607
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            ldc Lcom/oracle/svm/core/annotate/Substitute;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Substitute
            astore 3 /* substituteAnnotation */
        start local 3 // com.oracle.svm.core.annotate.Substitute substituteAnnotation
         1: .line 608
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            ldc Lcom/oracle/svm/core/annotate/KeepOriginal;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.KeepOriginal
            astore 4 /* keepOriginalAnnotation */
        start local 4 // com.oracle.svm.core.annotate.KeepOriginal keepOriginalAnnotation
         2: .line 610
            aload 3 /* substituteAnnotation */
            ifnull 3
            iconst_1
            goto 4
      StackMap locals: com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.KeepOriginal
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: aload 4 /* keepOriginalAnnotation */
            ifnull 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Executable java.lang.Class com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.KeepOriginal
      StackMap stack: int int
         6: iadd
            istore 5 /* numAnnotations */
        start local 5 // int numAnnotations
         7: .line 611
            iload 5 /* numAnnotations */
            ifne 9
         8: .line 613
            return
         9: .line 615
      StackMap locals: int
      StackMap stack:
            iload 5 /* numAnnotations */
            iconst_1
            if_icmpne 10
            iconst_1
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: ldc "only one of @Substitute or @KeepOriginal can be used: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedMethod */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        12: .line 617
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* annotatedMethod */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 6 /* annotated */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaMethod annotated
        13: .line 618
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            aload 2 /* originalClass */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalMethod:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 7 /* original */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaMethod original
        14: .line 620
            aload 7 /* original */
            ifnull 23
        15: .line 622
            aload 3 /* substituteAnnotation */
            ifnull 21
        16: .line 623
            new com.oracle.svm.hosted.substitute.SubstitutionMethod
            dup
            aload 7 /* original */
            aload 6 /* annotated */
            iconst_1
            invokespecial com.oracle.svm.hosted.substitute.SubstitutionMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Z)V
            astore 8 /* substitution */
        start local 8 // com.oracle.svm.hosted.substitute.SubstitutionMethod substitution
        17: .line 624
            aload 3 /* substituteAnnotation */
            invokeinterface com.oracle.svm.core.annotate.Substitute.polymorphicSignature:()Z
            ifeq 19
        18: .line 625
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.polymorphicMethodSubstitutions:Ljava/util/Map;
            aload 6 /* annotated */
            aload 7 /* original */
            aload 8 /* substitution */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        19: .line 627
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.hosted.substitute.SubstitutionMethod
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aload 6 /* annotated */
            aload 7 /* original */
            aload 8 /* substitution */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 8 // com.oracle.svm.hosted.substitute.SubstitutionMethod substitution
        20: .line 628
            goto 23
      StackMap locals:
      StackMap stack:
        21: aload 4 /* keepOriginalAnnotation */
            ifnull 23
        22: .line 629
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aload 6 /* annotated */
            aload 7 /* original */
            aload 7 /* original */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
        23: .line 631
      StackMap locals:
      StackMap stack:
            return
        end local 7 // jdk.vm.ci.meta.ResolvedJavaMethod original
        end local 6 // jdk.vm.ci.meta.ResolvedJavaMethod annotated
        end local 5 // int numAnnotations
        end local 4 // com.oracle.svm.core.annotate.KeepOriginal keepOriginalAnnotation
        end local 3 // com.oracle.svm.core.annotate.Substitute substituteAnnotation
        end local 2 // java.lang.Class originalClass
        end local 1 // java.lang.reflect.Executable annotatedMethod
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   24     0                    this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   24     1         annotatedMethod  Ljava/lang/reflect/Executable;
            0   24     2           originalClass  Ljava/lang/Class<*>;
            1   24     3    substituteAnnotation  Lcom/oracle/svm/core/annotate/Substitute;
            2   24     4  keepOriginalAnnotation  Lcom/oracle/svm/core/annotate/KeepOriginal;
            7   24     5          numAnnotations  I
           13   24     6               annotated  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           14   24     7                original  Ljdk/vm/ci/meta/ResolvedJavaMethod;
           17   20     8            substitution  Lcom/oracle/svm/hosted/substitute/SubstitutionMethod;
    Signature: (Ljava/lang/reflect/Executable;Ljava/lang/Class<*>;)V
    MethodParameters:
                 Name  Flags
      annotatedMethod  
      originalClass    

  private void handleAnnotatedFieldInSubstitutionClass(java.lang.reflect.Field, java.lang.Class<?>);
    descriptor: (Ljava/lang/reflect/Field;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.reflect.Field annotatedField
        start local 2 // java.lang.Class originalClass
         0: .line 634
            aload 0 /* this */
            aload 1 /* annotatedField */
            ldc Lcom/oracle/svm/core/annotate/Substitute;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.Substitute
            astore 3 /* substituteAnnotation */
        start local 3 // com.oracle.svm.core.annotate.Substitute substituteAnnotation
         1: .line 636
            aload 3 /* substituteAnnotation */
            ifnonnull 3
         2: .line 638
            return
         3: .line 641
      StackMap locals: com.oracle.svm.core.annotate.Substitute
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* annotatedField */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 4 /* annotated */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaField annotated
         4: .line 642
            aload 0 /* this */
            aload 1 /* annotatedField */
            aload 2 /* originalClass */
            iconst_0
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalField:(Ljava/lang/reflect/Field;Ljava/lang/Class;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 5 /* original */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaField original
         5: .line 644
            aload 5 /* original */
            ifnull 7
         6: .line 647
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 4 /* annotated */
            aload 5 /* original */
            new com.oracle.svm.hosted.substitute.SubstitutionField
            dup
            aload 5 /* original */
            aload 4 /* annotated */
            invokespecial com.oracle.svm.hosted.substitute.SubstitutionField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;)V
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 649
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            return
        end local 5 // jdk.vm.ci.meta.ResolvedJavaField original
        end local 4 // jdk.vm.ci.meta.ResolvedJavaField annotated
        end local 3 // com.oracle.svm.core.annotate.Substitute substituteAnnotation
        end local 2 // java.lang.Class originalClass
        end local 1 // java.lang.reflect.Field annotatedField
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    8     0                  this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    8     1        annotatedField  Ljava/lang/reflect/Field;
            0    8     2         originalClass  Ljava/lang/Class<*>;
            1    8     3  substituteAnnotation  Lcom/oracle/svm/core/annotate/Substitute;
            4    8     4             annotated  Ljdk/vm/ci/meta/ResolvedJavaField;
            5    8     5              original  Ljdk/vm/ci/meta/ResolvedJavaField;
    Signature: (Ljava/lang/reflect/Field;Ljava/lang/Class<*>;)V
    MethodParameters:
                Name  Flags
      annotatedField  
      originalClass   

  private void handleOriginalMethodInSubstitutionClass(java.lang.reflect.Executable);
    descriptor: (Ljava/lang/reflect/Executable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.reflect.Executable m
         0: .line 652
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* m */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 2 /* method */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
         1: .line 653
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aload 2 /* method */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 6
         2: .line 654
            aload 2 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isSynthetic:()Z
            ifeq 5
         3: .line 663
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
            aconst_null
            aload 2 /* method */
            aload 2 /* method */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 664
            goto 6
         5: .line 665
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 2 /* method */
            getstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.SUBSTITUTION_DELETE:Lcom/oracle/svm/core/annotate/Delete;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
         6: .line 668
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 1 // java.lang.reflect.Executable m
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    7     1       m  Ljava/lang/reflect/Executable;
            1    7     2  method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
      Name  Flags
      m     

  private void handleOriginalFieldInSubstitutionClass(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.reflect.Field f
         0: .line 671
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* f */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 2 /* field */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField field
         1: .line 672
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 2 /* field */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 6
         2: .line 673
            aload 2 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isSynthetic:()Z
            ifeq 5
         3: .line 674
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aconst_null
            aload 2 /* field */
            aload 2 /* field */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 675
            goto 6
         5: .line 676
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 2 /* field */
            getstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.SUBSTITUTION_DELETE:Lcom/oracle/svm/core/annotate/Delete;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/Delete;)V
         6: .line 679
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField field
        end local 1 // java.lang.reflect.Field f
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    7     1      f  Ljava/lang/reflect/Field;
            1    7     2  field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
      Name  Flags
      f     

  private jdk.vm.ci.meta.ResolvedJavaMethod findOriginalMethod(java.lang.reflect.Executable, java.lang.Class<?>);
    descriptor: (Ljava/lang/reflect/Executable;Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.reflect.Executable annotatedMethod
        start local 2 // java.lang.Class originalClass
         0: .line 682
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            ldc Lcom/oracle/svm/core/annotate/TargetElement;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.TargetElement
            astore 3 /* targetElementAnnotation */
        start local 3 // com.oracle.svm.core.annotate.TargetElement targetElementAnnotation
         1: .line 683
            ldc ""
            astore 4 /* originalName */
        start local 4 // java.lang.String originalName
         2: .line 684
            aload 3 /* targetElementAnnotation */
            ifnull 6
         3: .line 685
            aload 3 /* targetElementAnnotation */
            invokeinterface com.oracle.svm.core.annotate.TargetElement.name:()Ljava/lang/String;
            astore 4 /* originalName */
         4: .line 686
            aload 3 /* targetElementAnnotation */
            aload 2 /* originalClass */
            aload 1 /* annotatedMethod */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.isIncluded:(Lcom/oracle/svm/core/annotate/TargetElement;Ljava/lang/Class;Ljava/lang/reflect/AnnotatedElement;)Z
            ifne 6
         5: .line 687
            aconst_null
            areturn
         6: .line 691
      StackMap locals: com.oracle.svm.core.annotate.TargetElement java.lang.String
      StackMap stack:
            aload 4 /* originalName */
            invokevirtual java.lang.String.length:()I
            ifne 8
         7: .line 692
            aload 1 /* annotatedMethod */
            invokevirtual java.lang.reflect.Executable.getName:()Ljava/lang/String;
            astore 4 /* originalName */
         8: .line 696
      StackMap locals:
      StackMap stack:
            aload 1 /* annotatedMethod */
            instanceof java.lang.reflect.Method
            ifeq 16
            aload 4 /* originalName */
            ldc "<init>"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
         9: .line 697
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            invokevirtual java.lang.reflect.Executable.getParameterTypes:()[Ljava/lang/Class;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.interceptParameterTypes:([Ljava/lang/Class;)[Ljava/lang/Class;
            astore 5 /* originalParams */
        start local 5 // java.lang.Class[] originalParams
        10: .line 698
            aload 2 /* originalClass */
            aload 4 /* originalName */
            aload 5 /* originalParams */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 6 /* originalMethod */
        start local 6 // java.lang.reflect.Method originalMethod
        11: .line 700
            aload 1 /* annotatedMethod */
            invokevirtual java.lang.reflect.Executable.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            aload 6 /* originalMethod */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            if_icmpne 12
            iconst_1
            goto 13
      StackMap locals: java.lang.Class[] java.lang.reflect.Method
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: ldc "Static modifier mismatch: %s, %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedMethod */
            aastore
            dup
            iconst_1
            aload 6 /* originalMethod */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        14: .line 701
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 6 /* originalMethod */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
        15: areturn
        end local 6 // java.lang.reflect.Method originalMethod
        end local 5 // java.lang.Class[] originalParams
        16: .line 704
      StackMap locals:
      StackMap stack:
            aload 1 /* annotatedMethod */
            invokevirtual java.lang.reflect.Executable.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_1
      StackMap locals:
      StackMap stack: int
        18: ldc "Constructor Alias method %s must not be static"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedMethod */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        19: .line 705
            aload 0 /* this */
            aload 1 /* annotatedMethod */
            invokevirtual java.lang.reflect.Executable.getParameterTypes:()[Ljava/lang/Class;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.interceptParameterTypes:([Ljava/lang/Class;)[Ljava/lang/Class;
            astore 5 /* originalParams */
        start local 5 // java.lang.Class[] originalParams
        20: .line 706
            aload 2 /* originalClass */
            aload 5 /* originalParams */
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 6 /* originalMethod */
        start local 6 // java.lang.reflect.Constructor originalMethod
        21: .line 707
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 6 /* originalMethod */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
        22: areturn
        end local 6 // java.lang.reflect.Constructor originalMethod
        end local 5 // java.lang.Class[] originalParams
        23: .line 710
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
        24: .line 711
            ldc "Could not find target method: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedMethod */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        25: .line 712
      StackMap locals:
      StackMap stack: java.lang.LinkageError
            astore 5 /* error */
        start local 5 // java.lang.LinkageError error
        26: .line 713
            ldc "Cannot find %s.%s, %s can not be loaded, due to %s not being available in the classpath. Are you missing a dependency in your classpath?"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        27: .line 714
            aload 2 /* originalClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 4 /* originalName */
            aastore
            dup
            iconst_2
            aload 2 /* originalClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_3
            aload 5 /* error */
            invokevirtual java.lang.LinkageError.getMessage:()Ljava/lang/String;
            aastore
        28: .line 713
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 5 // java.lang.LinkageError error
        end local 4 // java.lang.String originalName
        end local 3 // com.oracle.svm.core.annotate.TargetElement targetElementAnnotation
        end local 2 // java.lang.Class originalClass
        end local 1 // java.lang.reflect.Executable annotatedMethod
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   29     0                     this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   29     1          annotatedMethod  Ljava/lang/reflect/Executable;
            0   29     2            originalClass  Ljava/lang/Class<*>;
            1   29     3  targetElementAnnotation  Lcom/oracle/svm/core/annotate/TargetElement;
            2   29     4             originalName  Ljava/lang/String;
           10   16     5           originalParams  [Ljava/lang/Class;
           11   16     6           originalMethod  Ljava/lang/reflect/Method;
           20   23     5           originalParams  [Ljava/lang/Class;
           21   23     6           originalMethod  Ljava/lang/reflect/Constructor<*>;
           26   29     5                    error  Ljava/lang/LinkageError;
      Exception table:
        from    to  target  type
           8    15      23  Class java.lang.NoSuchMethodException
          16    22      23  Class java.lang.NoSuchMethodException
           8    15      25  Class java.lang.LinkageError
          16    22      25  Class java.lang.LinkageError
    Signature: (Ljava/lang/reflect/Executable;Ljava/lang/Class<*>;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
                 Name  Flags
      annotatedMethod  
      originalClass    

  private jdk.vm.ci.meta.ResolvedJavaField findOriginalField(java.lang.reflect.Field, java.lang.Class<?>, boolean);
    descriptor: (Ljava/lang/reflect/Field;Ljava/lang/Class;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.reflect.Field annotatedField
        start local 2 // java.lang.Class originalClass
        start local 3 // boolean forceOptional
         0: .line 719
            aload 0 /* this */
            aload 1 /* annotatedField */
            ldc Lcom/oracle/svm/core/annotate/TargetElement;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.TargetElement
            astore 4 /* targetElementAnnotation */
        start local 4 // com.oracle.svm.core.annotate.TargetElement targetElementAnnotation
         1: .line 720
            ldc ""
            astore 5 /* originalName */
        start local 5 // java.lang.String originalName
         2: .line 721
            aload 4 /* targetElementAnnotation */
            ifnull 6
         3: .line 722
            aload 4 /* targetElementAnnotation */
            invokeinterface com.oracle.svm.core.annotate.TargetElement.name:()Ljava/lang/String;
            astore 5 /* originalName */
         4: .line 723
            aload 4 /* targetElementAnnotation */
            aload 2 /* originalClass */
            aload 1 /* annotatedField */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.isIncluded:(Lcom/oracle/svm/core/annotate/TargetElement;Ljava/lang/Class;Ljava/lang/reflect/AnnotatedElement;)Z
            ifne 6
         5: .line 724
            aconst_null
            areturn
         6: .line 727
      StackMap locals: com.oracle.svm.core.annotate.TargetElement java.lang.String
      StackMap stack:
            aload 5 /* originalName */
            invokevirtual java.lang.String.length:()I
            ifne 8
         7: .line 728
            aload 1 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
            astore 5 /* originalName */
         8: .line 732
      StackMap locals:
      StackMap stack:
            aload 2 /* originalClass */
            aload 5 /* originalName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 6 /* originalField */
        start local 6 // java.lang.reflect.Field originalField
         9: .line 734
            aload 0 /* this */
            aload 1 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.getTargetClass:(Ljava/lang/Class;)Ljava/lang/Class;
            aload 6 /* originalField */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
        10: .line 735
            ldc "Type mismatch:%n    %s %s%n    %s %s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            aastore
            dup
            iconst_1
            aload 1 /* annotatedField */
            aastore
            dup
            iconst_2
            aload 6 /* originalField */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            aastore
            dup
            iconst_3
            aload 6 /* originalField */
            aastore
        11: .line 734
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        12: .line 737
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 6 /* originalField */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
        13: areturn
        end local 6 // java.lang.reflect.Field originalField
        14: .line 739
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldException
            pop
        15: .line 746
            aload 1 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 18
        16: .line 747
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 2 /* originalClass */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getStaticFields:()[Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 6 /* fields */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaField[] fields
        17: .line 748
            goto 19
        end local 6 // jdk.vm.ci.meta.ResolvedJavaField[] fields
        18: .line 749
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 2 /* originalClass */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            iconst_1
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getInstanceFields:(Z)[Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 6 /* fields */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaField[] fields
        19: .line 751
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaField[]
      StackMap stack:
            aload 6 /* fields */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 24
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Field java.lang.Class int com.oracle.svm.core.annotate.TargetElement java.lang.String jdk.vm.ci.meta.ResolvedJavaField[] top int int jdk.vm.ci.meta.ResolvedJavaField[]
      StackMap stack:
        20: aload 10
            iload 8
            aaload
            astore 7 /* f */
        start local 7 // jdk.vm.ci.meta.ResolvedJavaField f
        21: .line 752
            aload 7 /* f */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getName:()Ljava/lang/String;
            aload 5 /* originalName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        22: .line 753
            aload 7 /* f */
            areturn
        end local 7 // jdk.vm.ci.meta.ResolvedJavaField f
        23: .line 751
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        24: iload 8
            iload 9
            if_icmplt 20
        25: .line 757
            iload 3 /* forceOptional */
            ldc "could not find target field: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedField */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        26: .line 758
            aconst_null
            areturn
        end local 6 // jdk.vm.ci.meta.ResolvedJavaField[] fields
        end local 5 // java.lang.String originalName
        end local 4 // com.oracle.svm.core.annotate.TargetElement targetElementAnnotation
        end local 3 // boolean forceOptional
        end local 2 // java.lang.Class originalClass
        end local 1 // java.lang.reflect.Field annotatedField
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   27     0                     this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   27     1           annotatedField  Ljava/lang/reflect/Field;
            0   27     2            originalClass  Ljava/lang/Class<*>;
            0   27     3            forceOptional  Z
            1   27     4  targetElementAnnotation  Lcom/oracle/svm/core/annotate/TargetElement;
            2   27     5             originalName  Ljava/lang/String;
            9   14     6            originalField  Ljava/lang/reflect/Field;
           17   18     6                   fields  [Ljdk/vm/ci/meta/ResolvedJavaField;
           19   27     6                   fields  [Ljdk/vm/ci/meta/ResolvedJavaField;
           21   23     7                        f  Ljdk/vm/ci/meta/ResolvedJavaField;
      Exception table:
        from    to  target  type
           8    13      14  Class java.lang.NoSuchFieldException
    Signature: (Ljava/lang/reflect/Field;Ljava/lang/Class<*>;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
                Name  Flags
      annotatedField  
      originalClass   
      forceOptional   

  private static boolean isIncluded(com.oracle.svm.core.annotate.TargetElement, java.lang.Class<?>, java.lang.reflect.AnnotatedElement);
    descriptor: (Lcom/oracle/svm/core/annotate/TargetElement;Ljava/lang/Class;Ljava/lang/reflect/AnnotatedElement;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // com.oracle.svm.core.annotate.TargetElement targetElementAnnotation
        start local 1 // java.lang.Class originalClass
        start local 2 // java.lang.reflect.AnnotatedElement annotatedElement
         0: .line 763
            aload 0 /* targetElementAnnotation */
            invokeinterface com.oracle.svm.core.annotate.TargetElement.onlyWith:()[Ljava/lang/Class;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 17
      StackMap locals: com.oracle.svm.core.annotate.TargetElement java.lang.Class java.lang.reflect.AnnotatedElement top int int java.lang.Class[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* onlyWithClass */
        start local 3 // java.lang.Class onlyWithClass
         2: .line 766
            aload 3 /* onlyWithClass */
            invokestatic com.oracle.svm.util.ReflectionUtil.newInstance:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 7 /* onlyWithProvider */
        start local 7 // java.lang.Object onlyWithProvider
         3: .line 767
            goto 6
        end local 7 // java.lang.Object onlyWithProvider
      StackMap locals: com.oracle.svm.core.annotate.TargetElement java.lang.Class java.lang.reflect.AnnotatedElement java.lang.Class int int java.lang.Class[]
      StackMap stack: com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
         4: astore 8 /* ex */
        start local 8 // com.oracle.svm.util.ReflectionUtil$ReflectionUtilError ex
         5: .line 768
            aload 8 /* ex */
            invokevirtual com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.getCause:()Ljava/lang/Throwable;
            ldc "Class specified as onlyWith for %s cannot be loaded or instantiated: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* annotatedElement */
            aastore
            dup
            iconst_1
            aload 3 /* onlyWithClass */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 8 // com.oracle.svm.util.ReflectionUtil$ReflectionUtilError ex
        start local 7 // java.lang.Object onlyWithProvider
         6: .line 772
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 7 /* onlyWithProvider */
            instanceof java.util.function.BooleanSupplier
            ifeq 9
         7: .line 773
            aload 7 /* onlyWithProvider */
            checkcast java.util.function.BooleanSupplier
            invokeinterface java.util.function.BooleanSupplier.getAsBoolean:()Z
            istore 8 /* onlyWithResult */
        start local 8 // boolean onlyWithResult
         8: .line 774
            goto 14
        end local 8 // boolean onlyWithResult
      StackMap locals:
      StackMap stack:
         9: aload 7 /* onlyWithProvider */
            instanceof java.util.function.Predicate
            ifeq 13
        10: .line 776
            aload 7 /* onlyWithProvider */
            checkcast java.util.function.Predicate
            astore 9 /* onlyWithPredicate */
        start local 9 // java.util.function.Predicate onlyWithPredicate
        11: .line 777
            aload 9 /* onlyWithPredicate */
            aload 1 /* originalClass */
            invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
            istore 8 /* onlyWithResult */
        end local 9 // java.util.function.Predicate onlyWithPredicate
        start local 8 // boolean onlyWithResult
        12: .line 778
            goto 14
        end local 8 // boolean onlyWithResult
        13: .line 779
      StackMap locals:
      StackMap stack:
            ldc "Class specified as onlyWith for %s does not implement %s or %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* annotatedElement */
            aastore
            dup
            iconst_1
            ldc Ljava/util/function/BooleanSupplier;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            ldc Ljava/util/function/Predicate;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        start local 8 // boolean onlyWithResult
        14: .line 782
      StackMap locals: int
      StackMap stack:
            iload 8 /* onlyWithResult */
            ifne 16
        15: .line 783
            iconst_0
            ireturn
        end local 8 // boolean onlyWithResult
        end local 7 // java.lang.Object onlyWithProvider
        end local 3 // java.lang.Class onlyWithClass
        16: .line 763
      StackMap locals: com.oracle.svm.core.annotate.TargetElement java.lang.Class java.lang.reflect.AnnotatedElement top int int java.lang.Class[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        17: iload 4
            iload 5
            if_icmplt 1
        18: .line 786
            iconst_1
            ireturn
        end local 2 // java.lang.reflect.AnnotatedElement annotatedElement
        end local 1 // java.lang.Class originalClass
        end local 0 // com.oracle.svm.core.annotate.TargetElement targetElementAnnotation
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   19     0  targetElementAnnotation  Lcom/oracle/svm/core/annotate/TargetElement;
            0   19     1            originalClass  Ljava/lang/Class<*>;
            0   19     2         annotatedElement  Ljava/lang/reflect/AnnotatedElement;
            2   16     3            onlyWithClass  Ljava/lang/Class<*>;
            3    4     7         onlyWithProvider  Ljava/lang/Object;
            6   16     7         onlyWithProvider  Ljava/lang/Object;
            5    6     8                       ex  Lcom/oracle/svm/util/ReflectionUtil$ReflectionUtilError;
            8    9     8           onlyWithResult  Z
           12   13     8           onlyWithResult  Z
           14   16     8           onlyWithResult  Z
           11   12     9        onlyWithPredicate  Ljava/util/function/Predicate<Ljava/lang/Class<*>;>;
      Exception table:
        from    to  target  type
           2     3       4  Class com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
    Signature: (Lcom/oracle/svm/core/annotate/TargetElement;Ljava/lang/Class<*>;Ljava/lang/reflect/AnnotatedElement;)Z
    MethodParameters:
                         Name  Flags
      targetElementAnnotation  
      originalClass            
      annotatedElement         

  private static <T> void register(java.util.Map<T, T>, T, T, );
    descriptor: (Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // java.util.Map substitutions
        start local 1 // java.lang.Object annotated
        start local 2 // java.lang.Object original
        start local 3 // java.lang.Object target
         0: .line 790
            aload 1 /* annotated */
            ifnull 5
         1: .line 791
            aload 0 /* substitutions */
            aload 1 /* annotated */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
            aload 0 /* substitutions */
            aload 1 /* annotated */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 2 /* original */
            if_acmpeq 2
            aload 0 /* substitutions */
            aload 1 /* annotated */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* target */
            if_acmpeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ldc "Already registered: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotated */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         4: .line 792
            aload 0 /* substitutions */
            aload 1 /* annotated */
            aload 3 /* target */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 794
      StackMap locals:
      StackMap stack:
            aload 2 /* original */
            ifnull 10
         6: .line 795
            aload 0 /* substitutions */
            aload 2 /* original */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 7
            aload 0 /* substitutions */
            aload 2 /* original */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 2 /* original */
            if_acmpeq 7
            aload 0 /* substitutions */
            aload 2 /* original */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* target */
            if_acmpeq 7
            iconst_0
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_1
      StackMap locals:
      StackMap stack: int
         8: ldc "Already registered: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* original */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         9: .line 796
            aload 0 /* substitutions */
            aload 2 /* original */
            aload 3 /* target */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 798
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object target
        end local 2 // java.lang.Object original
        end local 1 // java.lang.Object annotated
        end local 0 // java.util.Map substitutions
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0  substitutions  Ljava/util/Map<TT;TT;>;
            0   11     1      annotated  TT;
            0   11     2       original  TT;
            0   11     3         target  TT;
    Signature: <T:Ljava/lang/Object;>(Ljava/util/Map<TT;TT;>;TT;TT;TT;)V
    MethodParameters:
               Name  Flags
      substitutions  
      annotated      
      original       
      target         

  private jdk.vm.ci.meta.ResolvedJavaField fieldValueRecomputation(java.lang.Class<?>, jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField, java.lang.reflect.Field);
    descriptor: (Ljava/lang/Class;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=12, args_size=5
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.Class originalClass
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField original
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField annotated
        start local 4 // java.lang.reflect.Field annotatedField
         0: .line 801
            aload 0 /* this */
            aload 4 /* annotatedField */
            ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.RecomputeFieldValue
            astore 5 /* recomputeAnnotation */
        start local 5 // com.oracle.svm.core.annotate.RecomputeFieldValue recomputeAnnotation
         1: .line 802
            aload 0 /* this */
            aload 4 /* annotatedField */
            ldc Lcom/oracle/svm/core/annotate/InjectAccessors;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.InjectAccessors
            astore 6 /* injectAccessorsAnnotation */
        start local 6 // com.oracle.svm.core.annotate.InjectAccessors injectAccessorsAnnotation
         2: .line 804
            aload 5 /* recomputeAnnotation */
            ifnull 3
            iconst_1
            goto 4
      StackMap locals: com.oracle.svm.core.annotate.RecomputeFieldValue com.oracle.svm.core.annotate.InjectAccessors
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: aload 6 /* injectAccessorsAnnotation */
            ifnull 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField java.lang.reflect.Field com.oracle.svm.core.annotate.RecomputeFieldValue com.oracle.svm.core.annotate.InjectAccessors
      StackMap stack: int int
         6: iadd
            istore 7 /* numAnnotations */
        start local 7 // int numAnnotations
         7: .line 805
            iload 7 /* numAnnotations */
            iconst_1
            if_icmpgt 8
            iconst_1
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: ldc "Only one of @RecomputeFieldValue or @InjectAccessors can be used: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* annotatedField */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        10: .line 807
            aload 6 /* injectAccessorsAnnotation */
            ifnull 12
        11: .line 808
            new com.oracle.svm.hosted.substitute.AnnotatedField
            dup
            aload 2 /* original */
            aload 6 /* injectAccessorsAnnotation */
            invokespecial com.oracle.svm.hosted.substitute.AnnotatedField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/annotation/Annotation;)V
            areturn
        12: .line 810
      StackMap locals:
      StackMap stack:
            aload 5 /* recomputeAnnotation */
            ifnonnull 14
            aload 2 /* original */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
            ifne 14
        13: .line 811
            aload 2 /* original */
            areturn
        14: .line 814
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.None:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            astore 8 /* kind */
        start local 8 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind kind
        15: .line 815
            aload 1 /* originalClass */
            astore 9 /* targetClass */
        start local 9 // java.lang.Class targetClass
        16: .line 816
            ldc ""
            astore 10 /* targetName */
        start local 10 // java.lang.String targetName
        17: .line 817
            aload 2 /* original */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
            ifeq 18
            aload 3 /* annotated */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
            ifeq 18
            iconst_1
            goto 19
      StackMap locals: com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.lang.Class java.lang.String
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 11 /* isFinal */
        start local 11 // boolean isFinal
        20: .line 819
            aload 5 /* recomputeAnnotation */
            ifnull 35
        21: .line 820
            aload 5 /* recomputeAnnotation */
            invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.kind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            astore 8 /* kind */
        22: .line 821
            aload 5 /* recomputeAnnotation */
            invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.name:()Ljava/lang/String;
            astore 10 /* targetName */
        23: .line 822
            aload 5 /* recomputeAnnotation */
            invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.isFinal:()Z
            istore 11 /* isFinal */
        24: .line 823
            iload 11 /* isFinal */
            ifeq 25
            aload 8 /* kind */
            invokestatic com.oracle.svm.hosted.substitute.ComputedValueField.isFinalValid:(Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;)Z
            ifne 25
            iconst_0
            goto 26
      StackMap locals: int
      StackMap stack:
        25: iconst_1
      StackMap locals:
      StackMap stack: int
        26: ldc "@%s with %s can never be final during analysis: unset isFinal in the annotation on %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        27: .line 824
            ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 8 /* kind */
            aastore
            dup
            iconst_2
            aload 3 /* annotated */
            aastore
        28: .line 823
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        29: .line 825
            aload 5 /* recomputeAnnotation */
            invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.declClass:()Ljava/lang/Class;
            ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            if_acmpeq 33
        30: .line 826
            aload 5 /* recomputeAnnotation */
            invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.declClassName:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ldc "Both class and class name specified"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        31: .line 827
            aload 5 /* recomputeAnnotation */
            invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.declClass:()Ljava/lang/Class;
            astore 9 /* targetClass */
        32: .line 828
            goto 35
      StackMap locals:
      StackMap stack:
        33: aload 5 /* recomputeAnnotation */
            invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.declClassName:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 35
        34: .line 829
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
            aload 5 /* recomputeAnnotation */
            invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.declClassName:()Ljava/lang/String;
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClassOrFail:(Ljava/lang/String;)Ljava/lang/Class;
            astore 9 /* targetClass */
        35: .line 832
      StackMap locals:
      StackMap stack:
            new com.oracle.svm.hosted.substitute.ComputedValueField
            dup
            aload 2 /* original */
            aload 3 /* annotated */
            aload 8 /* kind */
            aload 9 /* targetClass */
            aload 10 /* targetName */
            iload 11 /* isFinal */
            invokespecial com.oracle.svm.hosted.substitute.ComputedValueField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/Class;Ljava/lang/String;Z)V
            areturn
        end local 11 // boolean isFinal
        end local 10 // java.lang.String targetName
        end local 9 // java.lang.Class targetClass
        end local 8 // com.oracle.svm.core.annotate.RecomputeFieldValue$Kind kind
        end local 7 // int numAnnotations
        end local 6 // com.oracle.svm.core.annotate.InjectAccessors injectAccessorsAnnotation
        end local 5 // com.oracle.svm.core.annotate.RecomputeFieldValue recomputeAnnotation
        end local 4 // java.lang.reflect.Field annotatedField
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField annotated
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField original
        end local 1 // java.lang.Class originalClass
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   36     0                       this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   36     1              originalClass  Ljava/lang/Class<*>;
            0   36     2                   original  Ljdk/vm/ci/meta/ResolvedJavaField;
            0   36     3                  annotated  Ljdk/vm/ci/meta/ResolvedJavaField;
            0   36     4             annotatedField  Ljava/lang/reflect/Field;
            1   36     5        recomputeAnnotation  Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
            2   36     6  injectAccessorsAnnotation  Lcom/oracle/svm/core/annotate/InjectAccessors;
            7   36     7             numAnnotations  I
           15   36     8                       kind  Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
           16   36     9                targetClass  Ljava/lang/Class<*>;
           17   36    10                 targetName  Ljava/lang/String;
           20   36    11                    isFinal  Z
    Signature: (Ljava/lang/Class<*>;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
                Name  Flags
      originalClass   
      original        
      annotated       
      annotatedField  

  private void reinitializeField(java.lang.reflect.Field);
    descriptor: (Ljava/lang/reflect/Field;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.reflect.Field annotatedField
         0: .line 836
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* annotatedField */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 2 /* annotated */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField annotated
         1: .line 837
            new com.oracle.svm.hosted.substitute.ComputedValueField
            dup
            aload 2 /* annotated */
            aload 2 /* annotated */
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Reset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            aload 1 /* annotatedField */
            invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
            ldc ""
            iconst_0
            invokespecial com.oracle.svm.hosted.substitute.ComputedValueField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/Class;Ljava/lang/String;Z)V
            astore 3 /* alias */
        start local 3 // com.oracle.svm.hosted.substitute.ComputedValueField alias
         2: .line 838
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
            aload 2 /* annotated */
            aload 2 /* annotated */
            aload 3 /* alias */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 839
            return
        end local 3 // com.oracle.svm.hosted.substitute.ComputedValueField alias
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField annotated
        end local 1 // java.lang.reflect.Field annotatedField
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    4     1  annotatedField  Ljava/lang/reflect/Field;
            1    4     2       annotated  Ljdk/vm/ci/meta/ResolvedJavaField;
            2    4     3           alias  Lcom/oracle/svm/hosted/substitute/ComputedValueField;
    MethodParameters:
                Name  Flags
      annotatedField  

  public java.lang.Class<?> getTargetClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.Class annotatedClass
         0: .line 842
            aload 1 /* annotatedClass */
            astore 2 /* annotatedBaseClass */
        start local 2 // java.lang.Class annotatedBaseClass
         1: .line 843
            iconst_0
            istore 3 /* arrayDepth */
        start local 3 // int arrayDepth
         2: .line 844
            goto 5
         3: .line 845
      StackMap locals: java.lang.Class int
      StackMap stack:
            iinc 3 /* arrayDepth */ 1
         4: .line 846
            aload 2 /* annotatedBaseClass */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 2 /* annotatedBaseClass */
         5: .line 844
      StackMap locals:
      StackMap stack:
            aload 2 /* annotatedBaseClass */
            invokevirtual java.lang.Class.isArray:()Z
            ifne 3
         6: .line 849
            aload 0 /* this */
            aload 2 /* annotatedBaseClass */
            ldc Lcom/oracle/svm/core/annotate/TargetClass;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.TargetClass
            astore 4 /* targetClassAnnotation */
        start local 4 // com.oracle.svm.core.annotate.TargetClass targetClassAnnotation
         7: .line 850
            aload 4 /* targetClassAnnotation */
            ifnonnull 9
         8: .line 852
            aload 1 /* annotatedClass */
            areturn
         9: .line 855
      StackMap locals: com.oracle.svm.core.annotate.TargetClass
      StackMap stack:
            aload 0 /* this */
            aload 2 /* annotatedBaseClass */
            aload 4 /* targetClassAnnotation */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findTargetClass:(Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)Ljava/lang/Class;
            astore 5 /* targetClass */
        start local 5 // java.lang.Class targetClass
        10: .line 856
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        11: goto 14
        12: .line 861
      StackMap locals: java.lang.Class int
      StackMap stack:
            aload 5 /* targetClass */
            iconst_0
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 5 /* targetClass */
        13: .line 856
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            iload 3 /* arrayDepth */
            if_icmplt 12
        end local 6 // int i
        15: .line 863
            aload 5 /* targetClass */
            areturn
        end local 5 // java.lang.Class targetClass
        end local 4 // com.oracle.svm.core.annotate.TargetClass targetClassAnnotation
        end local 3 // int arrayDepth
        end local 2 // java.lang.Class annotatedBaseClass
        end local 1 // java.lang.Class annotatedClass
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   16     0                   this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   16     1         annotatedClass  Ljava/lang/Class<*>;
            1   16     2     annotatedBaseClass  Ljava/lang/Class<*>;
            2   16     3             arrayDepth  I
            7   16     4  targetClassAnnotation  Lcom/oracle/svm/core/annotate/TargetClass;
           10   16     5            targetClass  Ljava/lang/Class<*>;
           11   15     6                      i  I
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    MethodParameters:
                Name  Flags
      annotatedClass  

  java.lang.Class<?> findTargetClass(java.lang.Class<?>, com.oracle.svm.core.annotate.TargetClass);
    descriptor: (Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.Class annotatedBaseClass
        start local 2 // com.oracle.svm.core.annotate.TargetClass target
         0: .line 868
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.value:()Ljava/lang/Class;
            ldc Lcom/oracle/svm/core/annotate/TargetClass;
            if_acmpeq 7
         1: .line 869
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.className:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ldc "Both class and class name specified for substitution"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         2: .line 870
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.classNameProvider:()Ljava/lang/Class;
            ldc Lcom/oracle/svm/core/annotate/TargetClass$NoClassNameProvider;
            if_acmpne 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: ldc "Both class and classNameProvider specified for substitution"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
         5: .line 871
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.value:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 3 /* className */
        start local 3 // java.lang.String className
         6: .line 872
            goto 16
        end local 3 // java.lang.String className
      StackMap locals:
      StackMap stack:
         7: aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.classNameProvider:()Ljava/lang/Class;
            ldc Lcom/oracle/svm/core/annotate/TargetClass$NoClassNameProvider;
            if_acmpeq 12
         8: .line 874
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.classNameProvider:()Ljava/lang/Class;
            invokestatic com.oracle.svm.util.ReflectionUtil.newInstance:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.util.function.Function
            aload 2 /* target */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* className */
        start local 3 // java.lang.String className
         9: .line 875
            goto 16
        end local 3 // java.lang.String className
      StackMap locals:
      StackMap stack: com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
        10: astore 4 /* ex */
        start local 4 // com.oracle.svm.util.ReflectionUtil$ReflectionUtilError ex
        11: .line 876
            aload 4 /* ex */
            invokevirtual com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.getCause:()Ljava/lang/Throwable;
            ldc "Cannot instantiate classNameProvider: %s. The class must have a parameterless constructor."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.classNameProvider:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 4 // com.oracle.svm.util.ReflectionUtil$ReflectionUtilError ex
        12: .line 879
      StackMap locals:
      StackMap stack:
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.className:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 13
            iconst_0
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_1
      StackMap locals:
      StackMap stack: int
        14: ldc "Neither class, className, nor classNameProvider specified for substitution"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
        15: .line 880
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.className:()Ljava/lang/String;
            astore 3 /* className */
        start local 3 // java.lang.String className
        16: .line 883
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.onlyWith:()[Ljava/lang/Class;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 35
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String top int int java.lang.Class[]
      StackMap stack:
        17: aload 7
            iload 5
            aaload
            astore 4 /* onlyWithClass */
        start local 4 // java.lang.Class onlyWithClass
        18: .line 886
            aload 4 /* onlyWithClass */
            invokestatic com.oracle.svm.util.ReflectionUtil.newInstance:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 8 /* onlyWithProvider */
        start local 8 // java.lang.Object onlyWithProvider
        19: .line 887
            goto 22
        end local 8 // java.lang.Object onlyWithProvider
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String java.lang.Class int int java.lang.Class[]
      StackMap stack: com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
        20: astore 9 /* ex */
        start local 9 // com.oracle.svm.util.ReflectionUtil$ReflectionUtilError ex
        21: .line 888
            aload 9 /* ex */
            invokevirtual com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.getCause:()Ljava/lang/Throwable;
            ldc "Class specified as onlyWith for %s cannot be loaded or instantiated: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedBaseClass */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 4 /* onlyWithClass */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 9 // com.oracle.svm.util.ReflectionUtil$ReflectionUtilError ex
        start local 8 // java.lang.Object onlyWithProvider
        22: .line 892
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 8 /* onlyWithProvider */
            instanceof java.util.function.BooleanSupplier
            ifeq 25
        23: .line 893
            aload 8 /* onlyWithProvider */
            checkcast java.util.function.BooleanSupplier
            invokeinterface java.util.function.BooleanSupplier.getAsBoolean:()Z
            istore 9 /* onlyWithResult */
        start local 9 // boolean onlyWithResult
        24: .line 894
            goto 32
        end local 9 // boolean onlyWithResult
      StackMap locals:
      StackMap stack:
        25: aload 8 /* onlyWithProvider */
            instanceof java.util.function.Predicate
            ifeq 29
        26: .line 896
            aload 8 /* onlyWithProvider */
            checkcast java.util.function.Predicate
            astore 10 /* onlyWithPredicate */
        start local 10 // java.util.function.Predicate onlyWithPredicate
        27: .line 897
            aload 10 /* onlyWithPredicate */
            aload 3 /* className */
            invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
            istore 9 /* onlyWithResult */
        end local 10 // java.util.function.Predicate onlyWithPredicate
        start local 9 // boolean onlyWithResult
        28: .line 898
            goto 32
        end local 9 // boolean onlyWithResult
        29: .line 899
      StackMap locals:
      StackMap stack:
            ldc "Class specified as onlyWith for %s does not implement %s or %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* annotatedBaseClass */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        30: .line 900
            ldc Ljava/util/function/BooleanSupplier;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            ldc Ljava/util/function/Predicate;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
        31: .line 899
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        start local 9 // boolean onlyWithResult
        32: .line 903
      StackMap locals: int
      StackMap stack:
            iload 9 /* onlyWithResult */
            ifne 34
        33: .line 904
            aconst_null
            areturn
        end local 9 // boolean onlyWithResult
        end local 8 // java.lang.Object onlyWithProvider
        end local 4 // java.lang.Class onlyWithClass
        34: .line 883
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String top int int java.lang.Class[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        35: iload 5
            iload 6
            if_icmplt 17
        36: .line 908
            aload 0 /* this */
            getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
            aload 3 /* className */
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClass:(Ljava/lang/String;)Lcom/oracle/svm/core/TypeResult;
            invokevirtual com.oracle.svm.core.TypeResult.get:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 4 /* holder */
        start local 4 // java.lang.Class holder
        37: .line 909
            aload 4 /* holder */
            ifnonnull 41
        38: .line 910
            ldc "Substitution target for %s is not loaded. Use field `onlyWith` in the `TargetClass` annotation to make substitution only active when needed."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        39: .line 911
            aload 1 /* annotatedBaseClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        40: .line 910
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        41: .line 913
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String java.lang.Class
      StackMap stack:
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.innerClass:()[Ljava/lang/String;
            arraylength
            ifle 52
        42: .line 914
            aload 2 /* target */
            invokeinterface com.oracle.svm.core.annotate.TargetClass.innerClass:()[Ljava/lang/String;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 51
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String java.lang.Class top int int java.lang.String[]
      StackMap stack:
        43: aload 8
            iload 6
            aaload
            astore 5 /* innerClass */
        start local 5 // java.lang.String innerClass
        44: .line 915
            aload 4 /* holder */
            astore 9 /* prevHolder */
        start local 9 // java.lang.Class prevHolder
        45: .line 916
            aload 9 /* prevHolder */
            aload 5 /* innerClass */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findInnerClass:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* holder */
        46: .line 917
            aload 4 /* holder */
            ifnonnull 50
        47: .line 918
            ldc "Substitution target for %s is invalid as inner class %s in %s can not be found. Make sure that the inner class is present."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        48: .line 919
            aload 1 /* annotatedBaseClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 5 /* innerClass */
            aastore
            dup
            iconst_2
            aload 9 /* prevHolder */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
        49: .line 918
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 9 // java.lang.Class prevHolder
        end local 5 // java.lang.String innerClass
        50: .line 914
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        51: iload 6
            iload 7
            if_icmplt 43
        52: .line 924
      StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String java.lang.Class
      StackMap stack:
            aload 4 /* holder */
            areturn
        end local 4 // java.lang.Class holder
        end local 3 // java.lang.String className
        end local 2 // com.oracle.svm.core.annotate.TargetClass target
        end local 1 // java.lang.Class annotatedBaseClass
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   53     0                this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   53     1  annotatedBaseClass  Ljava/lang/Class<*>;
            0   53     2              target  Lcom/oracle/svm/core/annotate/TargetClass;
            6    7     3           className  Ljava/lang/String;
            9   10     3           className  Ljava/lang/String;
           16   53     3           className  Ljava/lang/String;
           11   12     4                  ex  Lcom/oracle/svm/util/ReflectionUtil$ReflectionUtilError;
           18   34     4       onlyWithClass  Ljava/lang/Class<*>;
           19   20     8    onlyWithProvider  Ljava/lang/Object;
           22   34     8    onlyWithProvider  Ljava/lang/Object;
           21   22     9                  ex  Lcom/oracle/svm/util/ReflectionUtil$ReflectionUtilError;
           24   25     9      onlyWithResult  Z
           28   29     9      onlyWithResult  Z
           32   34     9      onlyWithResult  Z
           27   28    10   onlyWithPredicate  Ljava/util/function/Predicate<Ljava/lang/String;>;
           37   53     4              holder  Ljava/lang/Class<*>;
           44   50     5          innerClass  Ljava/lang/String;
           45   50     9          prevHolder  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           8     9      10  Class com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
          18    19      20  Class com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
    Signature: (Ljava/lang/Class<*>;Lcom/oracle/svm/core/annotate/TargetClass;)Ljava/lang/Class<*>;
    MethodParameters:
                    Name  Flags
      annotatedBaseClass  
      target              

  private static java.lang.Class<?> findInnerClass(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.lang.Class outerClass
        start local 1 // java.lang.String innerClassSimpleName
         0: .line 928
            aload 0 /* outerClass */
            invokevirtual java.lang.Class.getDeclaredClasses:()[Ljava/lang/Class;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: java.lang.Class java.lang.String top int int java.lang.Class[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* innerClass */
        start local 2 // java.lang.Class innerClass
         2: .line 929
            aload 2 /* innerClass */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aload 1 /* innerClassSimpleName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 930
            aload 2 /* innerClass */
            areturn
        end local 2 // java.lang.Class innerClass
         4: .line 928
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 933
            aconst_null
            areturn
        end local 1 // java.lang.String innerClassSimpleName
        end local 0 // java.lang.Class outerClass
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    7     0            outerClass  Ljava/lang/Class<*>;
            0    7     1  innerClassSimpleName  Ljava/lang/String;
            2    4     2            innerClass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
                      Name  Flags
      outerClass            
      innerClassSimpleName  

  private java.lang.Class<?> interceptParameterType(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.Class type
         0: .line 937
            aload 0 /* this */
            aload 1 /* type */
            ldc Lcom/oracle/svm/core/annotate/TargetClass;
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.svm.core.annotate.TargetClass
            astore 2 /* targetClassAnnotation */
        start local 2 // com.oracle.svm.core.annotate.TargetClass targetClassAnnotation
         1: .line 938
            aload 2 /* targetClassAnnotation */
            ifnull 3
         2: .line 939
            aload 0 /* this */
            aload 1 /* type */
            aload 2 /* targetClassAnnotation */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findTargetClass:(Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)Ljava/lang/Class;
            areturn
         3: .line 942
      StackMap locals: com.oracle.svm.core.annotate.TargetClass
      StackMap stack:
            aload 1 /* type */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 9
         4: .line 943
            aload 1 /* type */
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 3 /* componentType */
        start local 3 // java.lang.Class componentType
         5: .line 944
            aload 0 /* this */
            aload 3 /* componentType */
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.interceptParameterType:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 4 /* componentRet */
        start local 4 // java.lang.Class componentRet
         6: .line 945
            aload 4 /* componentRet */
            aload 3 /* componentType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 9
         7: .line 946
            aload 4 /* componentRet */
            iconst_0
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            astore 5 /* tmp */
        start local 5 // java.lang.Object tmp
         8: .line 947
            aload 5 /* tmp */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            areturn
        end local 5 // java.lang.Object tmp
        end local 4 // java.lang.Class componentRet
        end local 3 // java.lang.Class componentType
         9: .line 951
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            areturn
        end local 2 // com.oracle.svm.core.annotate.TargetClass targetClassAnnotation
        end local 1 // java.lang.Class type
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0                   this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   10     1                   type  Ljava/lang/Class<*>;
            1   10     2  targetClassAnnotation  Lcom/oracle/svm/core/annotate/TargetClass;
            5    9     3          componentType  Ljava/lang/Class<*>;
            6    9     4           componentRet  Ljava/lang/Class<*>;
            8    9     5                    tmp  Ljava/lang/Object;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      type  

  private java.lang.Class<?>[] interceptParameterTypes(java.lang.Class<?>[]);
    descriptor: ([Ljava/lang/Class;)[Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.Class[] types
         0: .line 955
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 4
         2: .line 956
      StackMap locals: int
      StackMap stack:
            aload 1 /* types */
            iload 2 /* i */
            aload 0 /* this */
            aload 1 /* types */
            iload 2 /* i */
            aaload
            invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.interceptParameterType:(Ljava/lang/Class;)Ljava/lang/Class;
            aastore
         3: .line 955
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* i */
            aload 1 /* types */
            arraylength
            if_icmplt 2
        end local 2 // int i
         5: .line 958
            aload 1 /* types */
            areturn
        end local 1 // java.lang.Class[] types
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    6     1  types  [Ljava/lang/Class;
            1    5     2      i  I
    Signature: ([Ljava/lang/Class<*>;)[Ljava/lang/Class<*>;
    MethodParameters:
       Name  Flags
      types  

  protected <T extends java.lang.annotation.Annotation> T lookupAnnotation(java.lang.reflect.AnnotatedElement, java.lang.Class<T>);
    descriptor: (Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
        start local 1 // java.lang.reflect.AnnotatedElement element
        start local 2 // java.lang.Class annotationClass
         0: .line 962
            getstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$assertionsDisabled:Z
            ifne 1
            aload 1 /* element */
            instanceof java.lang.Class
            ifne 1
            aload 1 /* element */
            instanceof java.lang.reflect.Executable
            ifne 1
            aload 1 /* element */
            instanceof java.lang.reflect.Field
            ifne 1
            new java.lang.AssertionError
            dup
            aload 1 /* element */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 963
      StackMap locals:
      StackMap stack:
            aload 1 /* element */
            aload 2 /* annotationClass */
            invokeinterface java.lang.reflect.AnnotatedElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            areturn
        end local 2 // java.lang.Class annotationClass
        end local 1 // java.lang.reflect.AnnotatedElement element
        end local 0 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    2     1          element  Ljava/lang/reflect/AnnotatedElement;
            0    2     2  annotationClass  Ljava/lang/Class<TT;>;
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                 Name  Flags
      element          
      annotationClass  

  protected static java.lang.String deleteErrorMessage(java.lang.reflect.AnnotatedElement, com.oracle.svm.core.annotate.Delete, boolean);
    descriptor: (Ljava/lang/reflect/AnnotatedElement;Lcom/oracle/svm/core/annotate/Delete;Z)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.reflect.AnnotatedElement element
        start local 1 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        start local 2 // boolean hosted
         0: .line 967
            aload 0 /* element */
            aload 1 /* deleteAnnotation */
            invokeinterface com.oracle.svm.core.annotate.Delete.value:()Ljava/lang/String;
            iload 2 /* hosted */
            invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteErrorMessage:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/String;Z)Ljava/lang/String;
            areturn
        end local 2 // boolean hosted
        end local 1 // com.oracle.svm.core.annotate.Delete deleteAnnotation
        end local 0 // java.lang.reflect.AnnotatedElement element
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0           element  Ljava/lang/reflect/AnnotatedElement;
            0    1     1  deleteAnnotation  Lcom/oracle/svm/core/annotate/Delete;
            0    1     2            hosted  Z
    MethodParameters:
                  Name  Flags
      element           
      deleteAnnotation  
      hosted            

  public static java.lang.String deleteErrorMessage(java.lang.reflect.AnnotatedElement, java.lang.String, boolean);
    descriptor: (Ljava/lang/reflect/AnnotatedElement;Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.lang.reflect.AnnotatedElement element
        start local 1 // java.lang.String message
        start local 2 // boolean hosted
         0: .line 971
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* result */
        start local 3 // java.lang.StringBuilder result
         1: .line 972
            aload 3 /* result */
            ldc "Unsupported "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 973
            aload 0 /* element */
            instanceof jdk.vm.ci.meta.ResolvedJavaField
            ifeq 5
         3: .line 974
            aload 3 /* result */
            ldc "field "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* element */
            checkcast jdk.vm.ci.meta.ResolvedJavaField
            ldc "%H.%n"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 975
            goto 16
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
         5: aload 0 /* element */
            instanceof jdk.vm.ci.meta.ResolvedJavaMethod
            ifeq 12
         6: .line 976
            aload 0 /* element */
            checkcast jdk.vm.ci.meta.ResolvedJavaMethod
            astore 4 /* method */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod method
         7: .line 977
            aload 3 /* result */
            aload 4 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isConstructor:()Z
            ifeq 8
            ldc "constructor "
            goto 9
      StackMap locals: java.lang.reflect.AnnotatedElement java.lang.String int java.lang.StringBuilder jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack: java.lang.StringBuilder
         8: ldc "method "
      StackMap locals: java.lang.reflect.AnnotatedElement java.lang.String int java.lang.StringBuilder jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack: java.lang.StringBuilder java.lang.String
         9: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 978
            aload 3 /* result */
            aload 4 /* method */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod method
        11: .line 979
            goto 16
      StackMap locals:
      StackMap stack:
        12: aload 0 /* element */
            instanceof jdk.vm.ci.meta.ResolvedJavaType
            ifeq 15
        13: .line 980
            aload 3 /* result */
            ldc "type "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* element */
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            iconst_1
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 981
            goto 16
        15: .line 982
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Unknown @Delete annotated element "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* element */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        16: .line 984
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            ldc " is reachable"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 985
            aload 1 /* message */
            ifnull 19
            aload 1 /* message */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 19
        18: .line 986
            aload 3 /* result */
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* message */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 988
      StackMap locals:
      StackMap stack:
            iload 2 /* hosted */
            ifeq 25
        20: .line 989
            aload 3 /* result */
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "To diagnose the issue, you can add the option "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        21: .line 990
            getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
            ldc "+"
            invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;)Ljava/lang/String;
        22: .line 989
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        23: .line 991
            ldc ". The unsupported element is then reported at run time when it is accessed the first time."
        24: .line 990
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 993
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder result
        end local 2 // boolean hosted
        end local 1 // java.lang.String message
        end local 0 // java.lang.reflect.AnnotatedElement element
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0  element  Ljava/lang/reflect/AnnotatedElement;
            0   26     1  message  Ljava/lang/String;
            0   26     2   hosted  Z
            1   26     3   result  Ljava/lang/StringBuilder;
            7   11     4   method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    MethodParameters:
         Name  Flags
      element  
      message  
      hosted   

  static int[] $SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 84
            getstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.values:()[Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayBaseOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 6
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexScale:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 7
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexShift:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.AtomicFieldUpdaterOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 9
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Custom:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 12
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FromAlias:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iconst_4
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Manual:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 11
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.NewInstance:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iconst_3
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.None:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iconst_1
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Reset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            iconst_2
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.TranslateFieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
            invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
            bipush 10
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            dup
            putstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError

  private static jdk.vm.ci.meta.ResolvedJavaField lambda$1(jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=4
        start local 2 // jdk.vm.ci.meta.ResolvedJavaField key
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField value
         0: .line 468
            aload 3 /* value */
            aload 0
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 1
            aload 1
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 3 /* value */
      StackMap locals:
      StackMap stack: jdk.vm.ci.meta.ResolvedJavaField
         2: areturn
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField value
        end local 2 // jdk.vm.ci.meta.ResolvedJavaField key
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     2    key  Ljdk/vm/ci/meta/ResolvedJavaField;
            0    3     3  value  Ljdk/vm/ci/meta/ResolvedJavaField;
}
SourceFile: "AnnotationSubstitutionProcessor.java"
InnerClasses:
  public final Kind = com.oracle.svm.core.annotate.RecomputeFieldValue$Kind of com.oracle.svm.core.annotate.RecomputeFieldValue
  public abstract NoClassNameProvider = com.oracle.svm.core.annotate.TargetClass$NoClassNameProvider of com.oracle.svm.core.annotate.TargetClass
  public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
  public final ReflectionUtilError = com.oracle.svm.util.ReflectionUtil$ReflectionUtilError of com.oracle.svm.util.ReflectionUtil
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles