class com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor
  super_class: java.lang.Object
{
  private final com.oracle.svm.hosted.meta.HostedUniverse universe;
    descriptor: Lcom/oracle/svm/hosted/meta/HostedUniverse;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl restrictHeapAccessCallees;
    descriptor: Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl;
    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 123
            ldc Lcom/oracle/svm/hosted/code/RestrictHeapAccessAnnotationChecker;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.svm.hosted.meta.HostedUniverse);
    descriptor: (Lcom/oracle/svm/hosted/meta/HostedUniverse;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor this
        start local 1 // com.oracle.svm.hosted.meta.HostedUniverse universe
         0: .line 128
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 129
            aload 0 /* this */
            aload 1 /* universe */
            putfield com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.universe:Lcom/oracle/svm/hosted/meta/HostedUniverse;
         2: .line 130
            aload 0 /* this */
            ldc Lcom/oracle/svm/core/heap/RestrictHeapAccessCallees;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl
            putfield com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.restrictHeapAccessCallees:Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl;
         3: .line 131
            return
        end local 1 // com.oracle.svm.hosted.meta.HostedUniverse universe
        end local 0 // com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/svm/hosted/code/RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor;
            0    4     1  universe  Lcom/oracle/svm/hosted/meta/HostedUniverse;
    MethodParameters:
          Name  Flags
      universe  

  public void visitMethod(org.graalvm.compiler.debug.DebugContext, com.oracle.svm.hosted.meta.HostedMethod);
    descriptor: (Lorg/graalvm/compiler/debug/DebugContext;Lcom/oracle/svm/hosted/meta/HostedMethod;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor this
        start local 1 // org.graalvm.compiler.debug.DebugContext debug
        start local 2 // com.oracle.svm.hosted.meta.HostedMethod method
         0: .line 136
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.restrictHeapAccessCallees:Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl;
            aload 2 /* method */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl.getRestrictionInfo:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;
            astore 3 /* info */
        start local 3 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo info
         1: .line 137
            aload 3 /* info */
            ifnull 2
            aload 3 /* info */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getAccess:()Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;
            getstatic com.oracle.svm.core.annotate.RestrictHeapAccess$Access.UNRESTRICTED:Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;
            if_acmpne 3
         2: .line 138
      StackMap locals: com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo
      StackMap stack:
            return
         3: .line 141
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            getfield com.oracle.svm.hosted.meta.HostedMethod.compilationInfo:Lcom/oracle/svm/hosted/code/CompilationInfo;
            invokevirtual com.oracle.svm.hosted.code.CompilationInfo.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         4: .line 142
            aload 4 /* graph */
            aload 3 /* info */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getAccess:()Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;
            invokestatic com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker.checkViolatingNode:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;)Lorg/graalvm/compiler/graph/Node;
            ifnull 16
         5: .line 143
            aconst_null
            astore 5
            aconst_null
            astore 6
         6: aload 1 /* debug */
            ldc "RestrictHeapAccessAnnotationChecker"
            aload 4 /* graph */
            aload 2 /* method */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 7 /* s */
        start local 7 // org.graalvm.compiler.debug.DebugContext$Scope s
         7: .line 144
            aload 0 /* this */
            aload 2 /* method */
            invokevirtual com.oracle.svm.hosted.meta.HostedMethod.getWrapped:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.restrictHeapAccessCallees:Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl;
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl.getCallerMap:()Ljava/util/Map;
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.postRestrictHeapAccessWarning:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Map;)V
         8: .line 145
            aload 7 /* s */
            ifnull 16
            aload 7 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 16
      StackMap locals: com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor org.graalvm.compiler.debug.DebugContext com.oracle.svm.hosted.meta.HostedMethod com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo org.graalvm.compiler.nodes.StructuredGraph java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack: java.lang.Throwable
         9: astore 5
            aload 7 /* s */
            ifnull 10
            aload 7 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 7 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        10: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: astore 6
            aload 5
            ifnonnull 12
            aload 6
            astore 5
            goto 13
      StackMap locals:
      StackMap stack:
        12: aload 5
            aload 6
            if_acmpeq 13
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        13: aload 5
            athrow
      StackMap locals: com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor org.graalvm.compiler.debug.DebugContext com.oracle.svm.hosted.meta.HostedMethod com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo org.graalvm.compiler.nodes.StructuredGraph
      StackMap stack: java.lang.Throwable
        14: astore 5 /* t */
        start local 5 // java.lang.Throwable t
        15: .line 146
            aload 1 /* debug */
            aload 5 /* t */
            invokevirtual org.graalvm.compiler.debug.DebugContext.handle:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.Throwable t
        16: .line 149
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
        end local 3 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo info
        end local 2 // com.oracle.svm.hosted.meta.HostedMethod method
        end local 1 // org.graalvm.compiler.debug.DebugContext debug
        end local 0 // com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lcom/oracle/svm/hosted/code/RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor;
            0   17     1   debug  Lorg/graalvm/compiler/debug/DebugContext;
            0   17     2  method  Lcom/oracle/svm/hosted/meta/HostedMethod;
            1   17     3    info  Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;
            4   17     4   graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            7   10     7       s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           15   16     5       t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           7     8       9  any
           6    11      11  any
           5    14      14  Class java.lang.Throwable
    MethodParameters:
        Name  Flags
      debug   
      method  

  private void postRestrictHeapAccessWarning(com.oracle.graal.pointsto.meta.AnalysisMethod, java.util.Map<com.oracle.graal.pointsto.meta.AnalysisMethod, com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo>);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Map;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=3
        start local 0 // com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod violatingCallee
        start local 2 // java.util.Map callerMap
         0: .line 152
            getstatic com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$Options.PrintRestrictHeapAccessWarnings:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 44
         1: .line 153
            aload 2 /* callerMap */
            aload 1 /* violatingCallee */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getAccess:()Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;
            astore 3 /* violatedAccess */
        start local 3 // com.oracle.svm.core.annotate.RestrictHeapAccess$Access violatedAccess
         2: .line 154
            ldc "@RestrictHeapAccess warning: "
            astore 4 /* message */
        start local 4 // java.lang.String message
         3: .line 157
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 5 /* callChain */
        start local 5 // java.util.Deque callChain
         4: .line 158
            aload 1 /* violatingCallee */
            astore 6 /* current */
        start local 6 // com.oracle.graal.pointsto.meta.AnalysisMethod current
         5: .line 159
            goto 9
         6: .line 160
      StackMap locals: com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Map com.oracle.svm.core.annotate.RestrictHeapAccess$Access java.lang.String java.util.Deque com.oracle.graal.pointsto.meta.AnalysisMethod
      StackMap stack:
            aload 2 /* callerMap */
            aload 6 /* current */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo
            astore 7 /* info */
        start local 7 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo info
         7: .line 161
            aload 5 /* callChain */
            aload 7 /* info */
            invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
         8: .line 162
            aload 7 /* info */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getCaller:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            astore 6 /* current */
        end local 7 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo info
         9: .line 159
      StackMap locals:
      StackMap stack:
            aload 6 /* current */
            ifnonnull 6
        10: .line 165
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            astore 7 /* allocationList */
        start local 7 // java.util.Deque allocationList
        11: .line 166
            aload 5 /* callChain */
            invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
            astore 9
            goto 16
      StackMap locals: com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Map com.oracle.svm.core.annotate.RestrictHeapAccess$Access java.lang.String java.util.Deque com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Deque top java.util.Iterator
      StackMap stack:
        12: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo
            astore 8 /* element */
        start local 8 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo element
        13: .line 167
            aload 7 /* allocationList */
            aload 8 /* element */
            invokeinterface java.util.Deque.addLast:(Ljava/lang/Object;)V
        14: .line 168
            aload 0 /* this */
            aload 8 /* element */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            aload 8 /* element */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getAccess:()Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.checkHostedViolatingNode:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;)Lorg/graalvm/compiler/graph/Node;
            ifnull 16
        15: .line 169
            goto 17
        end local 8 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo element
        16: .line 166
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        17: .line 172
      StackMap locals: com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Map com.oracle.svm.core.annotate.RestrictHeapAccess$Access java.lang.String java.util.Deque com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Deque
      StackMap stack:
            getstatic com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.$assertionsDisabled:Z
            ifne 18
            aload 7 /* allocationList */
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 173
      StackMap locals:
      StackMap stack:
            aload 7 /* allocationList */
            invokeinterface java.util.Deque.size:()I
            iconst_1
            if_icmpne 25
        19: .line 174
            aload 0 /* this */
            aload 1 /* violatingCallee */
            aload 3 /* violatedAccess */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.getViolatingStackTraceElement:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;)Ljava/lang/StackTraceElement;
            astore 8 /* allocationStackTraceElement */
        start local 8 // java.lang.StackTraceElement allocationStackTraceElement
        20: .line 175
            aload 8 /* allocationStackTraceElement */
            ifnull 23
        21: .line 176
            new java.lang.StringBuilder
            dup
            aload 4 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Restricted method '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* allocationStackTraceElement */
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' directly violates restriction "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* violatedAccess */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* message */
        22: .line 177
            goto 43
        23: .line 178
      StackMap locals: java.lang.StackTraceElement
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 4 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Restricted method '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* violatingCallee */
            ldc "%H.%n(%p)"
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' directly violates restriction "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* violatedAccess */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* message */
        end local 8 // java.lang.StackTraceElement allocationStackTraceElement
        24: .line 180
            goto 43
        25: .line 181
      StackMap locals:
      StackMap stack:
            aload 7 /* allocationList */
            invokeinterface java.util.Deque.getFirst:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo
            astore 8 /* first */
        start local 8 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo first
        26: .line 182
            aload 7 /* allocationList */
            invokeinterface java.util.Deque.getLast:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo
            astore 9 /* last */
        start local 9 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo last
        27: .line 183
            new java.lang.StringBuilder
            dup
            aload 4 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Restricted method: '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* first */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            ldc "%h.%n(%p)"
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' calls '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        28: .line 184
            aload 9 /* last */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            ldc "%h.%n(%p)"
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' that violates restriction "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* violatedAccess */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        29: .line 183
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* message */
        30: .line 185
            getstatic com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$Options.PrintRestrictHeapAccessPath:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 43
        31: .line 186
            new java.lang.StringBuilder
            dup
            aload 4 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n  [Path:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* message */
        32: .line 187
            aload 7 /* allocationList */
            invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
            astore 11
            goto 36
      StackMap locals: com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Map com.oracle.svm.core.annotate.RestrictHeapAccess$Access java.lang.String java.util.Deque com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Deque com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo top java.util.Iterator
      StackMap stack:
        33: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo
            astore 10 /* element */
        start local 10 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo element
        34: .line 188
            aload 10 /* element */
            aload 8 /* first */
            if_acmpeq 36
        35: .line 189
            new java.lang.StringBuilder
            dup
            aload 4 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n    "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* element */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getInvocationStackTraceElement:()Ljava/lang/StackTraceElement;
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* message */
        end local 10 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo element
        36: .line 187
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        37: .line 192
            aload 0 /* this */
            aload 9 /* last */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            aload 9 /* last */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getAccess:()Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.getViolatingStackTraceElement:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;)Ljava/lang/StackTraceElement;
            astore 10 /* allocationStackTraceElement */
        start local 10 // java.lang.StackTraceElement allocationStackTraceElement
        38: .line 193
            aload 10 /* allocationStackTraceElement */
            ifnull 41
        39: .line 194
            new java.lang.StringBuilder
            dup
            aload 4 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n    "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* allocationStackTraceElement */
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* message */
        40: .line 195
            goto 42
        41: .line 196
      StackMap locals: com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Map com.oracle.svm.core.annotate.RestrictHeapAccess$Access java.lang.String java.util.Deque com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Deque com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo java.lang.StackTraceElement
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 4 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n    "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* last */
            invokevirtual com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo.getMethod:()Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            ldc "%H.%n(%p)"
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* message */
        42: .line 198
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 4 /* message */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* message */
        end local 10 // java.lang.StackTraceElement allocationStackTraceElement
        end local 9 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo last
        end local 8 // com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo first
        43: .line 201
      StackMap locals:
      StackMap stack:
            ldc "%s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* message */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 7 // java.util.Deque allocationList
        end local 6 // com.oracle.graal.pointsto.meta.AnalysisMethod current
        end local 5 // java.util.Deque callChain
        end local 4 // java.lang.String message
        end local 3 // com.oracle.svm.core.annotate.RestrictHeapAccess$Access violatedAccess
        44: .line 203
      StackMap locals: com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Map
      StackMap stack:
            return
        end local 2 // java.util.Map callerMap
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod violatingCallee
        end local 0 // com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   45     0                         this  Lcom/oracle/svm/hosted/code/RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor;
            0   45     1              violatingCallee  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0   45     2                    callerMap  Ljava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;>;
            2   44     3               violatedAccess  Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;
            3   44     4                      message  Ljava/lang/String;
            4   44     5                    callChain  Ljava/util/Deque<Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;>;
            5   44     6                      current  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            7    9     7                         info  Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;
           11   44     7               allocationList  Ljava/util/Deque<Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;>;
           13   16     8                      element  Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;
           20   24     8  allocationStackTraceElement  Ljava/lang/StackTraceElement;
           26   43     8                        first  Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;
           27   43     9                         last  Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;
           34   36    10                      element  Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;
           38   43    10  allocationStackTraceElement  Ljava/lang/StackTraceElement;
    Signature: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/svm/hosted/code/RestrictHeapAccessCalleesImpl$RestrictionInfo;>;)V
    MethodParameters:
                 Name  Flags
      violatingCallee  
      callerMap        

  org.graalvm.compiler.graph.Node checkHostedViolatingNode(com.oracle.graal.pointsto.meta.AnalysisMethod, com.oracle.svm.core.annotate.RestrictHeapAccess$Access);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;)Lorg/graalvm/compiler/graph/Node;
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        start local 2 // com.oracle.svm.core.annotate.RestrictHeapAccess$Access access
         0: .line 206
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.universe:Lcom/oracle/svm/hosted/meta/HostedUniverse;
            aload 1 /* method */
            invokevirtual com.oracle.svm.hosted.meta.HostedUniverse.optionalLookup:(Ljdk/vm/ci/meta/JavaMethod;)Lcom/oracle/svm/hosted/meta/HostedMethod;
            astore 3 /* hostedMethod */
        start local 3 // com.oracle.svm.hosted.meta.HostedMethod hostedMethod
         1: .line 207
            aload 3 /* hostedMethod */
            ifnull 4
         2: .line 208
            aload 3 /* hostedMethod */
            getfield com.oracle.svm.hosted.meta.HostedMethod.compilationInfo:Lcom/oracle/svm/hosted/code/CompilationInfo;
            invokevirtual com.oracle.svm.hosted.code.CompilationInfo.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         3: .line 209
            aload 4 /* graph */
            aload 2 /* access */
            invokestatic com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker.checkViolatingNode:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;)Lorg/graalvm/compiler/graph/Node;
            areturn
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         4: .line 211
      StackMap locals: com.oracle.svm.hosted.meta.HostedMethod
      StackMap stack:
            aconst_null
            areturn
        end local 3 // com.oracle.svm.hosted.meta.HostedMethod hostedMethod
        end local 2 // com.oracle.svm.core.annotate.RestrictHeapAccess$Access access
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        end local 0 // com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/oracle/svm/hosted/code/RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor;
            0    5     1        method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0    5     2        access  Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;
            1    5     3  hostedMethod  Lcom/oracle/svm/hosted/meta/HostedMethod;
            3    4     4         graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
    MethodParameters:
        Name  Flags
      method  
      access  

  private java.lang.StackTraceElement getViolatingStackTraceElement(com.oracle.graal.pointsto.meta.AnalysisMethod, com.oracle.svm.core.annotate.RestrictHeapAccess$Access);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;)Ljava/lang/StackTraceElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        start local 2 // com.oracle.svm.core.annotate.RestrictHeapAccess$Access access
         0: .line 218
            aload 0 /* this */
            getfield com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor.universe:Lcom/oracle/svm/hosted/meta/HostedUniverse;
            aload 1 /* method */
            invokevirtual com.oracle.svm.hosted.meta.HostedUniverse.optionalLookup:(Ljdk/vm/ci/meta/JavaMethod;)Lcom/oracle/svm/hosted/meta/HostedMethod;
            astore 3 /* hostedMethod */
        start local 3 // com.oracle.svm.hosted.meta.HostedMethod hostedMethod
         1: .line 219
            aload 3 /* hostedMethod */
            ifnull 8
         2: .line 220
            aload 3 /* hostedMethod */
            getfield com.oracle.svm.hosted.meta.HostedMethod.compilationInfo:Lcom/oracle/svm/hosted/code/CompilationInfo;
            invokevirtual com.oracle.svm.hosted.code.CompilationInfo.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 4 /* graph */
        start local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         3: .line 221
            aload 4 /* graph */
            aload 2 /* access */
            invokestatic com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker.checkViolatingNode:(Lorg/graalvm/compiler/nodes/StructuredGraph;Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;)Lorg/graalvm/compiler/graph/Node;
            astore 5 /* node */
        start local 5 // org.graalvm.compiler.graph.Node node
         4: .line 222
            aload 5 /* node */
            ifnull 8
         5: .line 223
            aload 5 /* node */
            invokevirtual org.graalvm.compiler.graph.Node.getNodeSourcePosition:()Lorg/graalvm/compiler/graph/NodeSourcePosition;
            astore 6 /* sourcePosition */
        start local 6 // org.graalvm.compiler.graph.NodeSourcePosition sourcePosition
         6: .line 224
            aload 6 /* sourcePosition */
            ifnull 8
            aload 6 /* sourcePosition */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getBCI:()I
            iconst_m1
            if_icmpeq 8
         7: .line 225
            aload 1 /* method */
            aload 6 /* sourcePosition */
            invokevirtual org.graalvm.compiler.graph.NodeSourcePosition.getBCI:()I
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.asStackTraceElement:(I)Ljava/lang/StackTraceElement;
            areturn
        end local 6 // org.graalvm.compiler.graph.NodeSourcePosition sourcePosition
        end local 5 // org.graalvm.compiler.graph.Node node
        end local 4 // org.graalvm.compiler.nodes.StructuredGraph graph
         8: .line 229
      StackMap locals: com.oracle.svm.hosted.meta.HostedMethod
      StackMap stack:
            aconst_null
            areturn
        end local 3 // com.oracle.svm.hosted.meta.HostedMethod hostedMethod
        end local 2 // com.oracle.svm.core.annotate.RestrictHeapAccess$Access access
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        end local 0 // com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/oracle/svm/hosted/code/RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor;
            0    9     1          method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0    9     2          access  Lcom/oracle/svm/core/annotate/RestrictHeapAccess$Access;
            1    9     3    hostedMethod  Lcom/oracle/svm/hosted/meta/HostedMethod;
            3    8     4           graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            4    8     5            node  Lorg/graalvm/compiler/graph/Node;
            6    8     6  sourcePosition  Lorg/graalvm/compiler/graph/NodeSourcePosition;
    MethodParameters:
        Name  Flags
      method  
      access  
}
SourceFile: "RestrictHeapAccessAnnotationChecker.java"
NestHost: com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker
InnerClasses:
  public final Access = com.oracle.svm.core.annotate.RestrictHeapAccess$Access of com.oracle.svm.core.annotate.RestrictHeapAccess
  public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
  public Options = com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$Options of com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker
  RestrictHeapAccessWarningVisitor = com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker$RestrictHeapAccessWarningVisitor of com.oracle.svm.hosted.code.RestrictHeapAccessAnnotationChecker
  public RestrictionInfo = com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl$RestrictionInfo of com.oracle.svm.hosted.code.RestrictHeapAccessCalleesImpl
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext