final class com.oracle.truffle.dsl.processor.java.ModuleCache
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.dsl.processor.java.ModuleCache
  super_class: java.lang.Object
{
  private static final java.util.Map<javax.annotation.processing.ProcessingEnvironment, java.util.Map<java.lang.String, javax.lang.model.element.ModuleElement>> moduleCacheCleaner;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljavax/annotation/processing/ProcessingEnvironment;Ljava/util/Map<Ljava/lang/String;Ljavax/lang/model/element/ModuleElement;>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 53
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            putstatic com.oracle.truffle.dsl.processor.java.ModuleCache.moduleCacheCleaner:Ljava/util/Map;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.dsl.processor.java.ModuleCache this
         0: .line 55
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 56
            new java.lang.IllegalStateException
            dup
            ldc "Cannot instantiate."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.dsl.processor.java.ModuleCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/dsl/processor/java/ModuleCache;

  static javax.lang.model.element.TypeElement getTypeElement(javax.annotation.processing.ProcessingEnvironment, java.lang.CharSequence);
    descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // javax.annotation.processing.ProcessingEnvironment processingEnv
        start local 1 // java.lang.CharSequence typeName
         0: .line 60
            aload 0 /* processingEnv */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getSourceVersion:()Ljavax/lang/model/SourceVersion;
            getstatic javax.lang.model.SourceVersion.RELEASE_9:Ljavax/lang/model/SourceVersion;
            invokevirtual javax.lang.model.SourceVersion.compareTo:(Ljava/lang/Enum;)I
            ifge 2
         1: .line 61
            aload 0 /* processingEnv */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
            aload 1 /* typeName */
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            areturn
         2: .line 63
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.dsl.processor.java.ModuleCache.moduleCacheCleaner:Ljava/util/Map;
            aload 0 /* processingEnv */
            new com.oracle.truffle.dsl.processor.java.ModuleCache$1
            dup
            invokespecial com.oracle.truffle.dsl.processor.java.ModuleCache$1.<init>:()V
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 2 /* moduleCache */
        start local 2 // java.util.Map moduleCache
         3: .line 69
            aload 1 /* typeName */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 3 /* typeNameString */
        start local 3 // java.lang.String typeNameString
         4: .line 70
            aload 2 /* moduleCache */
            aload 3 /* typeNameString */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.lang.model.element.ModuleElement
            astore 4 /* moduleElement */
        start local 4 // javax.lang.model.element.ModuleElement moduleElement
         5: .line 71
            aload 4 /* moduleElement */
            ifnonnull 11
         6: .line 72
            aload 0 /* processingEnv */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
            aload 1 /* typeName */
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            astore 5 /* typeElement */
        start local 5 // javax.lang.model.element.TypeElement typeElement
         7: .line 73
            aload 5 /* typeElement */
            ifnull 10
         8: .line 74
            aload 0 /* processingEnv */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
            aload 5 /* typeElement */
            invokeinterface javax.lang.model.util.Elements.getModuleOf:(Ljavax/lang/model/element/Element;)Ljavax/lang/model/element/ModuleElement;
            astore 4 /* moduleElement */
         9: .line 75
            aload 2 /* moduleCache */
            aload 3 /* typeNameString */
            aload 4 /* moduleElement */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 77
      StackMap locals: javax.annotation.processing.ProcessingEnvironment java.lang.CharSequence java.util.Map java.lang.String javax.lang.model.element.ModuleElement javax.lang.model.element.TypeElement
      StackMap stack:
            aload 5 /* typeElement */
            areturn
        end local 5 // javax.lang.model.element.TypeElement typeElement
        11: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* processingEnv */
            invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
            aload 4 /* moduleElement */
            aload 1 /* typeName */
            invokeinterface javax.lang.model.util.Elements.getTypeElement:(Ljavax/lang/model/element/ModuleElement;Ljava/lang/CharSequence;)Ljavax/lang/model/element/TypeElement;
            areturn
        end local 4 // javax.lang.model.element.ModuleElement moduleElement
        end local 3 // java.lang.String typeNameString
        end local 2 // java.util.Map moduleCache
        end local 1 // java.lang.CharSequence typeName
        end local 0 // javax.annotation.processing.ProcessingEnvironment processingEnv
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0   processingEnv  Ljavax/annotation/processing/ProcessingEnvironment;
            0   12     1        typeName  Ljava/lang/CharSequence;
            3   12     2     moduleCache  Ljava/util/Map<Ljava/lang/String;Ljavax/lang/model/element/ModuleElement;>;
            4   12     3  typeNameString  Ljava/lang/String;
            5   12     4   moduleElement  Ljavax/lang/model/element/ModuleElement;
            7   11     5     typeElement  Ljavax/lang/model/element/TypeElement;
    MethodParameters:
               Name  Flags
      processingEnv  final
      typeName       final
}
SourceFile: "ModuleCache.java"
NestMembers:
  com.oracle.truffle.dsl.processor.java.ModuleCache$1
InnerClasses:
  com.oracle.truffle.dsl.processor.java.ModuleCache$1