public class com.oracle.svm.truffle.tck.PermissionsFeature implements org.graalvm.nativeimage.hosted.Feature
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.truffle.tck.PermissionsFeature
  super_class: java.lang.Object
{
  private static final java.lang.String CONFIG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "truffle-language-permissions-config.json"

  private static final java.util.Set<java.lang.String> compilerPackages;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.ClassLoader> systemClassLoaders;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/ClassLoader;>;

  private java.nio.file.Path reportFilePath;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set<com.oracle.graal.pointsto.meta.AnalysisMethod> whiteList;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;

  private com.oracle.graal.pointsto.meta.AnalysisType reflectionProxy;
    descriptor: Lcom/oracle/graal/pointsto/meta/AnalysisType;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 127
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic com.oracle.svm.truffle.tck.PermissionsFeature.compilerPackages:Ljava/util/Set;
         1: .line 128
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature.compilerPackages:Ljava/util/Set;
            ldc "org.graalvm."
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 129
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature.compilerPackages:Ljava/util/Set;
            ldc "com.oracle.graalvm."
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         3: .line 130
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature.compilerPackages:Ljava/util/Set;
            ldc "com.oracle.truffle.api."
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         4: .line 131
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature.compilerPackages:Ljava/util/Set;
            ldc "com.oracle.truffle.polyglot."
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         5: .line 132
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature.compilerPackages:Ljava/util/Set;
            ldc "com.oracle.truffle.nfi."
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 133
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature.compilerPackages:Ljava/util/Set;
            ldc "com.oracle.truffle.object."
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 138
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic com.oracle.svm.truffle.tck.PermissionsFeature.systemClassLoaders:Ljava/util/Set;
         8: .line 139
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 0 /* cl */
        start local 0 // java.lang.ClassLoader cl
         9: goto 12
        10: .line 140
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature.systemClassLoaders:Ljava/util/Set;
            aload 0 /* cl */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        11: .line 139
            aload 0 /* cl */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            astore 0 /* cl */
      StackMap locals:
      StackMap stack:
        12: aload 0 /* cl */
            ifnonnull 10
        end local 0 // java.lang.ClassLoader cl
        13: .line 142
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            9   13     0    cl  Ljava/lang/ClassLoader;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
         0: .line 95
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/truffle/tck/PermissionsFeature;

  public void duringSetup(org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$DuringSetupAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess access
         0: .line 160
            getstatic com.oracle.svm.core.SubstrateOptions.FoldSecurityManagerGetter: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 2
         1: .line 161
            ldc "%s requires -H:-FoldSecurityManagerGetter option."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            pop
         2: .line 163
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature$Options.TruffleTCKPermissionsReportFile:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* reportFile */
        start local 2 // java.lang.String reportFile
         3: .line 164
            aload 2 /* reportFile */
            ifnonnull 5
         4: .line 165
            ldc "Path to report file must be given by -H:TruffleTCKPermissionsReportFile option."
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            pop
         5: .line 167
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* reportFile */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            putfield com.oracle.svm.truffle.tck.PermissionsFeature.reportFilePath:Ljava/nio/file/Path;
         6: .line 169
            aload 1 /* access */
            checkcast com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl
            astore 3 /* accessImpl */
        start local 3 // com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl accessImpl
         7: .line 170
            aload 3 /* accessImpl */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl.getHostVM:()Lcom/oracle/svm/hosted/SVMHost;
            invokevirtual com.oracle.svm.hosted.SVMHost.keepAnalysisGraphs:()V
         8: .line 171
            return
        end local 3 // com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl accessImpl
        end local 2 // java.lang.String reportFile
        end local 1 // org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess access
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/oracle/svm/truffle/tck/PermissionsFeature;
            0    9     1      access  Lorg/graalvm/nativeimage/hosted/Feature$DuringSetupAccess;
            3    9     2  reportFile  Ljava/lang/String;
            7    9     3  accessImpl  Lcom/oracle/svm/hosted/FeatureImpl$DuringSetupAccessImpl;
    MethodParameters:
        Name  Flags
      access  

  public void afterAnalysis(org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess);
    descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$AfterAnalysisAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=16, args_size=2
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
        start local 1 // org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess access
         0: .line 177
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature.reportFilePath:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 5
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature.reportFilePath:Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.size:(Ljava/nio/file/Path;)J
            lconst_0
            lcmp
            ifle 5
         1: .line 178
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature.reportFilePath:Ljava/nio/file/Path;
            iconst_2
            anewarray java.nio.file.OpenOption
            dup
            iconst_0
            getstatic java.nio.file.StandardOpenOption.CREATE:Ljava/nio/file/StandardOpenOption;
            aastore
            dup
            iconst_1
            getstatic java.nio.file.StandardOpenOption.TRUNCATE_EXISTING:Ljava/nio/file/StandardOpenOption;
            aastore
            invokestatic java.nio.file.Files.newOutputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
            pop
         2: .line 180
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         3: pop
         4: .line 181
            ldc "Cannot delete existing report file %s."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature.reportFilePath:Ljava/nio/file/Path;
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
         5: .line 183
      StackMap locals:
      StackMap stack:
            aload 1 /* access */
            checkcast com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl
            astore 2 /* accessImpl */
        start local 2 // com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl accessImpl
         6: .line 184
            aload 2 /* accessImpl */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl.getDebugContext:()Lorg/graalvm/compiler/debug/DebugContext;
            astore 3 /* debugContext */
        start local 3 // org.graalvm.compiler.debug.DebugContext debugContext
         7: .line 185
            aconst_null
            astore 4
            aconst_null
            astore 5
         8: aload 3 /* debugContext */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual org.graalvm.compiler.debug.DebugContext.scope:(Ljava/lang/Object;)Lorg/graalvm/compiler/debug/DebugContext$Scope;
            astore 6 /* s */
        start local 6 // org.graalvm.compiler.debug.DebugContext$Scope s
         9: .line 186
            aload 2 /* accessImpl */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl.getBigBang:()Lcom/oracle/graal/pointsto/BigBang;
            astore 7 /* bigbang */
        start local 7 // com.oracle.graal.pointsto.BigBang bigbang
        10: .line 187
            new com.oracle.svm.truffle.tck.WhiteListParser
            dup
            aload 2 /* accessImpl */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl.getImageClassLoader:()Lcom/oracle/svm/hosted/ImageClassLoader;
            aload 7 /* bigbang */
            invokespecial com.oracle.svm.truffle.tck.WhiteListParser.<init>:(Lcom/oracle/svm/hosted/ImageClassLoader;Lcom/oracle/graal/pointsto/BigBang;)V
            astore 8 /* parser */
        start local 8 // com.oracle.svm.truffle.tck.WhiteListParser parser
        11: .line 188
            aload 8 /* parser */
        12: .line 189
            aload 2 /* accessImpl */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl.getImageClassLoader:()Lcom/oracle/svm/hosted/ImageClassLoader;
        13: .line 190
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
        14: .line 191
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature$Options.TruffleTCKPermissionsExcludeFiles:Lcom/oracle/svm/core/option/HostedOptionKey;
        15: .line 192
            new com.oracle.svm.truffle.tck.PermissionsFeature$ResourceAsOptionDecorator
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/resources/jre.json"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial com.oracle.svm.truffle.tck.PermissionsFeature$ResourceAsOptionDecorator.<init>:(Ljava/lang/String;)V
        16: .line 193
            ldc "truffle-language-permissions-config.json"
        17: .line 188
            invokestatic com.oracle.svm.hosted.config.ConfigurationParserUtils.parseAndRegisterConfigurations:(Lcom/oracle/svm/core/configure/ConfigurationParser;Lcom/oracle/svm/hosted/ImageClassLoader;Ljava/lang/String;Lcom/oracle/svm/core/option/HostedOptionKey;Lcom/oracle/svm/core/option/HostedOptionKey;Ljava/lang/String;)I
            pop
        18: .line 194
            aload 0 /* this */
            aload 7 /* bigbang */
            ldc "com.oracle.svm.reflect.helpers.ReflectionProxy"
            invokevirtual com.oracle.graal.pointsto.BigBang.forClass:(Ljava/lang/String;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            putfield com.oracle.svm.truffle.tck.PermissionsFeature.reflectionProxy:Lcom/oracle/graal/pointsto/meta/AnalysisType;
        19: .line 195
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature.reflectionProxy:Lcom/oracle/graal/pointsto/meta/AnalysisType;
            ifnonnull 21
        20: .line 196
            ldc "Cannot load ReflectionProxy type"
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            pop
        21: .line 198
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope com.oracle.graal.pointsto.BigBang com.oracle.svm.truffle.tck.WhiteListParser
      StackMap stack:
            aload 0 /* this */
            aload 8 /* parser */
            invokevirtual com.oracle.svm.truffle.tck.WhiteListParser.getLoadedWhiteList:()Ljava/util/Set;
            putfield com.oracle.svm.truffle.tck.PermissionsFeature.whiteList:Ljava/util/Set;
        22: .line 199
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 9 /* deniedMethods */
        start local 9 // java.util.Set deniedMethods
        23: .line 200
            aload 9 /* deniedMethods */
            aload 7 /* bigbang */
            ldc Ljava/lang/SecurityManager;
            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.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;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        24: .line 201
            aload 9 /* deniedMethods */
            aload 7 /* bigbang */
            ldc Lsun/misc/Unsafe;
            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.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;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        25: .line 206
            aload 9 /* deniedMethods */
            aload 7 /* bigbang */
            invokestatic org.graalvm.polyglot.io.FileSystem.newDefaultFileSystem:()Lorg/graalvm/polyglot/io/FileSystem;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            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.lambda$2(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;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        26: .line 207
            aload 9 /* deniedMethods */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 52
        27: .line 208
            aload 0 /* this */
            aload 7 /* bigbang */
            aload 9 /* deniedMethods */
            aload 3 /* debugContext */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature.callGraph:(Lcom/oracle/graal/pointsto/BigBang;Ljava/util/Set;Lorg/graalvm/compiler/debug/DebugContext;)Ljava/util/Map;
            astore 10 /* cg */
        start local 10 // java.util.Map cg
        28: .line 209
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* report */
        start local 11 // java.util.List report
        29: .line 210
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 12 /* contextFilters */
        start local 12 // java.util.Set contextFilters
        30: .line 211
            aload 12 /* contextFilters */
            iconst_3
            anewarray com.oracle.svm.truffle.tck.PermissionsFeature$CallGraphFilter
            dup
            iconst_0
            new com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer
            dup
            aload 7 /* bigbang */
            invokespecial com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer.<init>:(Lcom/oracle/graal/pointsto/BigBang;)V
            aastore
            dup
            iconst_1
            new com.oracle.svm.truffle.tck.PermissionsFeature$SafePrivilegedRecognizer
            dup
            aload 0 /* this */
            aload 7 /* bigbang */
            invokespecial com.oracle.svm.truffle.tck.PermissionsFeature$SafePrivilegedRecognizer.<init>:(Lcom/oracle/svm/truffle/tck/PermissionsFeature;Lcom/oracle/graal/pointsto/BigBang;)V
            aastore
            dup
            iconst_2
        31: .line 212
            new com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer
            dup
            aload 0 /* this */
            aload 7 /* bigbang */
            aload 2 /* accessImpl */
            invokevirtual com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl.getImageClassLoader:()Lcom/oracle/svm/hosted/ImageClassLoader;
            invokespecial com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer.<init>:(Lcom/oracle/svm/truffle/tck/PermissionsFeature;Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/svm/hosted/ImageClassLoader;)V
            aastore
        32: .line 211
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
        33: .line 213
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature$Options.TruffleTCKPermissionsMaxStackTraceDepth:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 13 /* maxStackDepth */
        start local 13 // int maxStackDepth
        34: .line 214
            iload 13 /* maxStackDepth */
            iconst_m1
            if_icmpne 35
            ldc 2147483647
            goto 36
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope com.oracle.graal.pointsto.BigBang com.oracle.svm.truffle.tck.WhiteListParser java.util.Set java.util.Map java.util.List java.util.Set int
      StackMap stack:
        35: iload 13 /* maxStackDepth */
      StackMap locals:
      StackMap stack: int
        36: istore 13 /* maxStackDepth */
        37: .line 215
            aload 9 /* deniedMethods */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 15
            goto 46
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope com.oracle.graal.pointsto.BigBang com.oracle.svm.truffle.tck.WhiteListParser java.util.Set java.util.Map java.util.List java.util.Set int top java.util.Iterator
      StackMap stack:
        38: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 14 /* deniedMethod */
        start local 14 // com.oracle.graal.pointsto.meta.AnalysisMethod deniedMethod
        39: .line 216
            aload 10 /* cg */
            aload 14 /* deniedMethod */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 46
        40: .line 217
            aload 0 /* this */
            aload 11 /* report */
            aload 14 /* deniedMethod */
        41: .line 218
            iload 13 /* maxStackDepth */
        42: .line 219
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature$Options.TruffleTCKPermissionsMaxErrors:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        43: .line 220
            aload 10 /* cg */
            aload 12 /* contextFilters */
        44: .line 221
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            iconst_1
            iconst_0
        45: .line 217
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature.collectViolations:(Ljava/util/List;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;IILjava/util/Map;Ljava/util/Set;Ljava/util/LinkedHashSet;II)I
            pop
        end local 14 // com.oracle.graal.pointsto.meta.AnalysisMethod deniedMethod
        46: .line 215
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        47: .line 224
            aload 11 /* report */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 52
        48: .line 226
            ldc "detected privileged calls originated in language packages "
        49: .line 227
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature.reportFilePath:Ljava/nio/file/Path;
        50: .line 228
            aload 11 /* report */
            invokedynamic accept(Ljava/util/List;)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/svm/truffle/tck/PermissionsFeature.lambda$3(Ljava/util/List;Ljava/io/PrintWriter;)V (6)
                  (Ljava/io/PrintWriter;)V
        51: .line 225
            invokestatic com.oracle.graal.pointsto.reports.ReportUtils.report:(Ljava/lang/String;Ljava/nio/file/Path;Ljava/util/function/Consumer;)V
        end local 13 // int maxStackDepth
        end local 12 // java.util.Set contextFilters
        end local 11 // java.util.List report
        end local 10 // java.util.Map cg
        end local 9 // java.util.Set deniedMethods
        end local 8 // com.oracle.svm.truffle.tck.WhiteListParser parser
        end local 7 // com.oracle.graal.pointsto.BigBang bigbang
        52: .line 240
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl org.graalvm.compiler.debug.DebugContext java.lang.Throwable java.lang.Throwable org.graalvm.compiler.debug.DebugContext$Scope
      StackMap stack:
            aload 6 /* s */
            ifnull 58
            aload 6 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
            goto 58
      StackMap locals:
      StackMap stack: java.lang.Throwable
        53: astore 4
            aload 6 /* s */
            ifnull 54
            aload 6 /* s */
            invokeinterface org.graalvm.compiler.debug.DebugContext$Scope.close:()V
        end local 6 // org.graalvm.compiler.debug.DebugContext$Scope s
      StackMap locals:
      StackMap stack:
        54: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        55: astore 5
            aload 4
            ifnonnull 56
            aload 5
            astore 4
            goto 57
      StackMap locals:
      StackMap stack:
        56: aload 4
            aload 5
            if_acmpeq 57
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        57: aload 4
            athrow
        58: .line 241
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.graalvm.compiler.debug.DebugContext debugContext
        end local 2 // com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl accessImpl
        end local 1 // org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess access
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   59     0            this  Lcom/oracle/svm/truffle/tck/PermissionsFeature;
            0   59     1          access  Lorg/graalvm/nativeimage/hosted/Feature$AfterAnalysisAccess;
            6   59     2      accessImpl  Lcom/oracle/svm/hosted/FeatureImpl$AfterAnalysisAccessImpl;
            7   59     3    debugContext  Lorg/graalvm/compiler/debug/DebugContext;
            9   54     6               s  Lorg/graalvm/compiler/debug/DebugContext$Scope;
           10   52     7         bigbang  Lcom/oracle/graal/pointsto/BigBang;
           11   52     8          parser  Lcom/oracle/svm/truffle/tck/WhiteListParser;
           23   52     9   deniedMethods  Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
           28   52    10              cg  Ljava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;>;
           29   52    11          report  Ljava/util/List<Ljava/util/List<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;>;
           30   52    12  contextFilters  Ljava/util/Set<Lcom/oracle/svm/truffle/tck/PermissionsFeature$CallGraphFilter;>;
           34   52    13   maxStackDepth  I
           39   46    14    deniedMethod  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException
           9    52      53  any
           8    55      55  any
    MethodParameters:
        Name  Flags
      access  

  private java.util.Map<com.oracle.graal.pointsto.meta.AnalysisMethod, java.util.Set<com.oracle.graal.pointsto.meta.AnalysisMethod>> callGraph(com.oracle.graal.pointsto.BigBang, java.util.Set<com.oracle.graal.pointsto.meta.AnalysisMethod>, org.graalvm.compiler.debug.DebugContext);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Ljava/util/Set;Lorg/graalvm/compiler/debug/DebugContext;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
        start local 1 // com.oracle.graal.pointsto.BigBang bigbang
        start local 2 // java.util.Set targets
        start local 3 // org.graalvm.compiler.debug.DebugContext debugContext
         0: .line 256
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 4 /* todo */
        start local 4 // java.util.Deque todo
         1: .line 257
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* visited */
        start local 5 // java.util.Map visited
         2: .line 258
            aload 1 /* bigbang */
            invokevirtual com.oracle.graal.pointsto.BigBang.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.getMethods:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 7
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.BigBang java.util.Set org.graalvm.compiler.debug.DebugContext java.util.Deque java.util.Map top java.util.Iterator
      StackMap stack:
         3: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 6 /* m */
        start local 6 // com.oracle.graal.pointsto.meta.AnalysisMethod m
         4: .line 259
            aload 6 /* m */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.isEntryPoint:()Z
            ifeq 7
         5: .line 260
            aload 5 /* visited */
            aload 6 /* m */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 261
            aload 4 /* todo */
            aload 6 /* m */
            invokeinterface java.util.Deque.offer:(Ljava/lang/Object;)Z
            pop
        end local 6 // com.oracle.graal.pointsto.meta.AnalysisMethod m
         7: .line 258
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 264
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 6 /* path */
        start local 6 // java.util.Deque path
         9: .line 265
            aload 4 /* todo */
            invokeinterface java.util.Deque.iterator:()Ljava/util/Iterator;
            astore 8
            goto 12
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.BigBang java.util.Set org.graalvm.compiler.debug.DebugContext java.util.Deque java.util.Map java.util.Deque top java.util.Iterator
      StackMap stack:
        10: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 7 /* m */
        start local 7 // com.oracle.graal.pointsto.meta.AnalysisMethod m
        11: .line 266
            aload 0 /* this */
            aload 7 /* m */
            aload 2 /* targets */
            aload 5 /* visited */
            aload 6 /* path */
            aload 3 /* debugContext */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature.callGraphImpl:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set;Ljava/util/Map;Ljava/util/Deque;Lorg/graalvm/compiler/debug/DebugContext;)Z
            pop
        end local 7 // com.oracle.graal.pointsto.meta.AnalysisMethod m
        12: .line 265
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        13: .line 268
            aload 5 /* visited */
            areturn
        end local 6 // java.util.Deque path
        end local 5 // java.util.Map visited
        end local 4 // java.util.Deque todo
        end local 3 // org.graalvm.compiler.debug.DebugContext debugContext
        end local 2 // java.util.Set targets
        end local 1 // com.oracle.graal.pointsto.BigBang bigbang
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lcom/oracle/svm/truffle/tck/PermissionsFeature;
            0   14     1       bigbang  Lcom/oracle/graal/pointsto/BigBang;
            0   14     2       targets  Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            0   14     3  debugContext  Lorg/graalvm/compiler/debug/DebugContext;
            1   14     4          todo  Ljava/util/Deque<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            2   14     5       visited  Ljava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;>;
            4    7     6             m  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            9   14     6          path  Ljava/util/Deque<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
           11   12     7             m  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    Signature: (Lcom/oracle/graal/pointsto/BigBang;Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;Lorg/graalvm/compiler/debug/DebugContext;)Ljava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;>;
    MethodParameters:
              Name  Flags
      bigbang       
      targets       
      debugContext  

  private boolean callGraphImpl(com.oracle.graal.pointsto.meta.AnalysisMethod, java.util.Set<com.oracle.graal.pointsto.meta.AnalysisMethod>, java.util.Map<com.oracle.graal.pointsto.meta.AnalysisMethod, java.util.Set<com.oracle.graal.pointsto.meta.AnalysisMethod>>, java.util.Deque<com.oracle.graal.pointsto.meta.AnalysisMethod>, org.graalvm.compiler.debug.DebugContext);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set;Ljava/util/Map;Ljava/util/Deque;Lorg/graalvm/compiler/debug/DebugContext;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=17, args_size=6
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod m
        start local 2 // java.util.Set targets
        start local 3 // java.util.Map visited
        start local 4 // java.util.Deque path
        start local 5 // org.graalvm.compiler.debug.DebugContext debugContext
         0: .line 277
            aload 1 /* m */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.getMethodName:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Ljava/lang/String;
            astore 6 /* mName */
        start local 6 // java.lang.String mName
         1: .line 278
            aload 4 /* path */
            aload 1 /* m */
            invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
         2: .line 280
            iconst_0
            istore 7 /* callPathContainsTarget */
        start local 7 // boolean callPathContainsTarget
         3: .line 281
            aload 5 /* debugContext */
            iconst_5
            ldc "Entered method: %s."
            aload 6 /* mName */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;)V
         4: .line 282
            aload 1 /* m */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getTypeFlow:()Lcom/oracle/graal/pointsto/flow/MethodTypeFlow;
            invokevirtual com.oracle.graal.pointsto.flow.MethodTypeFlow.getInvokes:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 34
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Set java.util.Map java.util.Deque org.graalvm.compiler.debug.DebugContext java.lang.String int top java.util.Iterator
      StackMap stack:
         5: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.flow.InvokeTypeFlow
            astore 8 /* invoke */
        start local 8 // com.oracle.graal.pointsto.flow.InvokeTypeFlow invoke
         6: .line 283
            aload 8 /* invoke */
            invokevirtual com.oracle.graal.pointsto.flow.InvokeTypeFlow.getCallees:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 11
            goto 33
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Set java.util.Map java.util.Deque org.graalvm.compiler.debug.DebugContext java.lang.String int com.oracle.graal.pointsto.flow.InvokeTypeFlow java.util.Iterator top java.util.Iterator
      StackMap stack:
         7: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 10 /* callee */
        start local 10 // com.oracle.graal.pointsto.meta.AnalysisMethod callee
         8: .line 284
            aload 3 /* visited */
            aload 10 /* callee */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 12 /* parents */
        start local 12 // java.util.Set parents
         9: .line 285
            aload 10 /* callee */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.getMethodName:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Ljava/lang/String;
            astore 13 /* calleeName */
        start local 13 // java.lang.String calleeName
        10: .line 286
            aload 5 /* debugContext */
            iconst_5
            ldc "Callee: %s, new: %b."
            aload 13 /* calleeName */
            aload 12 /* parents */
            ifnonnull 11
            iconst_1
            goto 12
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Set java.util.Map java.util.Deque org.graalvm.compiler.debug.DebugContext java.lang.String int com.oracle.graal.pointsto.flow.InvokeTypeFlow java.util.Iterator com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Iterator java.util.Set java.lang.String
      StackMap stack: org.graalvm.compiler.debug.DebugContext int java.lang.String java.lang.String
        11: iconst_0
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Set java.util.Map java.util.Deque org.graalvm.compiler.debug.DebugContext java.lang.String int com.oracle.graal.pointsto.flow.InvokeTypeFlow java.util.Iterator com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Iterator java.util.Set java.lang.String
      StackMap stack: org.graalvm.compiler.debug.DebugContext int java.lang.String java.lang.String int
        12: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 287
            aload 12 /* parents */
            ifnonnull 26
        14: .line 288
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 12 /* parents */
        15: .line 289
            aload 3 /* visited */
            aload 10 /* callee */
            aload 12 /* parents */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 290
            aload 2 /* targets */
            aload 10 /* callee */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 20
        17: .line 291
            aload 12 /* parents */
            aload 1 /* m */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        18: .line 292
            iconst_1
            istore 7 /* callPathContainsTarget */
        19: .line 293
            goto 33
        20: .line 295
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 10 /* callee */
            aload 2 /* targets */
            aload 3 /* visited */
            aload 4 /* path */
            aload 5 /* debugContext */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature.callGraphImpl:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set;Ljava/util/Map;Ljava/util/Deque;Lorg/graalvm/compiler/debug/DebugContext;)Z
            istore 14 /* add */
        start local 14 // boolean add
        21: .line 296
            iload 14 /* add */
            ifeq 24
        22: .line 297
            aload 12 /* parents */
            aload 1 /* m */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        23: .line 298
            aload 5 /* debugContext */
            iconst_5
            ldc "Added callee: %s for %s."
            aload 13 /* calleeName */
            aload 6 /* mName */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        24: .line 300
      StackMap locals: int
      StackMap stack:
            iload 7 /* callPathContainsTarget */
            iload 14 /* add */
            ior
            istore 7 /* callPathContainsTarget */
        end local 14 // boolean add
        25: .line 301
            goto 33
      StackMap locals:
      StackMap stack:
        26: aload 10 /* callee */
            aload 4 /* path */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.isBacktrace:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Deque;)Z
            ifeq 27
            aload 10 /* callee */
            aload 4 /* path */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.isBackTraceOverLanguageMethod:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Deque;)Z
            ifeq 31
        27: .line 302
      StackMap locals:
      StackMap stack:
            aload 12 /* parents */
            aload 1 /* m */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        28: .line 303
            aload 5 /* debugContext */
            iconst_5
            ldc "Added backtrace callee: %s for %s."
            aload 13 /* calleeName */
            aload 6 /* mName */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        29: .line 304
            iconst_1
            istore 7 /* callPathContainsTarget */
        30: .line 305
            goto 33
        31: .line 306
      StackMap locals:
      StackMap stack:
            aload 5 /* debugContext */
            iconst_5
            invokevirtual org.graalvm.compiler.debug.DebugContext.isLogEnabled:(I)Z
            ifeq 33
        32: .line 307
            aload 5 /* debugContext */
            iconst_5
            ldc "Ignoring backtrace callee: %s for %s."
            aload 13 /* calleeName */
            aload 6 /* mName */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 13 // java.lang.String calleeName
        end local 12 // java.util.Set parents
        end local 10 // com.oracle.graal.pointsto.meta.AnalysisMethod callee
        33: .line 283
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Set java.util.Map java.util.Deque org.graalvm.compiler.debug.DebugContext java.lang.String int com.oracle.graal.pointsto.flow.InvokeTypeFlow java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 8 // com.oracle.graal.pointsto.flow.InvokeTypeFlow invoke
        34: .line 282
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Set java.util.Map java.util.Deque org.graalvm.compiler.debug.DebugContext java.lang.String int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        35: .line 312
            aload 5 /* debugContext */
            iconst_5
            ldc "Exited method: %s."
            aload 6 /* mName */
            invokevirtual org.graalvm.compiler.debug.DebugContext.log:(ILjava/lang/String;Ljava/lang/Object;)V
        36: .line 313
            iload 7 /* callPathContainsTarget */
            istore 16
        37: .line 315
            aload 4 /* path */
            invokeinterface java.util.Deque.removeFirst:()Ljava/lang/Object;
            pop
        38: .line 313
            iload 16
            ireturn
        end local 7 // boolean callPathContainsTarget
        39: .line 314
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Set java.util.Map java.util.Deque org.graalvm.compiler.debug.DebugContext java.lang.String
      StackMap stack: java.lang.Throwable
            astore 15
        40: .line 315
            aload 4 /* path */
            invokeinterface java.util.Deque.removeFirst:()Ljava/lang/Object;
            pop
        41: .line 316
            aload 15
            athrow
        end local 6 // java.lang.String mName
        end local 5 // org.graalvm.compiler.debug.DebugContext debugContext
        end local 4 // java.util.Deque path
        end local 3 // java.util.Map visited
        end local 2 // java.util.Set targets
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod m
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   42     0                    this  Lcom/oracle/svm/truffle/tck/PermissionsFeature;
            0   42     1                       m  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0   42     2                 targets  Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            0   42     3                 visited  Ljava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;>;
            0   42     4                    path  Ljava/util/Deque<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            0   42     5            debugContext  Lorg/graalvm/compiler/debug/DebugContext;
            1   42     6                   mName  Ljava/lang/String;
            3   39     7  callPathContainsTarget  Z
            6   34     8                  invoke  Lcom/oracle/graal/pointsto/flow/InvokeTypeFlow;
            8   33    10                  callee  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            9   33    12                 parents  Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
           10   33    13              calleeName  Ljava/lang/String;
           21   25    14                     add  Z
      Exception table:
        from    to  target  type
           2    37      39  any
    Signature: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;Ljava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;>;Ljava/util/Deque<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;Lorg/graalvm/compiler/debug/DebugContext;)Z
    MethodParameters:
              Name  Flags
      m             
      targets       
      visited       
      path          
      debugContext  

  private static boolean isBacktrace(com.oracle.graal.pointsto.meta.AnalysisMethod, java.util.Deque<com.oracle.graal.pointsto.meta.AnalysisMethod>);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Deque;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        start local 1 // java.util.Deque path
         0: .line 326
            aload 1 /* path */
            aload 0 /* method */
            invokeinterface java.util.Deque.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.util.Deque path
        end local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0    1     1    path  Ljava/util/Deque<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
    Signature: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Deque<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;)Z
    MethodParameters:
        Name  Flags
      method  
      path    

  private static boolean isBackTraceOverLanguageMethod(com.oracle.graal.pointsto.meta.AnalysisMethod, java.util.Deque<com.oracle.graal.pointsto.meta.AnalysisMethod>);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Deque;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        start local 1 // java.util.Deque path
         0: .line 346
            aload 0 /* method */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.isCompilerClass:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
            ifne 2
            aload 0 /* method */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.isSystemClass:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
            ifne 2
         1: .line 347
            iconst_0
            ireturn
         2: .line 349
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* found */
        start local 2 // boolean found
         3: .line 350
            aload 1 /* path */
            invokeinterface java.util.Deque.descendingIterator:()Ljava/util/Iterator;
            astore 3 /* it */
        start local 3 // java.util.Iterator it
         4: goto 11
         5: .line 351
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 4 /* pe */
        start local 4 // com.oracle.graal.pointsto.meta.AnalysisMethod pe
         6: .line 352
            aload 0 /* method */
            aload 4 /* pe */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 353
            iconst_1
            istore 2 /* found */
         8: .line 354
            goto 11
      StackMap locals: com.oracle.graal.pointsto.meta.AnalysisMethod
      StackMap stack:
         9: iload 2 /* found */
            ifeq 11
            aload 4 /* pe */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.isCompilerClass:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
            ifne 11
            aload 4 /* pe */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.isSystemClass:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
            ifne 11
        10: .line 355
            iconst_1
            ireturn
        end local 4 // com.oracle.graal.pointsto.meta.AnalysisMethod pe
        11: .line 350
      StackMap locals:
      StackMap stack:
            aload 3 /* it */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 3 // java.util.Iterator it
        12: .line 358
            iconst_0
            ireturn
        end local 2 // boolean found
        end local 1 // java.util.Deque path
        end local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0  method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0   13     1    path  Ljava/util/Deque<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            3   13     2   found  Z
            4   12     3      it  Ljava/util/Iterator<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            6   11     4      pe  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    Signature: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Deque<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;)Z
    MethodParameters:
        Name  Flags
      method  
      path    

  private int collectViolations(java.util.List<? super java.util.List<com.oracle.graal.pointsto.meta.AnalysisMethod>>, com.oracle.graal.pointsto.meta.AnalysisMethod, int, int, java.util.Map<com.oracle.graal.pointsto.meta.AnalysisMethod, java.util.Set<com.oracle.graal.pointsto.meta.AnalysisMethod>>, java.util.Set<com.oracle.svm.truffle.tck.PermissionsFeature$CallGraphFilter>, java.util.LinkedHashSet<com.oracle.graal.pointsto.meta.AnalysisMethod>, int, );
    descriptor: (Ljava/util/List;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;IILjava/util/Map;Ljava/util/Set;Ljava/util/LinkedHashSet;II)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=17, args_size=10
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
        start local 1 // java.util.List report
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisMethod m
        start local 3 // int maxDepth
        start local 4 // int maxReports
        start local 5 // java.util.Map callGraph
        start local 6 // java.util.Set contextFilters
        start local 7 // java.util.LinkedHashSet visited
        start local 8 // int depth
        start local 9 // int noReports
         0: .line 384
            iload 9 /* noReports */
            istore 10 /* useNoReports */
        start local 10 // int useNoReports
         1: .line 385
            iload 10 /* useNoReports */
            iload 4 /* maxReports */
            if_icmplt 3
         2: .line 386
            iload 10 /* useNoReports */
            ireturn
         3: .line 388
      StackMap locals: int
      StackMap stack:
            iload 8 /* depth */
            iconst_1
            if_icmple 8
         4: .line 390
            aload 2 /* m */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.isCompilerClass:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
            ifeq 6
         5: .line 391
            iload 10 /* useNoReports */
            ireturn
         6: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* m */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature.isExcludedClass:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
            ifeq 8
         7: .line 395
            iload 10 /* useNoReports */
            ireturn
         8: .line 398
      StackMap locals:
      StackMap stack:
            aload 7 /* visited */
            aload 2 /* m */
            invokevirtual java.util.LinkedHashSet.contains:(Ljava/lang/Object;)Z
            ifne 34
         9: .line 399
            aload 7 /* visited */
            aload 2 /* m */
            invokevirtual java.util.LinkedHashSet.add:(Ljava/lang/Object;)Z
            pop
        10: .line 401
            aload 5 /* callGraph */
            aload 2 /* m */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 11 /* callers */
        start local 11 // java.util.Set callers
        11: .line 402
            iload 8 /* depth */
            iload 3 /* maxDepth */
            if_icmple 15
        12: .line 403
            aload 11 /* callers */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 33
        13: .line 404
            aload 0 /* this */
            aload 1 /* report */
            aload 11 /* callers */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            iload 3 /* maxDepth */
            iload 4 /* maxReports */
            aload 5 /* callGraph */
            aload 6 /* contextFilters */
            aload 7 /* visited */
            iload 8 /* depth */
            iconst_1
            iadd
            iload 10 /* useNoReports */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature.collectViolations:(Ljava/util/List;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;IILjava/util/Map;Ljava/util/Set;Ljava/util/LinkedHashSet;II)I
            istore 10 /* useNoReports */
        14: .line 406
            goto 33
      StackMap locals: java.util.Set
      StackMap stack:
        15: aload 2 /* m */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.isSystemClass:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
            ifne 20
            aload 0 /* this */
            aload 2 /* m */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature.isReflectionProxy:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
            ifne 20
        16: .line 407
            new java.util.ArrayList
            dup
            aload 7 /* visited */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 12 /* callPath */
        start local 12 // java.util.List callPath
        17: .line 408
            aload 1 /* report */
            aload 12 /* callPath */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 409
            iinc 10 /* useNoReports */ 1
        end local 12 // java.util.List callPath
        19: .line 410
            goto 33
        20: .line 411
      StackMap locals:
      StackMap stack:
            aload 11 /* callers */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 13
            goto 28
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature java.util.List com.oracle.graal.pointsto.meta.AnalysisMethod int int java.util.Map java.util.Set java.util.LinkedHashSet int int int java.util.Set top java.util.Iterator
      StackMap stack:
        21: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 12 /* caller */
        start local 12 // com.oracle.graal.pointsto.meta.AnalysisMethod caller
        22: .line 412
            aload 6 /* contextFilters */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 15
            goto 26
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature java.util.List com.oracle.graal.pointsto.meta.AnalysisMethod int int java.util.Map java.util.Set java.util.LinkedHashSet int int int java.util.Set com.oracle.graal.pointsto.meta.AnalysisMethod java.util.Iterator top java.util.Iterator
      StackMap stack:
        23: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.truffle.tck.PermissionsFeature$CallGraphFilter
            astore 14 /* filter */
        start local 14 // com.oracle.svm.truffle.tck.PermissionsFeature$CallGraphFilter filter
        24: .line 413
            aload 14 /* filter */
            aload 2 /* m */
            aload 12 /* caller */
            aload 7 /* visited */
            invokeinterface com.oracle.svm.truffle.tck.PermissionsFeature$CallGraphFilter.test:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/LinkedHashSet;)Z
            ifeq 26
        25: .line 414
            goto 28
        end local 14 // com.oracle.svm.truffle.tck.PermissionsFeature$CallGraphFilter filter
        26: .line 412
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        27: .line 417
            aload 0 /* this */
            aload 1 /* report */
            aload 12 /* caller */
            iload 3 /* maxDepth */
            iload 4 /* maxReports */
            aload 5 /* callGraph */
            aload 6 /* contextFilters */
            aload 7 /* visited */
            iload 8 /* depth */
            iconst_1
            iadd
            iload 10 /* useNoReports */
            invokevirtual com.oracle.svm.truffle.tck.PermissionsFeature.collectViolations:(Ljava/util/List;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;IILjava/util/Map;Ljava/util/Set;Ljava/util/LinkedHashSet;II)I
            istore 10 /* useNoReports */
        end local 12 // com.oracle.graal.pointsto.meta.AnalysisMethod caller
        28: .line 411
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature java.util.List com.oracle.graal.pointsto.meta.AnalysisMethod int int java.util.Map java.util.Set java.util.LinkedHashSet int int int java.util.Set top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        end local 11 // java.util.Set callers
        29: .line 420
            goto 33
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature java.util.List com.oracle.graal.pointsto.meta.AnalysisMethod int int java.util.Map java.util.Set java.util.LinkedHashSet int int int
      StackMap stack: java.lang.Throwable
        30: astore 16
        31: .line 421
            aload 7 /* visited */
            aload 2 /* m */
            invokevirtual java.util.LinkedHashSet.remove:(Ljava/lang/Object;)Z
            pop
        32: .line 422
            aload 16
            athrow
        33: .line 421
      StackMap locals:
      StackMap stack:
            aload 7 /* visited */
            aload 2 /* m */
            invokevirtual java.util.LinkedHashSet.remove:(Ljava/lang/Object;)Z
            pop
        34: .line 424
      StackMap locals:
      StackMap stack:
            iload 10 /* useNoReports */
            ireturn
        end local 10 // int useNoReports
        end local 9 // int noReports
        end local 8 // int depth
        end local 7 // java.util.LinkedHashSet visited
        end local 6 // java.util.Set contextFilters
        end local 5 // java.util.Map callGraph
        end local 4 // int maxReports
        end local 3 // int maxDepth
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisMethod m
        end local 1 // java.util.List report
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Lcom/oracle/svm/truffle/tck/PermissionsFeature;
            0   35     1          report  Ljava/util/List<-Ljava/util/List<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;>;
            0   35     2               m  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            0   35     3        maxDepth  I
            0   35     4      maxReports  I
            0   35     5       callGraph  Ljava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;>;
            0   35     6  contextFilters  Ljava/util/Set<Lcom/oracle/svm/truffle/tck/PermissionsFeature$CallGraphFilter;>;
            0   35     7         visited  Ljava/util/LinkedHashSet<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            0   35     8           depth  I
            0   35     9       noReports  I
            1   35    10    useNoReports  I
           11   29    11         callers  Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
           17   19    12        callPath  Ljava/util/List<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
           22   28    12          caller  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
           24   26    14          filter  Lcom/oracle/svm/truffle/tck/PermissionsFeature$CallGraphFilter;
      Exception table:
        from    to  target  type
          10    30      30  any
    Signature: (Ljava/util/List<-Ljava/util/List<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;>;Lcom/oracle/graal/pointsto/meta/AnalysisMethod;IILjava/util/Map<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;>;Ljava/util/Set<Lcom/oracle/svm/truffle/tck/PermissionsFeature$CallGraphFilter;>;Ljava/util/LinkedHashSet<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;II)I
    MethodParameters:
                Name  Flags
      report          
      m               
      maxDepth        
      maxReports      
      callGraph       
      contextFilters  
      visited         
      depth           
      noReports       

  private boolean isReflectionProxy(com.oracle.graal.pointsto.meta.AnalysisMethod);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod method
         0: .line 433
            aload 1 /* method */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getDeclaringClass:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getInterfaces:()[Lcom/oracle/graal/pointsto/meta/AnalysisType;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: com.oracle.svm.truffle.tck.PermissionsFeature com.oracle.graal.pointsto.meta.AnalysisMethod top int int com.oracle.graal.pointsto.meta.AnalysisType[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* iface */
        start local 2 // com.oracle.graal.pointsto.meta.AnalysisType iface
         2: .line 434
            aload 2 /* iface */
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature.reflectionProxy:Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 435
            iconst_1
            ireturn
        end local 2 // com.oracle.graal.pointsto.meta.AnalysisType iface
         4: .line 433
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 438
            iconst_0
            ireturn
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/svm/truffle/tck/PermissionsFeature;
            0    7     1  method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            2    4     2   iface  Lcom/oracle/graal/pointsto/meta/AnalysisType;
    MethodParameters:
        Name  Flags
      method  

  private static boolean isSystemClass(com.oracle.graal.pointsto.meta.AnalysisMethod);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
         0: .line 447
            aload 0 /* method */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getDeclaringClass:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getJavaClass:()Ljava/lang/Class;
            astore 1 /* clz */
        start local 1 // java.lang.Class clz
         1: .line 448
            aload 1 /* clz */
            ifnonnull 3
         2: .line 449
            iconst_0
            ireturn
         3: .line 451
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 1 /* clz */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            ifnull 4
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature.systemClassLoaders:Ljava/util/Set;
            aload 1 /* clz */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 4
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // java.lang.Class clz
        end local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            1    5     1     clz  Ljava/lang/Class<*>;
    MethodParameters:
        Name  Flags
      method  

  private static boolean isCompilerClass(com.oracle.graal.pointsto.meta.AnalysisMethod);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
         0: .line 461
            aload 0 /* method */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.getClassName:(Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Ljava/lang/String;
            getstatic com.oracle.svm.truffle.tck.PermissionsFeature.compilerPackages:Ljava/util/Set;
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.isClassInPackage:(Ljava/lang/String;Ljava/util/Collection;)Z
            ireturn
        end local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    MethodParameters:
        Name  Flags
      method  

  private boolean isExcludedClass(com.oracle.graal.pointsto.meta.AnalysisMethod);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod method
         0: .line 470
            aload 0 /* this */
            getfield com.oracle.svm.truffle.tck.PermissionsFeature.whiteList:Ljava/util/Set;
            aload 1 /* method */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisMethod method
        end local 0 // com.oracle.svm.truffle.tck.PermissionsFeature this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/svm/truffle/tck/PermissionsFeature;
            0    1     1  method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    MethodParameters:
        Name  Flags
      method  

  private static boolean isClassInPackage(java.lang.String, java.util.Collection<? extends java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Collection;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.String javaName
        start local 1 // java.util.Collection packages
         0: .line 481
            aload 1 /* packages */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.String java.util.Collection top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* pkg */
        start local 2 // java.lang.String pkg
         2: .line 482
            aload 0 /* javaName */
            aload 2 /* pkg */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 483
            iconst_1
            ireturn
        end local 2 // java.lang.String pkg
         4: .line 481
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 486
            iconst_0
            ireturn
        end local 1 // java.util.Collection packages
        end local 0 // java.lang.String javaName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  javaName  Ljava/lang/String;
            0    6     1  packages  Ljava/util/Collection<+Ljava/lang/String;>;
            2    4     2       pkg  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/util/Collection<+Ljava/lang/String;>;)Z
    MethodParameters:
          Name  Flags
      javaName  
      packages  

  private static java.util.Set<com.oracle.graal.pointsto.meta.AnalysisMethod> findMethods(com.oracle.graal.pointsto.BigBang, java.lang.Class<?>, java.util.function.Predicate<jdk.vm.ci.meta.ResolvedJavaMethod>);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Ljava/lang/Class;Ljava/util/function/Predicate;)Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.oracle.graal.pointsto.BigBang bigBang
        start local 1 // java.lang.Class owner
        start local 2 // java.util.function.Predicate filter
         0: .line 499
            aload 0 /* bigBang */
            aload 1 /* owner */
            invokevirtual com.oracle.graal.pointsto.BigBang.forClass:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
            astore 3 /* clazz */
        start local 3 // com.oracle.graal.pointsto.meta.AnalysisType clazz
         1: .line 500
            aload 3 /* clazz */
            ifnonnull 3
         2: .line 501
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot resolve "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* owner */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 503
      StackMap locals: com.oracle.graal.pointsto.meta.AnalysisType
      StackMap stack:
            aload 0 /* bigBang */
            aload 3 /* clazz */
            aload 2 /* filter */
            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;
            areturn
        end local 3 // com.oracle.graal.pointsto.meta.AnalysisType clazz
        end local 2 // java.util.function.Predicate filter
        end local 1 // java.lang.Class owner
        end local 0 // com.oracle.graal.pointsto.BigBang bigBang
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  bigBang  Lcom/oracle/graal/pointsto/BigBang;
            0    4     1    owner  Ljava/lang/Class<*>;
            0    4     2   filter  Ljava/util/function/Predicate<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
            1    4     3    clazz  Lcom/oracle/graal/pointsto/meta/AnalysisType;
    Signature: (Lcom/oracle/graal/pointsto/BigBang;Ljava/lang/Class<*>;Ljava/util/function/Predicate<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;)Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
    MethodParameters:
         Name  Flags
      bigBang  
      owner    
      filter   

  static java.util.Set<com.oracle.graal.pointsto.meta.AnalysisMethod> findMethods(com.oracle.graal.pointsto.BigBang, com.oracle.graal.pointsto.meta.AnalysisType, java.util.function.Predicate<jdk.vm.ci.meta.ResolvedJavaMethod>);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisType;Ljava/util/function/Predicate;)Ljava/util/Set;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.BigBang bigBang
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisType owner
        start local 2 // java.util.function.Predicate filter
         0: .line 515
            aload 0 /* bigBang */
            aload 1 /* owner */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getWrappedWithoutResolve:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredMethods:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 2 /* filter */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.findImpl:(Lcom/oracle/graal/pointsto/BigBang;[Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/util/function/Predicate;)Ljava/util/Set;
            areturn
        end local 2 // java.util.function.Predicate filter
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisType owner
        end local 0 // com.oracle.graal.pointsto.BigBang bigBang
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  bigBang  Lcom/oracle/graal/pointsto/BigBang;
            0    1     1    owner  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            0    1     2   filter  Ljava/util/function/Predicate<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
    Signature: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisType;Ljava/util/function/Predicate<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;)Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
    MethodParameters:
         Name  Flags
      bigBang  
      owner    
      filter   

  static java.util.Set<com.oracle.graal.pointsto.meta.AnalysisMethod> findConstructors(com.oracle.graal.pointsto.BigBang, com.oracle.graal.pointsto.meta.AnalysisType, java.util.function.Predicate<jdk.vm.ci.meta.ResolvedJavaMethod>);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisType;Ljava/util/function/Predicate;)Ljava/util/Set;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.graal.pointsto.BigBang bigBang
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisType owner
        start local 2 // java.util.function.Predicate filter
         0: .line 528
            aload 0 /* bigBang */
            aload 1 /* owner */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getWrappedWithoutResolve:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredConstructors:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 2 /* filter */
            invokestatic com.oracle.svm.truffle.tck.PermissionsFeature.findImpl:(Lcom/oracle/graal/pointsto/BigBang;[Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/util/function/Predicate;)Ljava/util/Set;
            areturn
        end local 2 // java.util.function.Predicate filter
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisType owner
        end local 0 // com.oracle.graal.pointsto.BigBang bigBang
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  bigBang  Lcom/oracle/graal/pointsto/BigBang;
            0    1     1    owner  Lcom/oracle/graal/pointsto/meta/AnalysisType;
            0    1     2   filter  Ljava/util/function/Predicate<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
    Signature: (Lcom/oracle/graal/pointsto/BigBang;Lcom/oracle/graal/pointsto/meta/AnalysisType;Ljava/util/function/Predicate<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;)Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
    MethodParameters:
         Name  Flags
      bigBang  
      owner    
      filter   

  private static java.util.Set<com.oracle.graal.pointsto.meta.AnalysisMethod> findImpl(com.oracle.graal.pointsto.BigBang, jdk.vm.ci.meta.ResolvedJavaMethod[], java.util.function.Predicate<jdk.vm.ci.meta.ResolvedJavaMethod>);
    descriptor: (Lcom/oracle/graal/pointsto/BigBang;[Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/util/function/Predicate;)Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // com.oracle.graal.pointsto.BigBang bigBang
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod[] methods
        start local 2 // java.util.function.Predicate filter
         0: .line 532
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* result */
        start local 3 // java.util.Set result
         1: .line 533
            aload 1 /* methods */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 6
      StackMap locals: com.oracle.graal.pointsto.BigBang jdk.vm.ci.meta.ResolvedJavaMethod[] java.util.function.Predicate java.util.Set top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* m */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaMethod m
         3: .line 534
            aload 2 /* filter */
            aload 4 /* m */
            invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 535
            aload 3 /* result */
            aload 0 /* bigBang */
            invokevirtual com.oracle.graal.pointsto.BigBang.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            aload 4 /* m */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.lookup:(Ljdk/vm/ci/meta/JavaMethod;)Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // jdk.vm.ci.meta.ResolvedJavaMethod m
         5: .line 533
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         6: iload 5
            iload 6
            if_icmplt 2
         7: .line 538
            aload 3 /* result */
            areturn
        end local 3 // java.util.Set result
        end local 2 // java.util.function.Predicate filter
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod[] methods
        end local 0 // com.oracle.graal.pointsto.BigBang bigBang
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  bigBang  Lcom/oracle/graal/pointsto/BigBang;
            0    8     1  methods  [Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    8     2   filter  Ljava/util/function/Predicate<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
            1    8     3   result  Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            3    5     4        m  Ljdk/vm/ci/meta/ResolvedJavaMethod;
    Signature: (Lcom/oracle/graal/pointsto/BigBang;[Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/util/function/Predicate<Ljdk/vm/ci/meta/ResolvedJavaMethod;>;)Ljava/util/Set<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
    MethodParameters:
         Name  Flags
      bigBang  
      methods  
      filter   

  private static java.lang.String getMethodName(com.oracle.graal.pointsto.meta.AnalysisMethod);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
         0: .line 547
            aload 0 /* method */
            ldc "%H.%n(%p)"
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    MethodParameters:
        Name  Flags
      method  

  private static java.lang.String getClassName(com.oracle.graal.pointsto.meta.AnalysisMethod);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMethod;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
         0: .line 556
            aload 0 /* method */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getDeclaringClass:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.toJavaName:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.graal.pointsto.meta.AnalysisMethod method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  method  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
    MethodParameters:
        Name  Flags
      method  

  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 200
            aload 0 /* m */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            ldc "check"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)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=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod m
         0: .line 201
            aload 0 /* m */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isPublic:()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$2(jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod m
         0: .line 206
            aload 0 /* m */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isPublic:()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 void lambda$3(java.util.List, java.io.PrintWriter);
    descriptor: (Ljava/util/List;Ljava/io/PrintWriter;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=7, args_size=2
        start local 1 // java.io.PrintWriter pw
         0: .line 229
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* builder */
        start local 2 // java.lang.StringBuilder builder
         1: .line 230
            aload 0
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: java.util.List java.io.PrintWriter java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* callPath */
        start local 3 // java.util.List callPath
         3: .line 231
            aload 3 /* callPath */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: java.util.List java.io.PrintWriter java.lang.StringBuilder java.util.List java.util.Iterator top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
            astore 5 /* call */
        start local 5 // com.oracle.graal.pointsto.meta.AnalysisMethod call
         5: .line 232
            aload 2 /* builder */
            aload 5 /* call */
            iconst_0
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.asStackTraceElement:(I)Ljava/lang/StackTraceElement;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 5 // com.oracle.graal.pointsto.meta.AnalysisMethod call
         6: .line 231
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 234
            aload 2 /* builder */
            bipush 10
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.util.List callPath
         8: .line 230
      StackMap locals: java.util.List java.io.PrintWriter java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         9: .line 236
            aload 1 /* pw */
            aload 2 /* builder */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/Object;)V
        end local 2 // java.lang.StringBuilder builder
        10: .line 237
            return
        end local 1 // java.io.PrintWriter pw
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     1        pw  Ljava/io/PrintWriter;
            1   10     2   builder  Ljava/lang/StringBuilder;
            3    8     3  callPath  Ljava/util/List<Lcom/oracle/graal/pointsto/meta/AnalysisMethod;>;
            5    6     5      call  Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
}
SourceFile: "PermissionsFeature.java"
NestMembers:
  com.oracle.svm.truffle.tck.PermissionsFeature$CallGraphFilter  com.oracle.svm.truffle.tck.PermissionsFeature$IsEnabled  com.oracle.svm.truffle.tck.PermissionsFeature$Options  com.oracle.svm.truffle.tck.PermissionsFeature$ResourceAsOptionDecorator  com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer  com.oracle.svm.truffle.tck.PermissionsFeature$SafePrivilegedRecognizer  com.oracle.svm.truffle.tck.PermissionsFeature$SafeServiceLoaderRecognizer
InnerClasses:
  public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
  public AfterAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$AfterAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
  public DuringSetupAccessImpl = com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl of com.oracle.svm.hosted.FeatureImpl
  private abstract CallGraphFilter = com.oracle.svm.truffle.tck.PermissionsFeature$CallGraphFilter of com.oracle.svm.truffle.tck.PermissionsFeature
  final IsEnabled = com.oracle.svm.truffle.tck.PermissionsFeature$IsEnabled of com.oracle.svm.truffle.tck.PermissionsFeature
  public Options = com.oracle.svm.truffle.tck.PermissionsFeature$Options of com.oracle.svm.truffle.tck.PermissionsFeature
  private final ResourceAsOptionDecorator = com.oracle.svm.truffle.tck.PermissionsFeature$ResourceAsOptionDecorator of com.oracle.svm.truffle.tck.PermissionsFeature
  private final SafeInterruptRecognizer = com.oracle.svm.truffle.tck.PermissionsFeature$SafeInterruptRecognizer of com.oracle.svm.truffle.tck.PermissionsFeature
  private final SafePrivilegedRecognizer = com.oracle.svm.truffle.tck.PermissionsFeature$SafePrivilegedRecognizer 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
  public abstract Scope = org.graalvm.compiler.debug.DebugContext$Scope of org.graalvm.compiler.debug.DebugContext
  public abstract AfterAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$AfterAnalysisAccess of org.graalvm.nativeimage.hosted.Feature
  public abstract DuringSetupAccess = org.graalvm.nativeimage.hosted.Feature$DuringSetupAccess of org.graalvm.nativeimage.hosted.Feature