final class com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection extends com.oracle.truffle.polyglot.LanguageCache$LanguageReflection
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection
  super_class: com.oracle.truffle.polyglot.LanguageCache$LanguageReflection
{
  private final com.oracle.truffle.api.TruffleLanguage$Provider provider;
    descriptor: Lcom/oracle/truffle/api/TruffleLanguage$Provider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.TruffleLanguage$ContextPolicy contextPolicy;
    descriptor: Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>> providedTags;
    descriptor: Ljava/util/Set;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;

  private volatile java.util.List<com.oracle.truffle.api.TruffleFile$FileTypeDetector> fileTypeDetectors;
    descriptor: Ljava/util/List;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/util/List<Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 879
            ldc Lcom/oracle/truffle/polyglot/LanguageCache;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(com.oracle.truffle.api.TruffleLanguage$Provider, com.oracle.truffle.api.TruffleLanguage$ContextPolicy);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage$Provider;Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
        start local 1 // com.oracle.truffle.api.TruffleLanguage$Provider provider
        start local 2 // com.oracle.truffle.api.TruffleLanguage$ContextPolicy contextPolicy
         0: .line 886
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.<init>:()V
         1: .line 887
            getstatic com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.$assertionsDisabled:Z
            ifne 2
            aload 1 /* provider */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 888
      StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection com.oracle.truffle.api.TruffleLanguage$Provider com.oracle.truffle.api.TruffleLanguage$ContextPolicy
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.$assertionsDisabled:Z
            ifne 3
            aload 2 /* contextPolicy */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 889
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* provider */
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.provider:Lcom/oracle/truffle/api/TruffleLanguage$Provider;
         4: .line 890
            aload 0 /* this */
            aload 2 /* contextPolicy */
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.contextPolicy:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
         5: .line 891
            return
        end local 2 // com.oracle.truffle.api.TruffleLanguage$ContextPolicy contextPolicy
        end local 1 // com.oracle.truffle.api.TruffleLanguage$Provider provider
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection;
            0    6     1       provider  Lcom/oracle/truffle/api/TruffleLanguage$Provider;
            0    6     2  contextPolicy  Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
    MethodParameters:
               Name  Flags
      provider       
      contextPolicy  

  com.oracle.truffle.api.TruffleLanguage<?> newInstance();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
         0: .line 895
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.provider:Lcom/oracle/truffle/api/TruffleLanguage$Provider;
            invokeinterface com.oracle.truffle.api.TruffleLanguage$Provider.create:()Lcom/oracle/truffle/api/TruffleLanguage;
            areturn
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection;
    Signature: ()Lcom/oracle/truffle/api/TruffleLanguage<*>;

  java.util.List<? extends com.oracle.truffle.api.TruffleFile$FileTypeDetector> getFileTypeDetectors();
    descriptor: ()Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
         0: .line 900
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.fileTypeDetectors:Ljava/util/List;
            astore 1 /* result */
        start local 1 // java.util.List result
         1: .line 901
            aload 1 /* result */
            ifnonnull 4
         2: .line 902
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.provider:Lcom/oracle/truffle/api/TruffleLanguage$Provider;
            invokeinterface com.oracle.truffle.api.TruffleLanguage$Provider.createFileTypeDetectors:()Ljava/util/List;
            astore 1 /* result */
         3: .line 903
            aload 0 /* this */
            aload 1 /* result */
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.fileTypeDetectors:Ljava/util/List;
         4: .line 905
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // java.util.List result
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection;
            1    5     1  result  Ljava/util/List<Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;
    Signature: ()Ljava/util/List<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;

  com.oracle.truffle.api.TruffleLanguage$ContextPolicy getContextPolicy();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
         0: .line 910
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.contextPolicy:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
            areturn
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection;

  java.util.Set<? extends java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>> getProvidedTags();
    descriptor: ()Ljava/util/Set;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
         0: .line 916
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.providedTags:Ljava/util/Set;
            astore 1 /* res */
        start local 1 // java.util.Set res
         1: .line 917
            aload 1 /* res */
            ifnonnull 10
         2: .line 918
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.provider:Lcom/oracle/truffle/api/TruffleLanguage$Provider;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Lcom/oracle/truffle/api/instrumentation/ProvidedTags;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.truffle.api.instrumentation.ProvidedTags
            astore 2 /* tags */
        start local 2 // com.oracle.truffle.api.instrumentation.ProvidedTags tags
         3: .line 919
            aload 2 /* tags */
            ifnonnull 6
         4: .line 920
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            astore 1 /* res */
         5: .line 921
            goto 9
         6: .line 922
      StackMap locals: java.util.Set com.oracle.truffle.api.instrumentation.ProvidedTags
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* res */
         7: .line 923
            aload 1 /* res */
            aload 2 /* tags */
            invokeinterface com.oracle.truffle.api.instrumentation.ProvidedTags.value:()[Ljava/lang/Class;
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         8: .line 924
            aload 1 /* res */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            astore 1 /* res */
         9: .line 926
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* res */
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.providedTags:Ljava/util/Set;
        end local 2 // com.oracle.truffle.api.instrumentation.ProvidedTags tags
        10: .line 928
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            areturn
        end local 1 // java.util.Set res
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection;
            1   11     1   res  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
            3   10     2  tags  Lcom/oracle/truffle/api/instrumentation/ProvidedTags;
    Signature: ()Ljava/util/Set<+Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;

  java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>> aotInitializeAtBuildTime();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
         0: .line 933
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection;
    Signature: ()Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;

  boolean hasSameCodeSource(com.oracle.truffle.polyglot.LanguageCache$LanguageReflection);
    descriptor: (Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
        start local 1 // com.oracle.truffle.polyglot.LanguageCache$LanguageReflection other
         0: .line 938
            aload 1 /* other */
            instanceof com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection
            ifeq 3
         1: .line 939
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.provider:Lcom/oracle/truffle/api/TruffleLanguage$Provider;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* other */
            checkcast com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.provider:Lcom/oracle/truffle/api/TruffleLanguage$Provider;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpne 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 941
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // com.oracle.truffle.polyglot.LanguageCache$LanguageReflection other
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection;
            0    4     1  other  Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
    MethodParameters:
       Name  Flags
      other  

  java.net.URL getCodeSource();
    descriptor: ()Ljava/net/URL;
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
         0: .line 946
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection.provider:Lcom/oracle/truffle/api/TruffleLanguage$Provider;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
            invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
            astore 1 /* source */
        start local 1 // java.security.CodeSource source
         1: .line 947
            aload 1 /* source */
            ifnull 2
            aload 1 /* source */
            invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
            goto 3
      StackMap locals: java.security.CodeSource
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: java.net.URL
         3: areturn
        end local 1 // java.security.CodeSource source
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection;
            1    4     1  source  Ljava/security/CodeSource;
}
SourceFile: "LanguageCache.java"
NestHost: com.oracle.truffle.polyglot.LanguageCache
InnerClasses:
  public abstract FileTypeDetector = com.oracle.truffle.api.TruffleFile$FileTypeDetector of com.oracle.truffle.api.TruffleFile
  public final ContextPolicy = com.oracle.truffle.api.TruffleLanguage$ContextPolicy of com.oracle.truffle.api.TruffleLanguage
  public abstract Provider = com.oracle.truffle.api.TruffleLanguage$Provider of com.oracle.truffle.api.TruffleLanguage
  private abstract LanguageReflection = com.oracle.truffle.polyglot.LanguageCache$LanguageReflection of com.oracle.truffle.polyglot.LanguageCache
  private abstract Loader = com.oracle.truffle.polyglot.LanguageCache$Loader of com.oracle.truffle.polyglot.LanguageCache
  private final ServicesLoader = com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader of com.oracle.truffle.polyglot.LanguageCache$Loader
  private final ServiceLoaderLanguageReflection = com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader$ServiceLoaderLanguageReflection of com.oracle.truffle.polyglot.LanguageCache$Loader$ServicesLoader