final class com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer implements com.oracle.svm.truffle.tck.PermissionsFeature$CallGraphFilter
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer
  super_class: java.lang.Object
{
  private final com.oracle.svm.hosted.SVMHost hostVM;
    descriptor: Lcom/oracle/svm/hosted/SVMHost;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.meta.ResolvedJavaMethod threadInterrupt;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.meta.ResolvedJavaMethod threadCurrentThread;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(com.oracle.graal.pointsto.BigBang);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer this
        start local 1 // com.oracle.graal.pointsto.BigBang bigBang
         0: .line 575
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 576
            aload 0 /* this */
            aload 1 /* bigBang */
            invokevirtual com.oracle.graal.pointsto.BigBang.getHostVM:()Lcom/oracle/graal/pointsto/api/HostVM;
            checkcast com.oracle.svm.hosted.SVMHost
            putfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer.hostVM:Lcom/oracle/svm/hosted/SVMHost;
         2: .line 578
            aload 1 /* bigBang */
            ldc Ljava/lang/Thread;
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  com/oracle/svm/truffle/tck/PermissionsFeature$SafeInterruptRecognizer.lambda$0(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z (6)
                  (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.findMethods:(Lcom/oracle/graal/pointsto/BigBang;Ljava/lang/Class;Ljava/util/function/Predicate;)Ljava/util/Set;
            astore 2 /* methods */
        start local 2 // java.util.Set methods
         3: .line 579
            aload 2 /* methods */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpeq 5
         4: .line 580
            new java.lang.IllegalStateException
            dup
            ldc "Failed to lookup Thread.interrupt()."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 582
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer com.oracle.graal.pointsto.BigBang java.util.Set
      StackMap stack:
            aload 0 /* this */
            aload 2 /* methods */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaMethod
            putfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer.threadInterrupt:Ljdk/vm/ci/meta/ResolvedJavaMethod;
         6: .line 583
            aload 1 /* bigBang */
            ldc Ljava/lang/Thread;
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  com/oracle/svm/truffle/tck/PermissionsFeature$SafeInterruptRecognizer.lambda$1(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z (6)
                  (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.findMethods:(Lcom/oracle/graal/pointsto/BigBang;Ljava/lang/Class;Ljava/util/function/Predicate;)Ljava/util/Set;
            astore 2 /* methods */
         7: .line 584
            aload 2 /* methods */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpeq 9
         8: .line 585
            new java.lang.IllegalStateException
            dup
            ldc "Failed to lookup Thread.currentThread()."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 587
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* methods */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.vm.ci.meta.ResolvedJavaMethod
            putfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer.threadCurrentThread:Ljdk/vm/ci/meta/ResolvedJavaMethod;
        10: .line 588
            return
        end local 2 // java.util.Set methods
        end local 1 // com.oracle.graal.pointsto.BigBang bigBang
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/oracle/svm/truffle/tck/PermissionsFeature$SafeInterruptRecognizer;
            0   11     1  bigBang  Lcom/oracle/graal/pointsto/BigBang;
            3   11     2  methods  Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
    MethodParameters:
         Name  Flags
      bigBang  

  public boolean test(com.oracle.graal.pointsto.meta.AnalysisMethod, com.oracle.graal.pointsto.meta.AnalysisMethod, java.util.LinkedHashSet<com.oracle.graal.pointsto.meta.AnalysisMethod>);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/LinkedHashSet;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=10, args_size=4
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisMethod caller
        start local 3 // java.util.LinkedHashSet trace
         0: .line 592
            aconst_null
            astore 4 /* res */
        start local 4 // java.lang.Boolean res
         1: .line 593
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer.threadInterrupt:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 1 /* method */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 16
         2: .line 594
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer.hostVM:Lcom/oracle/svm/hosted/SVMHost;
            aload 2 /* caller */
            invokevirtual com.oracle.svm.hosted.SVMHost.getAnalysisGraph:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Lorg/graalvm/compiler/nodes/StructuredGraph;
            astore 5 /* graph */
        start local 5 // org.graalvm.compiler.nodes.StructuredGraph graph
         3: .line 595
            aload 5 /* graph */
            invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getInvokes:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 15
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer com.oracle.graal.pointsto.meta.AnalysisMethod com.oracle.graal.pointsto.meta.AnalysisMethod java.util.LinkedHashSet java.lang.Boolean org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.Invoke
            astore 6 /* invoke */
        start local 6 // org.graalvm.compiler.nodes.Invoke invoke
         5: .line 596
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer.threadInterrupt:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 6 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 15
         6: .line 597
            aload 6 /* invoke */
            invokeinterface org.graalvm.compiler.nodes.Invoke.getReceiver:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* node */
        start local 8 // org.graalvm.compiler.nodes.ValueNode node
         7: .line 598
            aload 8 /* node */
            instanceof org.graalvm.compiler.nodes.PiNode
            ifeq 15
         8: .line 599
            aload 8 /* node */
            checkcast org.graalvm.compiler.nodes.PiNode
            invokevirtual org.graalvm.compiler.nodes.PiNode.getOriginalNode:()Lorg/graalvm/compiler/nodes/ValueNode;
            astore 8 /* node */
         9: .line 600
            aload 8 /* node */
            instanceof org.graalvm.compiler.nodes.Invoke
            ifeq 15
        10: .line 601
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer.threadCurrentThread:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 8 /* node */
            checkcast org.graalvm.compiler.nodes.Invoke
            invokeinterface org.graalvm.compiler.nodes.Invoke.callTarget:()Lorg/graalvm/compiler/nodes/CallTargetNode;
            invokevirtual org.graalvm.compiler.nodes.CallTargetNode.targetMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            istore 9 /* isCurrentThread */
        start local 9 // boolean isCurrentThread
        11: .line 602
            aload 4 /* res */
            ifnonnull 12
            iload 9 /* isCurrentThread */
            goto 14
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer com.oracle.graal.pointsto.meta.AnalysisMethod com.oracle.graal.pointsto.meta.AnalysisMethod java.util.LinkedHashSet java.lang.Boolean org.graalvm.compiler.nodes.StructuredGraph org.graalvm.compiler.nodes.Invoke java.util.Iterator org.graalvm.compiler.nodes.ValueNode int
      StackMap stack:
        12: aload 4 /* res */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 13
            iload 9 /* isCurrentThread */
            ifeq 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack:
        13: iconst_0
      StackMap locals:
      StackMap stack: int
        14: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 4 /* res */
        end local 9 // boolean isCurrentThread
        end local 8 // org.graalvm.compiler.nodes.ValueNode node
        end local 6 // org.graalvm.compiler.nodes.Invoke invoke
        15: .line 595
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer com.oracle.graal.pointsto.meta.AnalysisMethod com.oracle.graal.pointsto.meta.AnalysisMethod java.util.LinkedHashSet java.lang.Boolean org.graalvm.compiler.nodes.StructuredGraph top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 5 // org.graalvm.compiler.nodes.StructuredGraph graph
        16: .line 608
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer com.oracle.graal.pointsto.meta.AnalysisMethod com.oracle.graal.pointsto.meta.AnalysisMethod java.util.LinkedHashSet java.lang.Boolean
      StackMap stack:
            aload 4 /* res */
            ifnonnull 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 4 /* res */
            invokevirtual java.lang.Boolean.booleanValue:()Z
      StackMap locals:
      StackMap stack: int
        18: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 4 /* res */
        19: .line 609
            aload 4 /* res */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 4 // java.lang.Boolean res
        end local 3 // java.util.LinkedHashSet trace
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisMethod caller
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Lcom/oracle/svm/truffle/tck/PermissionsFeature$SafeInterruptRecognizer;
            0   20     1           method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0   20     2           caller  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0   20     3            trace  Ljava/util/LinkedHashSet<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            1   20     4              res  Ljava/lang/Boolean;
            3   16     5            graph  Lorg/graalvm/compiler/nodes/StructuredGraph;
            5   15     6           invoke  Lorg/graalvm/compiler/nodes/Invoke;
            7   15     8             node  Lorg/graalvm/compiler/nodes/ValueNode;
           11   15     9  isCurrentThread  Z
    Signature: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/LinkedHashSet<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;)Z
    MethodParameters:
        Name  Flags
      method  
      caller  
      trace   

  private static boolean lambda$0(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod m
         0: .line 578
            aload 0 /* m */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "interrupt"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // jdk.vm.ci.meta.ResolvedJavaMethod m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  Ljdk/vm/ci/meta/ResolvedJavaMethod;

  private static boolean lambda$1(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod m
         0: .line 583
            aload 0 /* m */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "currentThread"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // jdk.vm.ci.meta.ResolvedJavaMethod m
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     m  Ljdk/vm/ci/meta/ResolvedJavaMethod;
}
SourceFile: "PermissionsFeature.java"
NestHost: com.oracle.svm.truffle.tck.PermissionsFeature
InnerClasses:
  private abstract CallGraphFilter = com.oracle.svm.truffle.tck.PermissionsFeature$CallGraphFilter of com.oracle.svm.truffle.tck.PermissionsFeature
  private final SafeInterruptRecognizer = com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer of com.oracle.svm.truffle.tck.PermissionsFeature
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles