public abstract class com.oracle.graal.pointsto.ObjectScanner
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.graal.pointsto.ObjectScanner
  super_class: java.lang.Object
{
  protected final com.oracle.graal.pointsto.BigBang bb;
    descriptor: Lcom/oracle/graal/pointsto/BigBang;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final com.oracle.graal.pointsto.ObjectScanner$ReusableSet scannedObjects;
    descriptor: Lcom/oracle/graal/pointsto/ObjectScanner$ReusableSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final java.util.Deque<com.oracle.graal.pointsto.ObjectScanner$WorklistEntry> worklist;
    descriptor: Ljava/util/Deque;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/Deque<Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;>;

  private final java.util.concurrent.atomic.AtomicLong workInProgressCount;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 60
            ldc Lcom/oracle/graal/pointsto/ObjectScanner;
            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.graal.pointsto.ObjectScanner.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.oracle.graal.pointsto.BigBang, com.oracle.graal.pointsto.ObjectScanner$ReusableSet);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/ObjectScanner$ReusableSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // com.oracle.graal.pointsto.BigBang bigbang
        start local 2 // com.oracle.graal.pointsto.ObjectScanner$ReusableSet scannedObjects
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 68
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            lconst_0
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield com.oracle.graal.pointsto.ObjectScanner.workInProgressCount:Ljava/util/concurrent/atomic/AtomicLong;
         2: .line 71
            aload 0 /* this */
            aload 1 /* bigbang */
            putfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
         3: .line 72
            aload 0 /* this */
            new java.util.concurrent.ConcurrentLinkedDeque
            dup
            invokespecial java.util.concurrent.ConcurrentLinkedDeque.<init>:()V
            putfield com.oracle.graal.pointsto.ObjectScanner.worklist:Ljava/util/Deque;
         4: .line 73
            aload 0 /* this */
            aload 2 /* scannedObjects */
            putfield com.oracle.graal.pointsto.ObjectScanner.scannedObjects:Lcom/oracle/graal/pointsto/ObjectScanner$ReusableSet;
         5: .line 74
            return
        end local 2 // com.oracle.graal.pointsto.ObjectScanner$ReusableSet scannedObjects
        end local 1 // com.oracle.graal.pointsto.BigBang bigbang
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    6     1         bigbang  Lcom/oracle/graal/pointsto/BigBang;
            0    6     2  scannedObjects  Lcom/oracle/graal/pointsto/ObjectScanner$ReusableSet;
    MethodParameters:
                Name  Flags
      bigbang         
      scannedObjects  

  public void scanBootImageHeapRoots(com.oracle.graal.pointsto.util.CompletionExecutor);
    descriptor: (Lcom/oracle/graal/pointsto/util/CompletionExecutor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // com.oracle.graal.pointsto.util.CompletionExecutor executor
         0: .line 77
            aload 0 /* this */
            aload 1 /* executor */
            aconst_null
            aconst_null
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanBootImageHeapRoots:(Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljava/util/Comparator;Ljava/util/Comparator;)V
         1: .line 78
            return
        end local 1 // com.oracle.graal.pointsto.util.CompletionExecutor executor
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    2     1  executor  Lcom/oracle/graal/pointsto/util/CompletionExecutor;
    MethodParameters:
          Name  Flags
      executor  

  public void scanBootImageHeapRoots(java.util.Comparator<com.oracle.graal.pointsto.meta.AnalysisField>, java.util.Comparator<jdk.vm.ci.code.BytecodePosition>);
    descriptor: (Ljava/util/Comparator;Ljava/util/Comparator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // java.util.Comparator fieldComparator
        start local 2 // java.util.Comparator embeddedRootComparator
         0: .line 81
            aload 0 /* this */
            aconst_null
            aload 1 /* fieldComparator */
            aload 2 /* embeddedRootComparator */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanBootImageHeapRoots:(Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljava/util/Comparator;Ljava/util/Comparator;)V
         1: .line 82
            return
        end local 2 // java.util.Comparator embeddedRootComparator
        end local 1 // java.util.Comparator fieldComparator
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    2     0                    this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    2     1         fieldComparator  Ljava/util/Comparator<Lcom/oracle/graal/pointsto/meta/AnalysisField;>;
            0    2     2  embeddedRootComparator  Ljava/util/Comparator<Ljdk/vm/ci/code/BytecodePosition;>;
    Signature: (Ljava/util/Comparator<Lcom/oracle/graal/pointsto/meta/AnalysisField;>;Ljava/util/Comparator<Ljdk/vm/ci/code/BytecodePosition;>;)V
    MethodParameters:
                        Name  Flags
      fieldComparator         
      embeddedRootComparator  

  private void scanBootImageHeapRoots(com.oracle.graal.pointsto.util.CompletionExecutor, java.util.Comparator<com.oracle.graal.pointsto.meta.AnalysisField>, java.util.Comparator<jdk.vm.ci.code.BytecodePosition>);
    descriptor: (Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljava/util/Comparator;Ljava/util/Comparator;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // com.oracle.graal.pointsto.util.CompletionExecutor exec
        start local 2 // java.util.Comparator fieldComparator
        start local 3 // java.util.Comparator embeddedRootComparator
         0: .line 87
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.getFields:()Ljava/util/Collection;
            astore 4 /* fields */
        start local 4 // java.util.Collection fields
         1: .line 88
            aload 2 /* fieldComparator */
            ifnull 5
         2: .line 89
            new java.util.ArrayList
            dup
            aload 4 /* fields */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 5 /* fieldsList */
        start local 5 // java.util.ArrayList fieldsList
         3: .line 90
            aload 5 /* fieldsList */
            aload 2 /* fieldComparator */
            invokevirtual java.util.ArrayList.sort:(Ljava/util/Comparator;)V
         4: .line 91
            aload 5 /* fieldsList */
            astore 4 /* fields */
        end local 5 // java.util.ArrayList fieldsList
         5: .line 93
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 4 /* fields */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 9
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner com.oracle.graal.pointsto.util.CompletionExecutor java.util.Comparator java.util.Comparator java.util.Collection top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisField
            astore 5 /* field */
        start local 5 // com.oracle.graal.pointsto.meta.AnalysisField field
         7: .line 94
            aload 5 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 9
            aload 5 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 9
            aload 5 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.isInImageHeap:()Z
            ifeq 9
         8: .line 95
            aload 0 /* this */
            aload 1 /* exec */
            aload 0 /* this */
            aload 5 /* field */
            invokedynamic run(Lcom/oracle/graal/pointsto/ObjectScanner;Lcom/oracle/graal/pointsto/meta/AnalysisField;)Ljava/lang/Runnable;
              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:
                  ()V
                  com/oracle/graal/pointsto/ObjectScanner.lambda$0(Lcom/oracle/graal/pointsto/meta/AnalysisField;)V (7)
                  ()V
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.execute:(Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljava/lang/Runnable;)V
        end local 5 // com.oracle.graal.pointsto.meta.AnalysisField field
         9: .line 93
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        10: .line 100
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.getEmbeddedRoots:()Ljava/util/Map;
            astore 5 /* embeddedRoots */
        start local 5 // java.util.Map embeddedRoots
        11: .line 101
            aload 3 /* embeddedRootComparator */
            ifnull 15
        12: .line 102
            aload 5 /* embeddedRoots */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            aload 3 /* embeddedRootComparator */
            invokestatic java.util.Map$Entry.comparingByValue:(Ljava/util/Comparator;)Ljava/util/Comparator;
            invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
        13: .line 103
            aload 0 /* this */
            aload 1 /* exec */
            invokedynamic accept(Lcom/oracle/graal/pointsto/ObjectScanner;Lcom/oracle/graal/pointsto/util/CompletionExecutor;)Ljava/util/function/Consumer;
              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;)V
                  com/oracle/graal/pointsto/ObjectScanner.lambda$1(Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljava/util/Map$Entry;)V (7)
                  (Ljava/util/Map$Entry;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        14: .line 104
            goto 16
        15: .line 105
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner com.oracle.graal.pointsto.util.CompletionExecutor java.util.Comparator java.util.Comparator java.util.Collection java.util.Map
      StackMap stack:
            aload 5 /* embeddedRoots */
            aload 0 /* this */
            aload 1 /* exec */
            invokedynamic accept(Lcom/oracle/graal/pointsto/ObjectScanner;Lcom/oracle/graal/pointsto/util/CompletionExecutor;)Ljava/util/function/BiConsumer;
              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;)V
                  com/oracle/graal/pointsto/ObjectScanner.lambda$3(Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;)V (7)
                  (Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;)V
            invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
        16: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* exec */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.finish:(Lcom/oracle/graal/pointsto/util/CompletionExecutor;)V
        17: .line 109
            return
        end local 5 // java.util.Map embeddedRoots
        end local 4 // java.util.Collection fields
        end local 3 // java.util.Comparator embeddedRootComparator
        end local 2 // java.util.Comparator fieldComparator
        end local 1 // com.oracle.graal.pointsto.util.CompletionExecutor exec
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   18     0                    this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0   18     1                    exec  Lcom/oracle/graal/pointsto/util/CompletionExecutor;
            0   18     2         fieldComparator  Ljava/util/Comparator<Lcom/oracle/graal/pointsto/meta/AnalysisField;>;
            0   18     3  embeddedRootComparator  Ljava/util/Comparator<Ljdk/vm/ci/code/BytecodePosition;>;
            1   18     4                  fields  Ljava/util/Collection<Lcom/oracle/graal/pointsto/meta/AnalysisField;>;
            3    5     5              fieldsList  Ljava/util/ArrayList<Lcom/oracle/graal/pointsto/meta/AnalysisField;>;
            7    9     5                   field  Lcom/oracle/graal/pointsto/meta/AnalysisField;
           11   18     5           embeddedRoots  Ljava/util/Map<Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;>;
    Signature: (Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljava/util/Comparator<Lcom/oracle/graal/pointsto/meta/AnalysisField;>;Ljava/util/Comparator<Ljdk/vm/ci/code/BytecodePosition;>;)V
    MethodParameters:
                        Name  Flags
      exec                    
      fieldComparator         
      embeddedRootComparator  

  private void execute(com.oracle.graal.pointsto.util.CompletionExecutor, java.lang.Runnable);
    descriptor: (Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljava/lang/Runnable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // com.oracle.graal.pointsto.util.CompletionExecutor exec
        start local 2 // java.lang.Runnable runnable
         0: .line 112
            aload 1 /* exec */
            ifnull 4
         1: .line 113
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.workInProgressCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
         2: .line 114
            aload 1 /* exec */
            new com.oracle.graal.pointsto.ObjectScanner$1
            dup
            aload 0 /* this */
            aload 2 /* runnable */
            invokespecial com.oracle.graal.pointsto.ObjectScanner$1.<init>:(Lcom/oracle/graal/pointsto/ObjectScanner;Ljava/lang/Runnable;)V
            invokevirtual com.oracle.graal.pointsto.util.CompletionExecutor.execute:(Lcom/oracle/graal/pointsto/util/CompletionExecutor$DebugContextRunnable;)V
         3: .line 124
            goto 5
         4: .line 125
      StackMap locals:
      StackMap stack:
            aload 2 /* runnable */
            invokeinterface java.lang.Runnable.run:()V
         5: .line 127
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Runnable runnable
        end local 1 // com.oracle.graal.pointsto.util.CompletionExecutor exec
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    6     1      exec  Lcom/oracle/graal/pointsto/util/CompletionExecutor;
            0    6     2  runnable  Ljava/lang/Runnable;
    MethodParameters:
          Name  Flags
      exec      
      runnable  

  private void scanEmbeddedRoot(jdk.vm.ci.meta.JavaConstant, jdk.vm.ci.code.BytecodePosition);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // jdk.vm.ci.meta.JavaConstant root
        start local 2 // jdk.vm.ci.code.BytecodePosition position
         0: .line 130
            aload 2 /* position */
            invokevirtual jdk.vm.ci.code.BytecodePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 3 /* method */
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod method
         1: .line 132
            aload 0 /* this */
            aload 1 /* root */
            new com.oracle.graal.pointsto.ObjectScanner$MethodScan
            dup
            aload 3 /* method */
            aload 2 /* position */
            invokespecial com.oracle.graal.pointsto.ObjectScanner$MethodScan.<init>:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljdk/vm/ci/code/BytecodePosition;)V
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanConstant:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;)V
         2: .line 133
            goto 5
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner jdk.vm.ci.meta.JavaConstant jdk.vm.ci.code.BytecodePosition com.oracle.graal.pointsto.meta.AnalysisMethod
      StackMap stack: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
         3: astore 4 /* ex */
        start local 4 // com.oracle.graal.pointsto.constraints.UnsupportedFeatureException ex
         4: .line 134
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getUnsupportedFeatures:()Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatures;
            aload 3 /* method */
            ldc "%H.%n(%p)"
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* method */
            aload 4 /* ex */
            invokevirtual com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.getMessage:()Ljava/lang/String;
            aconst_null
            aload 4 /* ex */
            invokevirtual com.oracle.graal.pointsto.constraints.UnsupportedFeatures.addMessage:(Ljava/lang/String;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 4 // com.oracle.graal.pointsto.constraints.UnsupportedFeatureException ex
         5: .line 136
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        end local 2 // jdk.vm.ci.code.BytecodePosition position
        end local 1 // jdk.vm.ci.meta.JavaConstant root
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    6     1      root  Ljdk/vm/ci/meta/JavaConstant;
            0    6     2  position  Ljdk/vm/ci/code/BytecodePosition;
            1    6     3    method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            4    5     4        ex  Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatureException;
      Exception table:
        from    to  target  type
           1     2       3  Class com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
    MethodParameters:
          Name  Flags
      root      
      position  

  public abstract void forRelocatedPointerFieldValue(jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.meta.AnalysisField, jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisField;Ljdk/vm/ci/meta/JavaConstant;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      receiver    
      field       
      fieldValue  

  public abstract void forNullFieldValue(jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.meta.AnalysisField);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisField;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      receiver  
      field     

  public abstract void forNonNullFieldValue(jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.meta.AnalysisField, jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisField;Ljdk/vm/ci/meta/JavaConstant;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      receiver    
      field       
      fieldValue  

  protected final void scanRootField(com.oracle.graal.pointsto.meta.AnalysisField);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisField;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisField field
         0: .line 165
            aload 0 /* this */
            aload 1 /* field */
            aconst_null
            aconst_null
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanField:(Lcom/oracle/graal/pointsto/meta/AnalysisField;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
         1: .line 166
            return
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisField field
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    2     1  field  Lcom/oracle/graal/pointsto/meta/AnalysisField;
    MethodParameters:
       Name  Flags
      field  

  protected final void scanField(com.oracle.graal.pointsto.meta.AnalysisField, jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.ObjectScanner$WorklistEntry);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisField;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisField field
        start local 2 // jdk.vm.ci.meta.JavaConstant receiver
        start local 3 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry previous
         0: .line 176
            new com.oracle.graal.pointsto.ObjectScanner$FieldScan
            dup
            aload 1 /* field */
            invokespecial com.oracle.graal.pointsto.ObjectScanner$FieldScan.<init>:(Lcom/oracle/graal/pointsto/meta/AnalysisField;)V
            astore 4 /* reason */
        start local 4 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
         1: .line 178
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getConstantReflectionProvider:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            aload 1 /* field */
            aload 2 /* receiver */
            invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.readFieldValue:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
            astore 5 /* fieldValue */
        start local 5 // jdk.vm.ci.meta.JavaConstant fieldValue
         2: .line 180
            aload 5 /* fieldValue */
            ifnonnull 11
         3: .line 181
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* backtrace */
        start local 6 // java.lang.StringBuilder backtrace
         4: .line 182
            aload 0 /* this */
            aload 4 /* reason */
            aload 3 /* previous */
            aload 6 /* backtrace */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.buildObjectBacktrace:(Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;Ljava/lang/StringBuilder;)Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            pop
         5: .line 183
            new java.lang.StringBuilder
            dup
            ldc "Could not find field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* field */
            ldc "%H.%n"
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 184
            aload 2 /* receiver */
            ifnonnull 7
            ldc ""
            goto 8
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner com.oracle.graal.pointsto.meta.AnalysisField jdk.vm.ci.meta.JavaConstant com.oracle.graal.pointsto.ObjectScanner$WorklistEntry com.oracle.graal.pointsto.ObjectScanner$ScanReason jdk.vm.ci.meta.JavaConstant java.lang.StringBuilder
      StackMap stack: java.lang.StringBuilder
         7: new java.lang.StringBuilder
            dup
            ldc " on "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            aload 2 /* receiver */
            invokestatic com.oracle.graal.pointsto.ObjectScanner.constantType:(Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.toJavaName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner com.oracle.graal.pointsto.meta.AnalysisField jdk.vm.ci.meta.JavaConstant com.oracle.graal.pointsto.ObjectScanner$WorklistEntry com.oracle.graal.pointsto.ObjectScanner$ScanReason jdk.vm.ci.meta.JavaConstant java.lang.StringBuilder
      StackMap stack: java.lang.StringBuilder java.lang.String
         8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 185
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* backtrace */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        10: .line 183
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.graal.pointsto.util.AnalysisError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // java.lang.StringBuilder backtrace
        11: .line 188
      StackMap locals:
      StackMap stack:
            aload 5 /* fieldValue */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 14
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getHostVM:()Lcom/oracle/graal/pointsto/api/HostVM;
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            aload 5 /* fieldValue */
            invokestatic com.oracle.graal.pointsto.ObjectScanner.constantAsObject:(Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            invokeinterface com.oracle.graal.pointsto.api.HostVM.isRelocatedPointer:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 189
            aload 0 /* this */
            aload 2 /* receiver */
            aload 1 /* field */
            aload 5 /* fieldValue */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.forRelocatedPointerFieldValue:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisField;Ljdk/vm/ci/meta/JavaConstant;)V
        13: .line 190
            goto 23
      StackMap locals:
      StackMap stack:
        14: aload 5 /* fieldValue */
            invokeinterface jdk.vm.ci.meta.JavaConstant.isNull:()Z
            ifeq 17
        15: .line 191
            aload 0 /* this */
            aload 2 /* receiver */
            aload 1 /* field */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.forNullFieldValue:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisField;)V
        16: .line 192
            goto 23
      StackMap locals:
      StackMap stack:
        17: aload 5 /* fieldValue */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 23
        18: .line 194
            aload 0 /* this */
            aload 5 /* fieldValue */
            aload 4 /* reason */
            aload 3 /* previous */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanConstant:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
        19: .line 196
            aload 0 /* this */
            aload 2 /* receiver */
            aload 1 /* field */
            aload 5 /* fieldValue */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.forNonNullFieldValue:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisField;Ljdk/vm/ci/meta/JavaConstant;)V
        end local 5 // jdk.vm.ci.meta.JavaConstant fieldValue
        20: .line 199
            goto 23
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner com.oracle.graal.pointsto.meta.AnalysisField jdk.vm.ci.meta.JavaConstant com.oracle.graal.pointsto.ObjectScanner$WorklistEntry com.oracle.graal.pointsto.ObjectScanner$ScanReason
      StackMap stack: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
        21: astore 5 /* ex */
        start local 5 // com.oracle.graal.pointsto.constraints.UnsupportedFeatureException ex
        22: .line 200
            aload 0 /* this */
            aload 1 /* field */
            ldc "%H.%n"
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.format:(Ljava/lang/String;)Ljava/lang/String;
            aload 5 /* ex */
            invokevirtual com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.getMessage:()Ljava/lang/String;
            aload 4 /* reason */
            aload 3 /* previous */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.unsupportedFeature:(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
        end local 5 // com.oracle.graal.pointsto.constraints.UnsupportedFeatureException ex
        23: .line 202
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
        end local 3 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry previous
        end local 2 // jdk.vm.ci.meta.JavaConstant receiver
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisField field
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0   24     1       field  Lcom/oracle/graal/pointsto/meta/AnalysisField;
            0   24     2    receiver  Ljdk/vm/ci/meta/JavaConstant;
            0   24     3    previous  Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;
            1   24     4      reason  Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
            2   20     5  fieldValue  Ljdk/vm/ci/meta/JavaConstant;
            4   11     6   backtrace  Ljava/lang/StringBuilder;
           22   23     5          ex  Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatureException;
      Exception table:
        from    to  target  type
           1    20      21  Class com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
    MethodParameters:
          Name  Flags
      field     
      receiver  
      previous  

  public abstract void forNullArrayElement(jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.meta.AnalysisType, int);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisType;I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
              Name  Flags
      array         
      arrayType     
      elementIndex  

  public abstract void forNonNullArrayElement(jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.meta.AnalysisType, jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.meta.AnalysisType, int);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisType;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisType;I)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
                 Name  Flags
      array            
      arrayType        
      elementConstant  
      elementType      
      elementIndex     

  protected final void scanArray(jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.ObjectScanner$WorklistEntry);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // jdk.vm.ci.meta.JavaConstant array
        start local 2 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry previous
         0: .line 224
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            aload 1 /* array */
            invokestatic com.oracle.graal.pointsto.ObjectScanner.constantAsObject:(Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            astore 3 /* valueObj */
        start local 3 // java.lang.Object valueObj
         1: .line 225
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            aload 3 /* valueObj */
            invokestatic com.oracle.graal.pointsto.ObjectScanner.analysisType:(Lcom/oracle/graal/pointsto/BigBang;Ljava/lang/Object;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 4 /* arrayType */
        start local 4 // com.oracle.graal.pointsto.meta.AnalysisType arrayType
         2: .line 226
            getstatic com.oracle.graal.pointsto.ObjectScanner.$assertionsDisabled:Z
            ifne 3
            aload 3 /* valueObj */
            instanceof java.lang.Object[]
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 228
      StackMap locals: java.lang.Object com.oracle.graal.pointsto.meta.AnalysisType
      StackMap stack:
            new com.oracle.graal.pointsto.ObjectScanner$ArrayScan
            dup
            aload 4 /* arrayType */
            invokespecial com.oracle.graal.pointsto.ObjectScanner$ArrayScan.<init>:(Lcom/oracle/graal/pointsto/meta/AnalysisType;)V
            astore 5 /* reason */
        start local 5 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
         4: .line 229
            aload 3 /* valueObj */
            checkcast java.lang.Object[]
            astore 6 /* arrayObject */
        start local 6 // java.lang.Object[] arrayObject
         5: .line 230
            iconst_0
            istore 7 /* idx */
        start local 7 // int idx
         6: goto 20
         7: .line 231
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner$ScanReason java.lang.Object[] int
      StackMap stack:
            aload 6 /* arrayObject */
            iload 7 /* idx */
            aaload
            astore 8 /* e */
        start local 8 // java.lang.Object e
         8: .line 233
            aload 8 /* e */
            ifnonnull 11
         9: .line 234
            aload 0 /* this */
            aload 1 /* array */
            aload 4 /* arrayType */
            iload 7 /* idx */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.forNullArrayElement:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisType;I)V
        10: .line 235
            goto 19
        11: .line 236
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            aload 8 /* e */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.replaceObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 9 /* element */
        start local 9 // java.lang.Object element
        12: .line 237
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getSnippetReflectionProvider:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            aload 9 /* element */
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            astore 10 /* elementConstant */
        start local 10 // jdk.vm.ci.meta.JavaConstant elementConstant
        13: .line 238
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            aload 9 /* element */
            invokestatic com.oracle.graal.pointsto.ObjectScanner.analysisType:(Lcom/oracle/graal/pointsto/BigBang;Ljava/lang/Object;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 11 /* elementType */
        start local 11 // com.oracle.graal.pointsto.meta.AnalysisType elementType
        14: .line 241
            aload 0 /* this */
            aload 10 /* elementConstant */
            aload 5 /* reason */
            aload 2 /* previous */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanConstant:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
        15: .line 243
            aload 0 /* this */
            aload 1 /* array */
            aload 4 /* arrayType */
            aload 10 /* elementConstant */
            aload 11 /* elementType */
            iload 7 /* idx */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.forNonNullArrayElement:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisType;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/meta/AnalysisType;I)V
        end local 11 // com.oracle.graal.pointsto.meta.AnalysisType elementType
        end local 10 // jdk.vm.ci.meta.JavaConstant elementConstant
        end local 9 // java.lang.Object element
        16: .line 245
            goto 19
      StackMap locals:
      StackMap stack: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
        17: astore 9 /* ex */
        start local 9 // com.oracle.graal.pointsto.constraints.UnsupportedFeatureException ex
        18: .line 246
            aload 0 /* this */
            aload 4 /* arrayType */
            iconst_1
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.toJavaName:(Z)Ljava/lang/String;
            aload 9 /* ex */
            invokevirtual com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.getMessage:()Ljava/lang/String;
            aload 5 /* reason */
            aload 2 /* previous */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.unsupportedFeature:(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
        end local 9 // com.oracle.graal.pointsto.constraints.UnsupportedFeatureException ex
        end local 8 // java.lang.Object e
        19: .line 230
      StackMap locals:
      StackMap stack:
            iinc 7 /* idx */ 1
      StackMap locals:
      StackMap stack:
        20: iload 7 /* idx */
            aload 6 /* arrayObject */
            arraylength
            if_icmplt 7
        end local 7 // int idx
        21: .line 249
            return
        end local 6 // java.lang.Object[] arrayObject
        end local 5 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
        end local 4 // com.oracle.graal.pointsto.meta.AnalysisType arrayType
        end local 3 // java.lang.Object valueObj
        end local 2 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry previous
        end local 1 // jdk.vm.ci.meta.JavaConstant array
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0             this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0   22     1            array  Ljdk/vm/ci/meta/JavaConstant;
            0   22     2         previous  Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;
            1   22     3         valueObj  Ljava/lang/Object;
            2   22     4        arrayType  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            4   22     5           reason  Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
            5   22     6      arrayObject  [Ljava/lang/Object;
            6   21     7              idx  I
            8   19     8                e  Ljava/lang/Object;
           12   16     9          element  Ljava/lang/Object;
           13   16    10  elementConstant  Ljdk/vm/ci/meta/JavaConstant;
           14   16    11      elementType  Lcom/oracle/graal/pointsto/meta/AnalysisType;
           18   19     9               ex  Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatureException;
      Exception table:
        from    to  target  type
           8    16      17  Class com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
    MethodParameters:
          Name  Flags
      array     
      previous  

  protected abstract void forScannedConstant(jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.ObjectScanner$ScanReason);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
              Name  Flags
      scannedValue  
      reason        

  public final void scanConstant(jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.ObjectScanner$ScanReason);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // jdk.vm.ci.meta.JavaConstant value
        start local 2 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
         0: .line 258
            aload 0 /* this */
            aload 1 /* value */
            aload 2 /* reason */
            aconst_null
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanConstant:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
         1: .line 259
            return
        end local 2 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
        end local 1 // jdk.vm.ci.meta.JavaConstant value
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    2     1   value  Ljdk/vm/ci/meta/JavaConstant;
            0    2     2  reason  Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
    MethodParameters:
        Name  Flags
      value   
      reason  

  public final void scanConstant(jdk.vm.ci.meta.JavaConstant, com.oracle.graal.pointsto.ObjectScanner$ScanReason, com.oracle.graal.pointsto.ObjectScanner$WorklistEntry);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // jdk.vm.ci.meta.JavaConstant value
        start local 2 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
        start local 3 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry previous
         0: .line 262
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            aload 1 /* value */
            invokestatic com.oracle.graal.pointsto.ObjectScanner.constantAsObject:(Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            astore 4 /* valueObj */
        start local 4 // java.lang.Object valueObj
         1: .line 263
            aload 4 /* valueObj */
            ifnull 2
            aload 4 /* valueObj */
            instanceof org.graalvm.word.WordBase
            ifeq 3
         2: .line 264
      StackMap locals: java.lang.Object
      StackMap stack:
            return
         3: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.scanningPolicy:()Lcom/oracle/graal/pointsto/HeapScanningPolicy;
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            aload 1 /* value */
            invokevirtual com.oracle.graal.pointsto.HeapScanningPolicy.scanConstant:(Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Z
            ifne 5
         4: .line 267
            return
         5: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.scannedObjects:Lcom/oracle/graal/pointsto/ObjectScanner$ReusableSet;
            aload 4 /* valueObj */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner$ReusableSet.putAndAcquire:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 16
         6: .line 271
            aload 0 /* this */
            aload 1 /* value */
            aload 2 /* reason */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.forScannedConstant:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;)V
         7: .line 272
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: astore 5
         9: .line 273
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.scannedObjects:Lcom/oracle/graal/pointsto/ObjectScanner$ReusableSet;
            aload 4 /* valueObj */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner$ReusableSet.release:(Ljava/lang/Object;)V
        10: .line 274
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.workInProgressCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
        11: .line 275
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.worklist:Ljava/util/Deque;
            new com.oracle.graal.pointsto.ObjectScanner$WorklistEntry
            dup
            aload 3 /* previous */
            aload 1 /* value */
            aload 2 /* reason */
            invokespecial com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.<init>:(Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;)V
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        12: .line 276
            aload 5
            athrow
        13: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.scannedObjects:Lcom/oracle/graal/pointsto/ObjectScanner$ReusableSet;
            aload 4 /* valueObj */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner$ReusableSet.release:(Ljava/lang/Object;)V
        14: .line 274
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.workInProgressCount:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
        15: .line 275
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.worklist:Ljava/util/Deque;
            new com.oracle.graal.pointsto.ObjectScanner$WorklistEntry
            dup
            aload 3 /* previous */
            aload 1 /* value */
            aload 2 /* reason */
            invokespecial com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.<init>:(Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;)V
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
        16: .line 278
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Object valueObj
        end local 3 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry previous
        end local 2 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
        end local 1 // jdk.vm.ci.meta.JavaConstant value
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0   17     1     value  Ljdk/vm/ci/meta/JavaConstant;
            0   17     2    reason  Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
            0   17     3  previous  Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;
            1   17     4  valueObj  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           6     8       8  any
    MethodParameters:
          Name  Flags
      value     
      reason    
      previous  

  private void unsupportedFeature(java.lang.String, java.lang.String, com.oracle.graal.pointsto.ObjectScanner$ScanReason, com.oracle.graal.pointsto.ObjectScanner$WorklistEntry);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String message
        start local 3 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
        start local 4 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry entry
         0: .line 281
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* objectBacktrace */
        start local 5 // java.lang.StringBuilder objectBacktrace
         1: .line 282
            aload 0 /* this */
            aload 3 /* reason */
            aload 4 /* entry */
            aload 5 /* objectBacktrace */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.buildObjectBacktrace:(Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;Ljava/lang/StringBuilder;)Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            astore 6 /* method */
        start local 6 // com.oracle.graal.pointsto.meta.AnalysisMethod method
         2: .line 283
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getUnsupportedFeatures:()Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatures;
            aload 1 /* key */
            aload 6 /* method */
            aload 2 /* message */
            aload 5 /* objectBacktrace */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.graal.pointsto.constraints.UnsupportedFeatures.addMessage:(Ljava/lang/String;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/lang/String;Ljava/lang/String;)V
         3: .line 284
            return
        end local 6 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        end local 5 // java.lang.StringBuilder objectBacktrace
        end local 4 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry entry
        end local 3 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
        end local 2 // java.lang.String message
        end local 1 // java.lang.String key
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    4     1              key  Ljava/lang/String;
            0    4     2          message  Ljava/lang/String;
            0    4     3           reason  Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
            0    4     4            entry  Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;
            1    4     5  objectBacktrace  Ljava/lang/StringBuilder;
            2    4     6           method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    MethodParameters:
         Name  Flags
      key      
      message  
      reason   
      entry    

  private com.oracle.graal.pointsto.meta.AnalysisMethod buildObjectBacktrace(com.oracle.graal.pointsto.ObjectScanner$ScanReason, com.oracle.graal.pointsto.ObjectScanner$WorklistEntry, java.lang.StringBuilder);
    descriptor: (Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;Ljava/lang/StringBuilder;)Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
        start local 2 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry entry
        start local 3 // java.lang.StringBuilder objectBacktrace
         0: .line 287
            aload 2 /* entry */
            astore 4 /* cur */
        start local 4 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry cur
         1: .line 288
            aload 3 /* objectBacktrace */
            ldc "Object was reached by "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 289
            aload 3 /* objectBacktrace */
            bipush 9
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 1 /* reason */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.asString:(Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 290
            aconst_null
            astore 5 /* rootReason */
        start local 5 // com.oracle.graal.pointsto.ObjectScanner$ScanReason rootReason
         4: .line 291
            goto 10
         5: .line 292
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner$WorklistEntry com.oracle.graal.pointsto.ObjectScanner$ScanReason
      StackMap stack:
            aload 3 /* objectBacktrace */
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 293
            aload 3 /* objectBacktrace */
            ldc "\t\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "constant "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 4 /* cur */
            getfield com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.constant:Ljdk/vm/ci/meta/JavaConstant;
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.asString:(Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " reached by "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 294
            aload 3 /* objectBacktrace */
            bipush 9
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 4 /* cur */
            getfield com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.reason:Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.asString:(Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 295
            aload 4 /* cur */
            getfield com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.reason:Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
            astore 5 /* rootReason */
         9: .line 296
            aload 4 /* cur */
            getfield com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.previous:Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;
            astore 4 /* cur */
        10: .line 291
      StackMap locals:
      StackMap stack:
            aload 4 /* cur */
            ifnonnull 5
        11: .line 298
            aload 5 /* rootReason */
            instanceof com.oracle.graal.pointsto.ObjectScanner$MethodScan
            ifeq 13
        12: .line 300
            aload 5 /* rootReason */
            checkcast com.oracle.graal.pointsto.ObjectScanner$MethodScan
            getfield com.oracle.graal.pointsto.ObjectScanner$MethodScan.method:Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            areturn
        13: .line 303
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 5 // com.oracle.graal.pointsto.ObjectScanner$ScanReason rootReason
        end local 4 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry cur
        end local 3 // java.lang.StringBuilder objectBacktrace
        end local 2 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry entry
        end local 1 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0   14     1           reason  Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
            0   14     2            entry  Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;
            0   14     3  objectBacktrace  Ljava/lang/StringBuilder;
            1   14     4              cur  Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;
            4   14     5       rootReason  Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
    MethodParameters:
                 Name  Flags
      reason           
      entry            
      objectBacktrace  

  java.lang.String asString(com.oracle.graal.pointsto.ObjectScanner$ScanReason);
    descriptor: (Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
         0: .line 307
            aload 1 /* reason */
            instanceof com.oracle.graal.pointsto.ObjectScanner$FieldScan
            ifeq 5
         1: .line 308
            aload 1 /* reason */
            checkcast com.oracle.graal.pointsto.ObjectScanner$FieldScan
            astore 2 /* fieldScan */
        start local 2 // com.oracle.graal.pointsto.ObjectScanner$FieldScan fieldScan
         2: .line 309
            aload 2 /* fieldScan */
            getfield com.oracle.graal.pointsto.ObjectScanner$FieldScan.field:Lcom/oracle/graal/pointsto/meta/AnalysisField;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.isStatic:()Z
            ifeq 4
         3: .line 310
            new java.lang.StringBuilder
            dup
            ldc "reading field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* reason */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         4: .line 313
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner$FieldScan
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "reading field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* reason */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " of"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // com.oracle.graal.pointsto.ObjectScanner$FieldScan fieldScan
         5: .line 315
      StackMap locals:
      StackMap stack:
            aload 1 /* reason */
            instanceof com.oracle.graal.pointsto.ObjectScanner$MethodScan
            ifeq 7
         6: .line 316
            new java.lang.StringBuilder
            dup
            ldc "scanning method "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* reason */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         7: .line 317
      StackMap locals:
      StackMap stack:
            aload 1 /* reason */
            instanceof com.oracle.graal.pointsto.ObjectScanner$ArrayScan
            ifeq 9
         8: .line 318
            ldc "indexing into array"
            areturn
         9: .line 320
      StackMap locals:
      StackMap stack:
            aload 1 /* reason */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 1 // com.oracle.graal.pointsto.ObjectScanner$ScanReason reason
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0   10     1     reason  Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
            2    5     2  fieldScan  Lcom/oracle/graal/pointsto/ObjectScanner$FieldScan;
    MethodParameters:
        Name  Flags
      reason  

  private java.lang.String asString(jdk.vm.ci.meta.JavaConstant);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // jdk.vm.ci.meta.JavaConstant constant
         0: .line 325
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            aload 1 /* constant */
            invokestatic com.oracle.graal.pointsto.ObjectScanner.constantAsObject:(Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            astore 2 /* obj */
        start local 2 // java.lang.Object obj
         1: .line 326
            new java.lang.StringBuilder
            dup
            aload 2 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 64
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* obj */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.toHexString:(I)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 2 // java.lang.Object obj
        end local 1 // jdk.vm.ci.meta.JavaConstant constant
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    2     1  constant  Ljdk/vm/ci/meta/JavaConstant;
            1    2     2       obj  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      constant  

  private void doScan(com.oracle.graal.pointsto.ObjectScanner$WorklistEntry);
    descriptor: (Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry entry
         0: .line 335
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            aload 1 /* entry */
            getfield com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.constant:Ljdk/vm/ci/meta/JavaConstant;
            invokestatic com.oracle.graal.pointsto.ObjectScanner.constantAsObject:(Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            astore 2 /* valueObj */
        start local 2 // java.lang.Object valueObj
         1: .line 338
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            aload 2 /* valueObj */
            invokestatic com.oracle.graal.pointsto.ObjectScanner.analysisType:(Lcom/oracle/graal/pointsto/BigBang;Ljava/lang/Object;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 3 /* type */
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisType type
         2: .line 339
            aload 3 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable:()V
         3: .line 341
            aload 3 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isInstanceClass:()Z
            ifeq 12
         4: .line 343
            aload 3 /* type */
            iconst_1
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getInstanceFields:(Z)[Lcom/oracle/graal/pointsto/meta/AnalysisField;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 10
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner com.oracle.graal.pointsto.ObjectScanner$WorklistEntry java.lang.Object com.oracle.graal.pointsto.meta.AnalysisType top int int com.oracle.graal.pointsto.meta.AnalysisField[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* field */
        start local 4 // com.oracle.graal.pointsto.meta.AnalysisField field
         6: .line 344
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 9
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.isInImageHeap:()Z
            ifeq 9
         7: .line 345
            getstatic com.oracle.graal.pointsto.ObjectScanner.$assertionsDisabled:Z
            ifne 8
            aload 4 /* field */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 346
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner com.oracle.graal.pointsto.ObjectScanner$WorklistEntry java.lang.Object com.oracle.graal.pointsto.meta.AnalysisType com.oracle.graal.pointsto.meta.AnalysisField int int com.oracle.graal.pointsto.meta.AnalysisField[]
      StackMap stack:
            aload 0 /* this */
            aload 4 /* field */
            aload 1 /* entry */
            getfield com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.constant:Ljdk/vm/ci/meta/JavaConstant;
            aload 1 /* entry */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanField:(Lcom/oracle/graal/pointsto/meta/AnalysisField;Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
        end local 4 // com.oracle.graal.pointsto.meta.AnalysisField field
         9: .line 343
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner com.oracle.graal.pointsto.ObjectScanner$WorklistEntry java.lang.Object com.oracle.graal.pointsto.meta.AnalysisType top int int com.oracle.graal.pointsto.meta.AnalysisField[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        10: iload 5
            iload 6
            if_icmplt 5
        11: .line 349
            goto 17
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner com.oracle.graal.pointsto.ObjectScanner$WorklistEntry java.lang.Object com.oracle.graal.pointsto.meta.AnalysisType
      StackMap stack:
        12: aload 3 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isArray:()Z
            ifeq 17
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.bb:Lcom/oracle/graal/pointsto/BigBang;
            invokevirtual com.oracle.graal.pointsto.BigBang.getProviders:()Lcom/oracle/graal/pointsto/meta/HostedProviders;
            invokevirtual com.oracle.graal.pointsto.meta.HostedProviders.getWordTypes:()Lorg/graalvm/compiler/word/WordTypes;
            aload 3 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getComponentType:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual org.graalvm.compiler.word.WordTypes.asKind:(Ljdk/vm/ci/meta/JavaType;)Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 17
        13: .line 351
            aload 0 /* this */
            aload 1 /* entry */
            getfield com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.constant:Ljdk/vm/ci/meta/JavaConstant;
            aload 1 /* entry */
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanArray:(Ljdk/vm/ci/meta/JavaConstant;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisType type
        14: .line 353
            goto 17
      StackMap locals: com.oracle.graal.pointsto.ObjectScanner com.oracle.graal.pointsto.ObjectScanner$WorklistEntry java.lang.Object
      StackMap stack: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
        15: astore 3 /* ex */
        start local 3 // com.oracle.graal.pointsto.constraints.UnsupportedFeatureException ex
        16: .line 354
            aload 0 /* this */
            ldc ""
            aload 3 /* ex */
            invokevirtual com.oracle.graal.pointsto.constraints.UnsupportedFeatureException.getMessage:()Ljava/lang/String;
            aload 1 /* entry */
            getfield com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.reason:Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;
            aload 1 /* entry */
            getfield com.oracle.graal.pointsto.ObjectScanner$WorklistEntry.previous:Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.unsupportedFeature:(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/graal/pointsto/ObjectScanner$ScanReason;Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
        end local 3 // com.oracle.graal.pointsto.constraints.UnsupportedFeatureException ex
        17: .line 356
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object valueObj
        end local 1 // com.oracle.graal.pointsto.ObjectScanner$WorklistEntry entry
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0   18     1     entry  Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;
            1   18     2  valueObj  Ljava/lang/Object;
            2   14     3      type  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            6    9     4     field  Lcom/oracle/graal/pointsto/meta/AnalysisField;
           16   17     3        ex  Lcom/oracle/graal/pointsto/constraints/UnsupportedFeatureException;
      Exception table:
        from    to  target  type
           1    14      15  Class com.oracle.graal.pointsto.constraints.UnsupportedFeatureException
    MethodParameters:
       Name  Flags
      entry  

  protected void finish(com.oracle.graal.pointsto.util.CompletionExecutor);
    descriptor: (Lcom/oracle/graal/pointsto/util/CompletionExecutor;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 1 // com.oracle.graal.pointsto.util.CompletionExecutor exec
         0: .line 366
            aload 1 /* exec */
            ifnull 9
         1: .line 369
            aload 1 /* exec */
            new com.oracle.graal.pointsto.ObjectScanner$2
            dup
            aload 0 /* this */
            aload 1 /* exec */
            invokespecial com.oracle.graal.pointsto.ObjectScanner$2.<init>:(Lcom/oracle/graal/pointsto/ObjectScanner;Lcom/oracle/graal/pointsto/util/CompletionExecutor;)V
            invokevirtual com.oracle.graal.pointsto.util.CompletionExecutor.execute:(Lcom/oracle/graal/pointsto/util/CompletionExecutor$DebugContextRunnable;)V
         2: .line 407
            goto 10
         3: .line 409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.worklist:Ljava/util/Deque;
            invokeinterface java.util.Deque.size:()I
            istore 2 /* size */
        start local 2 // int size
         4: .line 410
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 411
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.worklist:Ljava/util/Deque;
            invokeinterface java.util.Deque.remove:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.ObjectScanner$WorklistEntry
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.doScan:(Lcom/oracle/graal/pointsto/ObjectScanner$WorklistEntry;)V
         7: .line 410
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* size */
            if_icmplt 6
        end local 3 // int i
        end local 2 // int size
         9: .line 408
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.graal.pointsto.ObjectScanner.worklist:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 3
        10: .line 415
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.graal.pointsto.util.CompletionExecutor exec
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0   11     1  exec  Lcom/oracle/graal/pointsto/util/CompletionExecutor;
            4    9     2  size  I
            5    9     3     i  I
    MethodParameters:
      Name  Flags
      exec  

  protected static com.oracle.graal.pointsto.meta.AnalysisType analysisType(com.oracle.graal.pointsto.BigBang, java.lang.Object);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Ljava/lang/Object;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.graal.pointsto.BigBang bb
        start local 1 // java.lang.Object constant
         0: .line 418
            aload 0 /* bb */
            invokevirtual com.oracle.graal.pointsto.BigBang.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            aload 1 /* constant */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            areturn
        end local 1 // java.lang.Object constant
        end local 0 // com.oracle.graal.pointsto.BigBang bb
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0        bb  Lcom/oracle/graal/pointsto/BigBang;
            0    1     1  constant  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      bb        
      constant  

  protected static com.oracle.graal.pointsto.meta.AnalysisType constantType(com.oracle.graal.pointsto.BigBang, jdk.vm.ci.meta.JavaConstant);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.graal.pointsto.BigBang bb
        start local 1 // jdk.vm.ci.meta.JavaConstant constant
         0: .line 422
            aload 0 /* bb */
            invokevirtual com.oracle.graal.pointsto.BigBang.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
            aload 0 /* bb */
            aload 1 /* constant */
            invokestatic com.oracle.graal.pointsto.ObjectScanner.constantAsObject:(Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            areturn
        end local 1 // jdk.vm.ci.meta.JavaConstant constant
        end local 0 // com.oracle.graal.pointsto.BigBang bb
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0        bb  Lcom/oracle/graal/pointsto/BigBang;
            0    1     1  constant  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
          Name  Flags
      bb        
      constant  

  protected static java.lang.Object constantAsObject(com.oracle.graal.pointsto.BigBang, jdk.vm.ci.meta.JavaConstant);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.graal.pointsto.BigBang bb
        start local 1 // jdk.vm.ci.meta.JavaConstant constant
         0: .line 426
            aload 0 /* bb */
            invokevirtual com.oracle.graal.pointsto.BigBang.getSnippetReflectionProvider:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            ldc Ljava/lang/Object;
            aload 1 /* constant */
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            areturn
        end local 1 // jdk.vm.ci.meta.JavaConstant constant
        end local 0 // com.oracle.graal.pointsto.BigBang bb
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0        bb  Lcom/oracle/graal/pointsto/BigBang;
            0    1     1  constant  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
          Name  Flags
      bb        
      constant  

  private void lambda$0(com.oracle.graal.pointsto.meta.AnalysisField);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisField;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
         0: .line 95
            aload 0 /* this */
            aload 1
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanRootField:(Lcom/oracle/graal/pointsto/meta/AnalysisField;)V
            return
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/pointsto/ObjectScanner;

  private void lambda$1(com.oracle.graal.pointsto.util.CompletionExecutor, java.util.Map$Entry);
    descriptor: (Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljava/util/Map$Entry;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 2 // java.util.Map$Entry entry
         0: .line 103
            aload 0 /* this */
            aload 1
            aload 0 /* this */
            aload 2 /* entry */
            invokedynamic run(Lcom/oracle/graal/pointsto/ObjectScanner;Ljava/util/Map$Entry;)Ljava/lang/Runnable;
              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:
                  ()V
                  com/oracle/graal/pointsto/ObjectScanner.lambda$2(Ljava/util/Map$Entry;)V (7)
                  ()V
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.execute:(Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljava/lang/Runnable;)V
            return
        end local 2 // java.util.Map$Entry entry
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    1     2  entry  Ljava/util/Map$Entry<Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;>;

  private void lambda$3(com.oracle.graal.pointsto.util.CompletionExecutor, jdk.vm.ci.meta.JavaConstant, jdk.vm.ci.code.BytecodePosition);
    descriptor: (Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
        start local 2 // jdk.vm.ci.meta.JavaConstant key
        start local 3 // jdk.vm.ci.code.BytecodePosition value
         0: .line 105
            aload 0 /* this */
            aload 1
            aload 0 /* this */
            aload 2 /* key */
            aload 3 /* value */
            invokedynamic run(Lcom/oracle/graal/pointsto/ObjectScanner;Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;)Ljava/lang/Runnable;
              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:
                  ()V
                  com/oracle/graal/pointsto/ObjectScanner.lambda$4(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;)V (7)
                  ()V
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.execute:(Lcom/oracle/graal/pointsto/util/CompletionExecutor;Ljava/lang/Runnable;)V
            return
        end local 3 // jdk.vm.ci.code.BytecodePosition value
        end local 2 // jdk.vm.ci.meta.JavaConstant key
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/graal/pointsto/ObjectScanner;
            0    1     2    key  Ljdk/vm/ci/meta/JavaConstant;
            0    1     3  value  Ljdk/vm/ci/code/BytecodePosition;

  private void lambda$2(java.util.Map$Entry);
    descriptor: (Ljava/util/Map$Entry;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
         0: .line 103
            aload 0 /* this */
            aload 1
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.JavaConstant
            aload 1
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast jdk.vm.ci.code.BytecodePosition
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanEmbeddedRoot:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;)V
            return
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/pointsto/ObjectScanner;

  private void lambda$4(jdk.vm.ci.meta.JavaConstant, jdk.vm.ci.code.BytecodePosition);
    descriptor: (Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.ObjectScanner this
         0: .line 105
            aload 0 /* this */
            aload 1
            aload 2
            invokevirtual com.oracle.graal.pointsto.ObjectScanner.scanEmbeddedRoot:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/code/BytecodePosition;)V
            return
        end local 0 // com.oracle.graal.pointsto.ObjectScanner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/graal/pointsto/ObjectScanner;
}
SourceFile: "ObjectScanner.java"
NestMembers:
  com.oracle.graal.pointsto.ObjectScanner$1  com.oracle.graal.pointsto.ObjectScanner$2  com.oracle.graal.pointsto.ObjectScanner$2$1  com.oracle.graal.pointsto.ObjectScanner$ArrayScan  com.oracle.graal.pointsto.ObjectScanner$FieldScan  com.oracle.graal.pointsto.ObjectScanner$MethodScan  com.oracle.graal.pointsto.ObjectScanner$OtherReason  com.oracle.graal.pointsto.ObjectScanner$ReusableSet  com.oracle.graal.pointsto.ObjectScanner$ScanReason  com.oracle.graal.pointsto.ObjectScanner$WorklistEntry
InnerClasses:
  com.oracle.graal.pointsto.ObjectScanner$1
  com.oracle.graal.pointsto.ObjectScanner$2
  ArrayScan = com.oracle.graal.pointsto.ObjectScanner$ArrayScan of com.oracle.graal.pointsto.ObjectScanner
  protected FieldScan = com.oracle.graal.pointsto.ObjectScanner$FieldScan of com.oracle.graal.pointsto.ObjectScanner
  protected MethodScan = com.oracle.graal.pointsto.ObjectScanner$MethodScan of com.oracle.graal.pointsto.ObjectScanner
  OtherReason = com.oracle.graal.pointsto.ObjectScanner$OtherReason of com.oracle.graal.pointsto.ObjectScanner
  public final ReusableSet = com.oracle.graal.pointsto.ObjectScanner$ReusableSet of com.oracle.graal.pointsto.ObjectScanner
  public abstract ScanReason = com.oracle.graal.pointsto.ObjectScanner$ScanReason of com.oracle.graal.pointsto.ObjectScanner
  WorklistEntry = com.oracle.graal.pointsto.ObjectScanner$WorklistEntry of com.oracle.graal.pointsto.ObjectScanner
  public abstract DebugContextRunnable = com.oracle.graal.pointsto.util.CompletionExecutor$DebugContextRunnable of com.oracle.graal.pointsto.util.CompletionExecutor
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map