final class com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer 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$SafeServiceLoaderRecognizer
  super_class: java.lang.Object
{
  private final jdk.vm.ci.meta.ResolvedJavaMethod nextService;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaMethod;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.hosted.ImageClassLoader imageClassLoader;
    descriptor: Lcom/oracle/svm/hosted/ImageClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final com.oracle.svm.truffle.tck.PermissionsFeature this$0;
    descriptor: Lcom/oracle/svm/truffle/tck/PermissionsFeature;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.oracle.svm.truffle.tck.PermissionsFeature, com.oracle.graal.pointsto.BigBang, com.oracle.svm.hosted.ImageClassLoader);
    descriptor: (Lcom/oracle/svm/truffle/tck/PermissionsFeature;Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/svm/hosted/ImageClassLoader;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer this
        start local 2 // com.oracle.graal.pointsto.BigBang bigBang
        start local 3 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
         0: .line 679
            aload 0 /* this */
            aload 1
            putfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer.this$0:Lcom/oracle/svm/truffle/tck/PermissionsFeature;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 680
            aload 2 /* bigBang */
            ldc "java.util.ServiceLoader$LazyIterator"
            invokevirtual com.oracle.graal.pointsto.BigBang.forClass:(Ljava/lang/String;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 4 /* serviceLoaderIterator */
        start local 4 // com.oracle.graal.pointsto.meta.AnalysisType serviceLoaderIterator
         2: .line 681
            aload 2 /* bigBang */
            aload 4 /* serviceLoaderIterator */
            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$SafeServiceLoaderRecognizer.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;Lcom/oracle/graal/pointsto/meta/AnalysisType;Ljava/util/function/Predicate;)Ljava/util/Set;
            astore 5 /* methods */
        start local 5 // java.util.Set methods
         3: .line 682
            aload 5 /* methods */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpeq 5
         4: .line 683
            new java.lang.IllegalStateException
            dup
            ldc "Failed to lookup ServiceLoader$LazyIterator.nextService()."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 685
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.BigBang com.oracle.svm.hosted.ImageClassLoader com.oracle.graal.pointsto.meta.AnalysisType java.util.Set
      StackMap stack:
            aload 0 /* this */
            aload 5 /* 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$SafeServiceLoaderRecognizer.nextService:Ljdk/vm/ci/meta/ResolvedJavaMethod;
         6: .line 686
            aload 0 /* this */
            aload 3 /* imageClassLoader */
            putfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
         7: .line 687
            return
        end local 5 // java.util.Set methods
        end local 4 // com.oracle.graal.pointsto.meta.AnalysisType serviceLoaderIterator
        end local 3 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
        end local 2 // com.oracle.graal.pointsto.BigBang bigBang
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    8     0                   this  Lcom/oracle/svm/truffle/tck/PermissionsFeature$SafeServiceLoaderRecognizer;
            0    8     2                bigBang  Lcom/oracle/graal/pointsto/BigBang;
            0    8     3       imageClassLoader  Lcom/oracle/svm/hosted/ImageClassLoader;
            2    8     4  serviceLoaderIterator  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            3    8     5                methods  Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
    MethodParameters:
                  Name  Flags
      this$0            final
      bigBang           
      imageClassLoader  

  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=5, args_size=4
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer 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 691
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer.nextService:Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 1 /* method */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         1: .line 692
            aload 0 /* this */
            aload 3 /* trace */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer.findInstantiatedType:(Ljava/util/LinkedHashSet;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 4 /* instantiatedType */
        start local 4 // com.oracle.graal.pointsto.meta.AnalysisType instantiatedType
         2: .line 693
            aload 4 /* instantiatedType */
            ifnull 5
         3: .line 694
            aload 0 /* this */
            aload 4 /* instantiatedType */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer.isRegiseredInServiceLoader:(Lcom/oracle/graal/pointsto/meta/AnalysisType;)Z
            ifne 5
         4: .line 695
            iconst_1
            ireturn
        end local 4 // com.oracle.graal.pointsto.meta.AnalysisType instantiatedType
         5: .line 699
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        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$SafeServiceLoaderRecognizer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lcom/oracle/svm/truffle/tck/PermissionsFeature$SafeServiceLoaderRecognizer;
            0    6     1            method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0    6     2            caller  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0    6     3             trace  Ljava/util/LinkedHashSet<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            2    5     4  instantiatedType  Lcom/oracle/graal/pointsto/meta/AnalysisType;
    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 com.oracle.graal.pointsto.meta.AnalysisType findInstantiatedType(java.util.LinkedHashSet<com.oracle.graal.pointsto.meta.AnalysisMethod>);
    descriptor: (Ljava/util/LinkedHashSet;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer this
        start local 1 // java.util.LinkedHashSet trace
         0: .line 706
            aconst_null
            astore 2 /* res */
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisType res
         1: .line 707
            aload 1 /* trace */
            invokevirtual java.util.LinkedHashSet.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer java.util.LinkedHashSet com.oracle.graal.pointsto.meta.AnalysisType top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 3 /* m */
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod m
         3: .line 708
            ldc "<init>"
            aload 3 /* m */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 709
            aload 3 /* m */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getDeclaringClass:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 2 /* res */
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisMethod m
         5: .line 707
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 712
            aload 2 /* res */
            areturn
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisType res
        end local 1 // java.util.LinkedHashSet trace
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/svm/truffle/tck/PermissionsFeature$SafeServiceLoaderRecognizer;
            0    7     1  trace  Ljava/util/LinkedHashSet<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            1    7     2    res  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            3    5     3      m  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    Signature: (Ljava/util/LinkedHashSet<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
    MethodParameters:
       Name  Flags
      trace  

  private boolean isRegiseredInServiceLoader(com.oracle.graal.pointsto.meta.AnalysisType);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisType;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisType type
         0: .line 719
            ldc "META-INF/services/%s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.toClassName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* resource */
        start local 2 // java.lang.String resource
         1: .line 720
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.getClassLoader:()Ljava/lang/ClassLoader;
            aload 2 /* resource */
            invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
            ifnull 3
         2: .line 721
            iconst_1
            ireturn
         3: .line 723
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getInterfaces:()[Lcom/oracle/graal/pointsto/meta/AnalysisType;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 8
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer com.oracle.graal.pointsto.meta.AnalysisType java.lang.String top int int com.oracle.graal.pointsto.meta.AnalysisType[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* ifc */
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisType ifc
         5: .line 724
            aload 0 /* this */
            aload 3 /* ifc */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer.isRegiseredInServiceLoader:(Lcom/oracle/graal/pointsto/meta/AnalysisType;)Z
            ifeq 7
         6: .line 725
            iconst_1
            ireturn
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisType ifc
         7: .line 723
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         8: iload 4
            iload 5
            if_icmplt 4
         9: .line 728
            aload 1 /* type */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getSuperclass:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 3 /* superClz */
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisType superClz
        10: .line 729
            aload 3 /* superClz */
            ifnull 12
        11: .line 730
            aload 0 /* this */
            aload 3 /* superClz */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer.isRegiseredInServiceLoader:(Lcom/oracle/graal/pointsto/meta/AnalysisType;)Z
            ireturn
        12: .line 732
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer com.oracle.graal.pointsto.meta.AnalysisType java.lang.String com.oracle.graal.pointsto.meta.AnalysisType
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisType superClz
        end local 2 // java.lang.String resource
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisType type
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/oracle/svm/truffle/tck/PermissionsFeature$SafeServiceLoaderRecognizer;
            0   13     1      type  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            1   13     2  resource  Ljava/lang/String;
            5    7     3       ifc  Lcom/oracle/graal/pointsto/meta/AnalysisType;
           10   13     3  superClz  Lcom/oracle/graal/pointsto/meta/AnalysisType;
    MethodParameters:
      Name  Flags
      type  

  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 681
            aload 0 /* m */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "nextService"
            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 SafeServiceLoaderRecognizer = com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer of com.oracle.svm.truffle.tck.PermissionsFeature
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles