abstract class com.oracle.truffle.polyglot.LanguageCache$LanguageReflection
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.polyglot.LanguageCache$LanguageReflection
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$LanguageReflection this
         0: .line 411
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$LanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;

  abstract com.oracle.truffle.api.TruffleLanguage<?> newInstance();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage;
    flags: (0x0400) ACC_ABSTRACT
    Signature: ()Lcom/oracle/truffle/api/TruffleLanguage<*>;

  abstract java.util.List<? extends com.oracle.truffle.api.TruffleFile$FileTypeDetector> getFileTypeDetectors();
    descriptor: ()Ljava/util/List;
    flags: (0x0400) ACC_ABSTRACT
    Signature: ()Ljava/util/List<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;

  abstract com.oracle.truffle.api.TruffleLanguage$ContextPolicy getContextPolicy();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
    flags: (0x0400) ACC_ABSTRACT

  abstract java.util.Set<? extends java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>> getProvidedTags();
    descriptor: ()Ljava/util/Set;
    flags: (0x0400) ACC_ABSTRACT
    Signature: ()Ljava/util/Set<+Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;

  abstract java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>> aotInitializeAtBuildTime();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0400) ACC_ABSTRACT
    Signature: ()Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;

  abstract boolean hasSameCodeSource(com.oracle.truffle.polyglot.LanguageCache$LanguageReflection);
    descriptor: (Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;)Z
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      other  

  abstract java.net.URL getCodeSource();
    descriptor: ()Ljava/net/URL;
    flags: (0x0400) ACC_ABSTRACT

  static com.oracle.truffle.polyglot.LanguageCache$LanguageReflection forLanguageInstance(com.oracle.truffle.api.TruffleLanguage<?>, com.oracle.truffle.api.TruffleLanguage$ContextPolicy, com.oracle.truffle.api.TruffleFile$FileTypeDetector[]);
    descriptor: (Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;[Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;)Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
    flags: (0x0088) ACC_STATIC, ACC_VARARGS
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.TruffleLanguage language
        start local 1 // com.oracle.truffle.api.TruffleLanguage$ContextPolicy contextPolycy
        start local 2 // com.oracle.truffle.api.TruffleFile$FileTypeDetector[] fileTypeDetectors
         0: .line 428
            new com.oracle.truffle.polyglot.LanguageCache$LanguageReflection$LanguageInstanceReflection
            dup
            aload 0 /* language */
            aload 1 /* contextPolycy */
            aload 2 /* fileTypeDetectors */
            invokespecial com.oracle.truffle.polyglot.LanguageCache$LanguageReflection$LanguageInstanceReflection.<init>:(Lcom/oracle/truffle/api/TruffleLanguage;Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;[Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;)V
            areturn
        end local 2 // com.oracle.truffle.api.TruffleFile$FileTypeDetector[] fileTypeDetectors
        end local 1 // com.oracle.truffle.api.TruffleLanguage$ContextPolicy contextPolycy
        end local 0 // com.oracle.truffle.api.TruffleLanguage language
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0           language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            0    1     1      contextPolycy  Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
            0    1     2  fileTypeDetectors  [Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;
    Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;[Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;)Lcom/oracle/truffle/polyglot/LanguageCache$LanguageReflection;
    MethodParameters:
                   Name  Flags
      language           
      contextPolycy      
      fileTypeDetectors  
}
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
  private abstract LanguageReflection = com.oracle.truffle.polyglot.LanguageCache$LanguageReflection of com.oracle.truffle.polyglot.LanguageCache
  private final LanguageInstanceReflection = com.oracle.truffle.polyglot.LanguageCache$LanguageReflection$LanguageInstanceReflection of com.oracle.truffle.polyglot.LanguageCache$LanguageReflection