final class com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection 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$LegacyLoader$LegacyLanguageReflection
  super_class: com.oracle.truffle.polyglot.LanguageCache$LanguageReflection
{
  private final java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.ClassLoader loader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String className;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<java.lang.String> fileTypeDetectorClassNames;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private volatile java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>> languageClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;

  private volatile com.oracle.truffle.api.TruffleLanguage$ContextPolicy policy;
    descriptor: Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile java.util.List<? extends 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 671
            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$LegacyLoader$LegacyLanguageReflection.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.String, java.lang.ClassLoader, java.lang.String, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
        start local 1 // java.lang.String name
        start local 2 // java.lang.ClassLoader loader
        start local 3 // java.lang.String className
        start local 4 // java.util.List fileTypeDetectorClassNames
         0: .line 681
            aload 0 /* this */
            invokespecial com.oracle.truffle.polyglot.LanguageCache$LanguageReflection.<init>:()V
         1: .line 682
            aload 1 /* name */
            ldc "Name must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 683
            aload 2 /* loader */
            ldc "Loader must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         3: .line 684
            aload 3 /* className */
            ldc "ClassName must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         4: .line 685
            aload 4 /* fileTypeDetectorClassNames */
            ldc "FileTypeDetectorClassNames must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         5: .line 686
            aload 0 /* this */
            aload 1 /* name */
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.name:Ljava/lang/String;
         6: .line 687
            aload 0 /* this */
            aload 2 /* loader */
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.loader:Ljava/lang/ClassLoader;
         7: .line 688
            aload 0 /* this */
            aload 3 /* className */
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.className:Ljava/lang/String;
         8: .line 689
            aload 0 /* this */
            aload 4 /* fileTypeDetectorClassNames */
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.fileTypeDetectorClassNames:Ljava/util/List;
         9: .line 690
            return
        end local 4 // java.util.List fileTypeDetectorClassNames
        end local 3 // java.lang.String className
        end local 2 // java.lang.ClassLoader loader
        end local 1 // java.lang.String name
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   10     0                        this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
            0   10     1                        name  Ljava/lang/String;
            0   10     2                      loader  Ljava/lang/ClassLoader;
            0   10     3                   className  Ljava/lang/String;
            0   10     4  fileTypeDetectorClassNames  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                            Name  Flags
      name                        
      loader                      
      className                   
      fileTypeDetectorClassNames  

  com.oracle.truffle.api.TruffleLanguage<?> newInstance();
    descriptor: ()Lcom/oracle/truffle/api/TruffleLanguage;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
         0: .line 695
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.getLanguageClass:()Ljava/lang/Class;
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLanguage
         1: areturn
         2: .line 696
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 697
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot create instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " language implementation. Public default constructor expected in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.className: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;
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
            3    4     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    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=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
         0: .line 703
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.initializeFileTypeDetectors:()V
         1: .line 704
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.fileTypeDetectors:Ljava/util/List;
            areturn
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
    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$LegacyLoader$LegacyLanguageReflection this
         0: .line 709
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.initializeLanguageClass:()V
         1: .line 710
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.policy:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
            areturn
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;

  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$LegacyLoader$LegacyLanguageReflection this
         0: .line 716
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.initializeLanguageClass:()V
         1: .line 717
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.languageClass: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 1 /* tags */
        start local 1 // com.oracle.truffle.api.instrumentation.ProvidedTags tags
         2: .line 718
            aload 1 /* tags */
            ifnonnull 4
         3: .line 719
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            areturn
         4: .line 721
      StackMap locals: com.oracle.truffle.api.instrumentation.ProvidedTags
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* result */
        start local 2 // java.util.Set result
         5: .line 722
            aload 2 /* result */
            aload 1 /* 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
         6: .line 723
            aload 2 /* result */
            areturn
        end local 2 // java.util.Set result
        end local 1 // com.oracle.truffle.api.instrumentation.ProvidedTags tags
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
            2    7     1    tags  Lcom/oracle/truffle/api/instrumentation/ProvidedTags;
            5    7     2  result  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
    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=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
         0: .line 728
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.initializeLanguageClass:()V
         1: .line 729
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.initializeFileTypeDetectors:()V
         2: .line 730
            getstatic com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.languageClass:Ljava/lang/Class;
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 731
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.policy:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 732
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.languageClass:Ljava/lang/Class;
            areturn
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
    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$LegacyLoader$LegacyLanguageReflection this
        start local 1 // com.oracle.truffle.polyglot.LanguageCache$LanguageReflection other
         0: .line 737
            aload 1 /* other */
            instanceof com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection
            ifeq 3
         1: .line 738
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.loadUnitialized:()Ljava/lang/Class;
            aload 1 /* other */
            checkcast com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection
            invokevirtual com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.loadUnitialized:()Ljava/lang/Class;
            if_acmpne 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 740
      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$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
            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$LegacyLoader$LegacyLanguageReflection this
         0: .line 745
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.getLanguageClass:()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 746
            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$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
            1    4     1  source  Ljava/security/CodeSource;

  private java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>> loadUnitialized();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
         0: .line 752
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.className:Ljava/lang/String;
            iconst_0
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.loader:Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
         1: areturn
         2: .line 753
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 1 /* e */
        start local 1 // java.lang.ClassNotFoundException e
         3: .line 754
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot load language "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". Language implementation class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.className:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " failed to load."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.ClassNotFoundException e
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
            3    4     1     e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.ClassNotFoundException
    Signature: ()Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;

  private java.lang.Class<? extends com.oracle.truffle.api.TruffleLanguage<?>> getLanguageClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
         0: .line 759
            getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
            ifne 2
         1: .line 760
            aload 0 /* this */
            invokevirtual com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.initializeLanguageClass:()V
         2: .line 762
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.languageClass:Ljava/lang/Class;
            areturn
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
    Signature: ()Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleLanguage<*>;>;

  private void initializeLanguageClass();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
         0: .line 767
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.languageClass:Ljava/lang/Class;
            ifnonnull 18
         1: .line 768
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 769
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.languageClass:Ljava/lang/Class;
            ifnonnull 14
         3: .line 771
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.loader:Ljava/lang/ClassLoader;
            invokestatic com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader.exportTruffle:(Ljava/lang/ClassLoader;)V
         4: .line 773
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.className:Ljava/lang/String;
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.loader:Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 2 /* loadedClass */
        start local 2 // java.lang.Class loadedClass
         5: .line 774
            aload 2 /* loadedClass */
            ldc Lcom/oracle/truffle/api/TruffleLanguage$Registration;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.truffle.api.TruffleLanguage$Registration
            astore 3 /* reg */
        start local 3 // com.oracle.truffle.api.TruffleLanguage$Registration reg
         6: .line 775
            aload 3 /* reg */
            ifnonnull 9
         7: .line 776
            aload 0 /* this */
            getstatic com.oracle.truffle.api.TruffleLanguage$ContextPolicy.EXCLUSIVE:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.policy:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
         8: .line 777
            goto 10
         9: .line 778
      StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection java.lang.Class com.oracle.truffle.api.TruffleLanguage$Registration
      StackMap stack:
            aload 0 /* this */
            aload 2 /* loadedClass */
            ldc Lcom/oracle/truffle/api/TruffleLanguage$Registration;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.truffle.api.TruffleLanguage$Registration
            invokeinterface com.oracle.truffle.api.TruffleLanguage$Registration.contextPolicy:()Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.policy:Lcom/oracle/truffle/api/TruffleLanguage$ContextPolicy;
        10: .line 780
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* loadedClass */
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.languageClass:Ljava/lang/Class;
        end local 3 // com.oracle.truffle.api.TruffleLanguage$Registration reg
        end local 2 // java.lang.Class loadedClass
        11: .line 781
            goto 14
      StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection
      StackMap stack: java.lang.ClassNotFoundException
        12: astore 2 /* e */
        start local 2 // java.lang.ClassNotFoundException e
        13: .line 782
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot load language "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ". Language implementation class "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.className:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " failed to load."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.ClassNotFoundException e
        14: .line 768
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 1
            monitorexit
        17: athrow
        18: .line 787
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
            5   11     2  loadedClass  Ljava/lang/Class<*>;
            6   11     3          reg  Lcom/oracle/truffle/api/TruffleLanguage$Registration;
           13   14     2            e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
           3    11      12  Class java.lang.ClassNotFoundException
           2    15      16  any
          16    17      16  any

  private void initializeFileTypeDetectors();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
         0: .line 790
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.fileTypeDetectors:Ljava/util/List;
            ifnonnull 19
         1: .line 791
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 792
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.fileTypeDetectors:Ljava/util/List;
            ifnonnull 15
         3: .line 793
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.loader:Ljava/lang/ClassLoader;
            invokestatic com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader.exportTruffle:(Ljava/lang/ClassLoader;)V
         4: .line 795
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.fileTypeDetectorClassNames:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* instances */
        start local 2 // java.util.List instances
         5: .line 796
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.fileTypeDetectorClassNames:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection java.util.List top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* fileTypeDetectorClassName */
        start local 3 // java.lang.String fileTypeDetectorClassName
         7: .line 798
            aload 3 /* fileTypeDetectorClassName */
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.loader:Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            ldc Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 5 /* detectorClass */
        start local 5 // java.lang.Class detectorClass
         8: .line 799
            aload 5 /* detectorClass */
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleFile$FileTypeDetector
            astore 6 /* instance */
        start local 6 // com.oracle.truffle.api.TruffleFile$FileTypeDetector instance
         9: .line 800
            aload 2 /* instances */
            aload 6 /* instance */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // com.oracle.truffle.api.TruffleFile$FileTypeDetector instance
        end local 5 // java.lang.Class detectorClass
        10: .line 801
            goto 13
      StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection java.util.List java.lang.String java.util.Iterator
      StackMap stack: java.lang.ReflectiveOperationException
        11: astore 5 /* e */
        start local 5 // java.lang.ReflectiveOperationException e
        12: .line 802
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot instantiate FileTypeDetector, class  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* fileTypeDetectorClassName */
            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;
            aload 5 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.ReflectiveOperationException e
        end local 3 // java.lang.String fileTypeDetectorClassName
        13: .line 796
      StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        14: .line 805
            aload 0 /* this */
            aload 2 /* instances */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putfield com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection.fileTypeDetectors:Ljava/util/List;
        end local 2 // java.util.List instances
        15: .line 791
      StackMap locals: com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection
      StackMap stack:
            aload 1
            monitorexit
        16: goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: aload 1
            monitorexit
        18: athrow
        19: .line 809
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   20     0                       this  Lcom/oracle/truffle/polyglot/LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection;
            5   15     2                  instances  Ljava/util/List<Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;
            7   13     3  fileTypeDetectorClassName  Ljava/lang/String;
            8   10     5              detectorClass  Ljava/lang/Class<+Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;>;
            9   10     6                   instance  Lcom/oracle/truffle/api/TruffleFile$FileTypeDetector;
           12   13     5                          e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           7    10      11  Class java.lang.ReflectiveOperationException
           2    16      17  any
          17    18      17  any
}
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 Registration = com.oracle.truffle.api.TruffleLanguage$Registration 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 LegacyLoader = com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader of com.oracle.truffle.polyglot.LanguageCache$Loader
  private final LegacyLanguageReflection = com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader$LegacyLanguageReflection of com.oracle.truffle.polyglot.LanguageCache$Loader$LegacyLoader