public final class com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor extends com.oracle.truffle.dsl.processor.AbstractRegistrationProcessor
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor
super_class: com.oracle.truffle.dsl.processor.AbstractRegistrationProcessor
{
private static final java.util.Set<java.lang.String> RESERVED_IDS;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: new java.util.HashSet
dup
bipush 14
anewarray java.lang.String
dup
iconst_0
1: ldc "host"
aastore
dup
iconst_1
ldc "graal"
aastore
dup
iconst_2
ldc "truffle"
aastore
dup
iconst_3
ldc "language"
aastore
dup
iconst_4
ldc "instrument"
aastore
dup
iconst_5
ldc "graalvm"
aastore
dup
bipush 6
ldc "context"
aastore
dup
bipush 7
ldc "polyglot"
aastore
dup
bipush 8
ldc "compiler"
aastore
dup
bipush 9
ldc "vm"
aastore
dup
bipush 10
ldc "file"
aastore
dup
bipush 11
2: ldc "engine"
aastore
dup
bipush 12
ldc "log"
aastore
dup
bipush 13
ldc "image-build-time"
aastore
3: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
4: invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putstatic com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.RESERVED_IDS:Ljava/util/Set;
5: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.dsl.processor.AbstractRegistrationProcessor.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;
boolean validateRegistration(javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror);
descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;)Z
flags: (0x0000)
Code:
stack=6, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface javax.lang.model.element.Element.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.PUBLIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 3
1: aload 0
ldc "Registered language class must be public"
aload 1
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;)V
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 1
invokeinterface javax.lang.model.element.Element.getEnclosingElement:()Ljavax/lang/model/element/Element;
invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
getstatic javax.lang.model.element.ElementKind.PACKAGE:Ljavax/lang/model/element/ElementKind;
if_acmpeq 6
aload 1
invokeinterface javax.lang.model.element.Element.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 6
4: aload 0
ldc "Registered language inner-class must be static"
aload 1
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;)V
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
astore 3
start local 3 7: aload 0
getfield com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
aload 3
getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleLanguage:Ljavax/lang/model/type/DeclaredType;
invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
astore 4
start local 4 8: aload 3
getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleLanguage_Provider:Ljavax/lang/model/type/DeclaredType;
astore 5
start local 5 9: aload 0
getfield com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
aload 1
invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
aload 4
invokeinterface javax.lang.model.util.Types.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
ifeq 12
10: iconst_1
istore 6
start local 6 11: goto 17
end local 6 StackMap locals: com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror
StackMap stack:
12: aload 0
getfield com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
aload 1
invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
aload 5
invokeinterface javax.lang.model.util.Types.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
ifeq 15
13: iconst_0
istore 6
start local 6 14: goto 17
end local 6 15: StackMap locals:
StackMap stack:
aload 0
ldc "Registered language class must subclass TruffleLanguage"
aload 1
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;)V
16: iconst_0
ireturn
start local 6 17: StackMap locals: int
StackMap stack:
iconst_0
istore 7
start local 7 18: aload 1
invokeinterface javax.lang.model.element.Element.getEnclosedElements:()Ljava/util/List;
invokestatic javax.lang.model.util.ElementFilter.constructorsIn:(Ljava/lang/Iterable;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 26
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int top java.util.Iterator
StackMap stack:
19: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
astore 8
start local 8 20: aload 8
invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.PUBLIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 22
21: goto 26
22: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int javax.lang.model.element.ExecutableElement java.util.Iterator
StackMap stack:
aload 8
invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 24
23: goto 26
24: StackMap locals:
StackMap stack:
iconst_1
istore 7
25: goto 27
end local 8 26: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
27: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int
StackMap stack:
aconst_null
astore 8
start local 8 28: aload 1
invokeinterface javax.lang.model.element.Element.getEnclosedElements:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 41
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int javax.lang.model.element.Element top java.util.Iterator
StackMap stack:
29: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.Element
astore 9
start local 9 30: aload 9
invokeinterface javax.lang.model.element.Element.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.PUBLIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 32
31: goto 41
32: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int javax.lang.model.element.Element javax.lang.model.element.Element java.util.Iterator
StackMap stack:
aload 9
invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
getstatic javax.lang.model.element.ElementKind.FIELD:Ljavax/lang/model/element/ElementKind;
if_acmpeq 34
33: goto 41
34: StackMap locals:
StackMap stack:
aload 9
invokeinterface javax.lang.model.element.Element.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.FINAL:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 36
35: goto 41
36: StackMap locals:
StackMap stack:
ldc "INSTANCE"
aload 9
invokeinterface javax.lang.model.element.Element.getSimpleName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 38
37: goto 41
38: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
aload 9
invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
aload 4
invokeinterface javax.lang.model.util.Types.isAssignable:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
ifeq 41
39: aload 9
astore 8
40: goto 42
end local 9 41: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int javax.lang.model.element.Element top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
42: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.TypeMirror javax.lang.model.type.TypeMirror int int javax.lang.model.element.Element
StackMap stack:
iconst_1
istore 9
start local 9 43: iload 6
ifeq 47
aload 8
ifnull 47
44: aload 0
ldc "Using a singleton field is deprecated. Please provide a public no-argument constructor instead."
aload 8
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitWarning:(Ljava/lang/String;Ljavax/lang/model/element/Element;)V
45: iconst_0
istore 9
46: goto 50
47: StackMap locals: int
StackMap stack:
iload 7
ifne 50
48: aload 0
ldc "A TruffleLanguage subclass must have a public no argument constructor."
aload 1
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;)V
49: iconst_0
ireturn
50: StackMap locals:
StackMap stack:
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 10
start local 10 51: ldc Ljava/lang/String;
aload 2
ldc "characterMimeTypes"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
astore 11
start local 11 52: aload 0
aload 10
aload 1
aload 2
aload 2
ldc "characterMimeTypes"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljavax/lang/model/element/AnnotationValue;
aload 11
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.validateMimeTypes:(Ljava/util/Set;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;Ljava/util/List;)Z
ifne 54
53: iconst_0
ireturn
54: StackMap locals: java.util.Set java.util.List
StackMap stack:
ldc Ljava/lang/String;
aload 2
ldc "byteMimeTypes"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
astore 12
start local 12 55: aload 0
aload 10
aload 1
aload 2
aload 2
ldc "byteMimeTypes"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljavax/lang/model/element/AnnotationValue;
aload 12
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.validateMimeTypes:(Ljava/util/Set;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;Ljava/util/List;)Z
ifne 57
56: iconst_0
ireturn
57: StackMap locals: java.util.List
StackMap stack:
ldc Ljava/lang/String;
aload 2
ldc "defaultMimeType"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
astore 13
start local 13 58: aload 10
invokeinterface java.util.Set.size:()I
iconst_1
if_icmple 64
aload 13
ifnull 59
aload 13
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 64
59: StackMap locals: java.lang.String
StackMap stack:
aload 0
ldc "No defaultMimeType attribute specified. The defaultMimeType attribute needs to be specified if more than one MIME type was specified."
60: aload 1
61: aload 2
aload 2
ldc "defaultMimeType"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljavax/lang/model/element/AnnotationValue;
62: invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)V
63: iconst_0
ireturn
64: StackMap locals:
StackMap stack:
aload 13
ifnull 70
aload 13
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 70
aload 10
aload 13
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 70
65: aload 0
ldc "The defaultMimeType is not contained in the list of supported characterMimeTypes or byteMimeTypes. Add the specified default MIME type to character or byte MIME types to resolve this."
66: aload 1
67: aload 2
aload 2
ldc "defaultMimeType"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljavax/lang/model/element/AnnotationValue;
68: invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)V
69: iconst_0
ireturn
70: StackMap locals:
StackMap stack:
ldc Ljava/lang/String;
aload 2
ldc "mimeType"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
astore 14
start local 14 71: aload 14
invokeinterface java.util.List.isEmpty:()Z
ifeq 81
72: ldc Ljava/lang/String;
aload 2
ldc "id"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
astore 15
start local 15 73: aload 15
invokevirtual java.lang.String.isEmpty:()Z
ifeq 76
74: aload 0
ldc "The attribute id is mandatory."
aload 1
aload 2
aconst_null
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)V
75: iconst_0
ireturn
76: StackMap locals: java.util.List java.lang.String
StackMap stack:
getstatic com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.RESERVED_IDS:Ljava/util/Set;
aload 15
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 81
77: aload 0
ldc "Id '%s' is reserved for other use and must not be used as id."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 15
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 1
aload 2
78: aload 2
ldc "id"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljavax/lang/model/element/AnnotationValue;
79: invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)V
80: iconst_0
ireturn
end local 15 81: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.validateFileTypeDetectors:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;)Z
ifne 83
82: iconst_0
ireturn
83: StackMap locals:
StackMap stack:
iload 9
ifeq 85
84: aload 0
aload 1
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.assertNoErrorExpected:(Ljavax/lang/model/element/Element;)V
85: StackMap locals:
StackMap stack:
iload 6
ireturn
end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 86 0 this Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;
0 86 1 annotatedElement Ljavax/lang/model/element/Element;
0 86 2 registrationMirror Ljavax/lang/model/element/AnnotationMirror;
7 86 3 types Lcom/oracle/truffle/dsl/processor/TruffleTypes;
8 86 4 truffleLang Ljavax/lang/model/type/TypeMirror;
9 86 5 truffleLangProvider Ljavax/lang/model/type/TypeMirror;
11 12 6 processingTruffleLanguage Z
14 15 6 processingTruffleLanguage Z
17 86 6 processingTruffleLanguage Z
18 86 7 foundConstructor Z
20 26 8 constructor Ljavax/lang/model/element/ExecutableElement;
28 86 8 singletonElement Ljavax/lang/model/element/Element;
30 41 9 mem Ljavax/lang/model/element/Element;
43 86 9 valid Z
51 86 10 mimeTypes Ljava/util/Set<Ljava/lang/String;>;
52 86 11 characterMimeTypes Ljava/util/List<Ljava/lang/String;>;
55 86 12 byteMimeTypes Ljava/util/List<Ljava/lang/String;>;
58 86 13 defaultMimeType Ljava/lang/String;
71 86 14 legacyMimeTypes Ljava/util/List<Ljava/lang/String;>;
73 81 15 id Ljava/lang/String;
MethodParameters:
Name Flags
annotatedElement
registrationMirror
javax.lang.model.type.DeclaredType getProviderClass();
descriptor: ()Ljavax/lang/model/type/DeclaredType;
flags: (0x0000)
Code:
stack=1, locals=2, args_size=1
start local 0 0: invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
astore 1
start local 1 1: aload 1
getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleLanguage_Provider:Ljavax/lang/model/type/DeclaredType;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;
1 2 1 types Lcom/oracle/truffle/dsl/processor/TruffleTypes;
java.lang.Iterable<javax.lang.model.element.AnnotationMirror> getProviderAnnotations(javax.lang.model.element.TypeElement);
descriptor: (Ljavax/lang/model/element/TypeElement;)Ljava/lang/Iterable;
flags: (0x0000)
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
iconst_2
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 1: invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
astore 3
start local 3 2: aload 3
getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleLanguage_Registration:Ljavax/lang/model/type/DeclaredType;
astore 4
start local 4 3: aload 1
invokeinterface javax.lang.model.element.TypeElement.getAnnotationMirrors:()Ljava/util/List;
aload 4
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findAnnotationMirror:(Ljava/util/List;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
4: new com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor$1
dup
aload 0
invokespecial com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor$1.<init>:(Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;)V
5: invokestatic com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.copyAnnotations:(Ljavax/lang/model/element/AnnotationMirror;Ljava/util/function/Predicate;)Ljavax/lang/model/element/AnnotationMirror;
astore 5
start local 5 6: aload 2
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 1
invokeinterface javax.lang.model.element.TypeElement.getAnnotationMirrors:()Ljava/util/List;
aload 3
getfield com.oracle.truffle.dsl.processor.TruffleTypes.ProvidedTags:Ljavax/lang/model/type/DeclaredType;
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findAnnotationMirror:(Ljava/util/List;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
astore 6
start local 6 8: aload 6
ifnull 10
9: aload 2
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.TypeElement java.util.List com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.type.DeclaredType javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationMirror
StackMap stack:
aload 2
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;
0 11 1 annotatedElement Ljavax/lang/model/element/TypeElement;
1 11 2 result Ljava/util/List<Ljavax/lang/model/element/AnnotationMirror;>;
2 11 3 types Lcom/oracle/truffle/dsl/processor/TruffleTypes;
3 11 4 registrationType Ljavax/lang/model/type/DeclaredType;
6 11 5 registration Ljavax/lang/model/element/AnnotationMirror;
8 11 6 providedTags Ljavax/lang/model/element/AnnotationMirror;
Signature: (Ljavax/lang/model/element/TypeElement;)Ljava/lang/Iterable<Ljavax/lang/model/element/AnnotationMirror;>;
MethodParameters:
Name Flags
annotatedElement
void implementMethod(javax.lang.model.element.TypeElement, com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement);
descriptor: (Ljavax/lang/model/element/TypeElement;Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;)V
flags: (0x0000)
Code:
stack=5, locals=15, args_size=3
start local 0 start local 1 start local 2 0: invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
astore 3
start local 3 1: aload 3
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
astore 4
start local 4 2: aload 2
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.createBuilder:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
astore 5
start local 5 3: aload 2
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
dup
astore 6
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 4
-1352294148: 4
-72256779: 5
534261147: 6
1124293028: 7
default: 50
}
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.TypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String
StackMap stack:
4: aload 6
ldc "create"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
goto 50
StackMap locals:
StackMap stack:
5: aload 6
ldc "getLanguageClassName"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 30
goto 50
StackMap locals:
StackMap stack:
6: aload 6
ldc "createFileTypeDetectors"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 15
goto 50
StackMap locals:
StackMap stack:
7: aload 6
ldc "getServicesClassNames"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 33
goto 50
8: StackMap locals:
StackMap stack:
aload 1
invokeinterface javax.lang.model.element.TypeElement.asType:()Ljavax/lang/model/type/TypeMirror;
checkcast javax.lang.model.type.DeclaredType
astore 7
start local 7 9: aload 1
invokeinterface javax.lang.model.element.TypeElement.getTypeParameters:()Ljava/util/List;
astore 8
start local 8 10: aload 8
invokeinterface java.util.List.isEmpty:()Z
ifne 13
11: aload 5
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
new java.lang.StringBuilder
dup
ldc "new "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokeinterface javax.lang.model.element.TypeElement.getQualifiedName:()Ljavax/lang/model/element/Name;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "<>()"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.string:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
12: goto 51
13: StackMap locals: javax.lang.model.type.DeclaredType java.util.List
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
aload 7
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
iconst_2
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:(I)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
14: goto 51
end local 8 end local 7 15: StackMap locals:
StackMap stack:
aload 1
invokeinterface javax.lang.model.element.TypeElement.getAnnotationMirrors:()Ljava/util/List;
16: aload 4
getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleLanguage_Registration:Ljavax/lang/model/type/DeclaredType;
17: invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findAnnotationMirror:(Ljava/util/List;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
astore 9
start local 9 18: ldc Ljavax/lang/model/type/TypeMirror;
aload 9
ldc "fileTypeDetectors"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
astore 10
start local 10 19: aload 10
invokeinterface java.util.List.isEmpty:()Z
ifeq 22
20: aload 5
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
aload 3
ldc Ljava/util/Collections;
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
ldc "emptyList"
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
21: goto 51
22: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.TypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String top top javax.lang.model.element.AnnotationMirror java.util.List
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
23: aload 5
aload 3
ldc Ljava/util/Arrays;
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
ldc "asList"
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
24: aload 10
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 27
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.TypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String top top javax.lang.model.element.AnnotationMirror java.util.List top java.util.Iterator
StackMap stack:
25: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.type.TypeMirror
astore 11
start local 11 26: aload 5
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startGroup:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
aload 11
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startNew:(Ljavax/lang/model/type/TypeMirror;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
iconst_2
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:(I)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
end local 11 27: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 25
28: aload 5
iconst_2
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:(I)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
29: goto 51
end local 10 end local 9 30: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.TypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String
StackMap stack:
aload 3
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
astore 9
start local 9 31: aload 5
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
aload 9
aload 1
invokeinterface javax.lang.model.util.Elements.getBinaryName:(Ljavax/lang/model/element/TypeElement;)Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
32: goto 51
end local 9 33: StackMap locals:
StackMap stack:
aload 1
invokeinterface javax.lang.model.element.TypeElement.getAnnotationMirrors:()Ljava/util/List;
34: aload 4
getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleLanguage_Registration:Ljavax/lang/model/type/DeclaredType;
35: invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findAnnotationMirror:(Ljava/util/List;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
astore 9
start local 9 36: ldc Ljavax/lang/model/type/TypeMirror;
aload 9
ldc "services"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
astore 10
start local 10 37: aload 10
invokeinterface java.util.List.isEmpty:()Z
ifeq 40
38: aload 5
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
aload 3
ldc Ljava/util/Collections;
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
ldc "emptySet"
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
39: goto 51
40: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.TypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String top top javax.lang.model.element.AnnotationMirror java.util.List
StackMap stack:
aload 5
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startReturn:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
41: aload 5
aload 3
ldc Ljava/util/Arrays;
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getType:(Ljava/lang/Class;)Ljavax/lang/model/type/TypeMirror;
ldc "asList"
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startStaticCall:(Ljavax/lang/model/type/TypeMirror;Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
42: aload 10
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 47
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.TypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String top top javax.lang.model.element.AnnotationMirror java.util.List top java.util.Iterator
StackMap stack:
43: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.type.TypeMirror
astore 11
start local 11 44: aload 3
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
astore 13
start local 13 45: aload 3
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getEnvironment:()Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getTypeUtils:()Ljavax/lang/model/util/Types;
astore 14
start local 14 46: aload 5
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.startGroup:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
aload 13
aload 14
aload 11
invokeinterface javax.lang.model.util.Types.erasure:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
checkcast javax.lang.model.type.DeclaredType
invokeinterface javax.lang.model.type.DeclaredType.asElement:()Ljavax/lang/model/element/Element;
checkcast javax.lang.model.element.TypeElement
invokeinterface javax.lang.model.util.Elements.getBinaryName:(Ljavax/lang/model/element/TypeElement;)Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.doubleQuote:(Ljava/lang/String;)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:()Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
end local 14 end local 13 end local 11 47: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 43
48: aload 5
iconst_2
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder.end:(I)Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
pop
49: goto 51
end local 10 end local 9 50: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.TypeElement com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement com.oracle.truffle.dsl.processor.ProcessorContext com.oracle.truffle.dsl.processor.TruffleTypes com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder java.lang.String
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported method: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement.getSimpleName:()Ljavax/lang/model/element/Name;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
51: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;
0 52 1 annotatedElement Ljavax/lang/model/element/TypeElement;
0 52 2 methodToImplement Lcom/oracle/truffle/dsl/processor/java/model/CodeExecutableElement;
1 52 3 context Lcom/oracle/truffle/dsl/processor/ProcessorContext;
2 52 4 types Lcom/oracle/truffle/dsl/processor/TruffleTypes;
3 52 5 builder Lcom/oracle/truffle/dsl/processor/java/model/CodeTreeBuilder;
9 15 7 languageType Ljavax/lang/model/type/DeclaredType;
10 15 8 typeParams Ljava/util/List<+Ljavax/lang/model/element/TypeParameterElement;>;
18 30 9 registration Ljavax/lang/model/element/AnnotationMirror;
19 30 10 detectors Ljava/util/List<Ljavax/lang/model/type/TypeMirror;>;
26 27 11 detector Ljavax/lang/model/type/TypeMirror;
31 33 9 elements Ljavax/lang/model/util/Elements;
36 50 9 registration Ljavax/lang/model/element/AnnotationMirror;
37 50 10 services Ljava/util/List<Ljavax/lang/model/type/TypeMirror;>;
44 47 11 service Ljavax/lang/model/type/TypeMirror;
45 47 13 elements Ljavax/lang/model/util/Elements;
46 47 14 typeUtils Ljavax/lang/model/util/Types;
MethodParameters:
Name Flags
annotatedElement
methodToImplement
java.lang.String getRegistrationFileName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "META-INF/truffle/language"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;
void storeRegistrations(java.util.Properties, java.lang.Iterable<? extends javax.lang.model.element.TypeElement>);
descriptor: (Ljava/util/Properties;Ljava/lang/Iterable;)V
flags: (0x0000)
Code:
stack=5, locals=20, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: invokestatic com.oracle.truffle.dsl.processor.ProcessorContext.getInstance:()Lcom/oracle/truffle/dsl/processor/ProcessorContext;
invokevirtual com.oracle.truffle.dsl.processor.ProcessorContext.getTypes:()Lcom/oracle/truffle/dsl/processor/TruffleTypes;
astore 4
start local 4 2: aload 2
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 6
goto 60
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Properties java.lang.Iterable int com.oracle.truffle.dsl.processor.TruffleTypes top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.TypeElement
astore 5
start local 5 4: new java.lang.StringBuilder
dup
ldc "language"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iinc 3 1
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 7
start local 7 5: aload 5
aload 4
getfield com.oracle.truffle.dsl.processor.TruffleTypes.TruffleLanguage_Registration:Ljavax/lang/model/type/DeclaredType;
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findAnnotationMirror:(Ljavax/lang/model/element/Element;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/AnnotationMirror;
astore 8
start local 8 6: aload 8
ifnonnull 8
7: return
8: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Properties java.lang.Iterable int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement java.util.Iterator java.lang.String javax.lang.model.element.AnnotationMirror
StackMap stack:
aload 0
getfield com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
aload 5
invokeinterface javax.lang.model.util.Elements.getBinaryName:(Ljavax/lang/model/element/TypeElement;)Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
astore 9
start local 9 9: ldc Ljava/lang/String;
aload 8
ldc "id"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
astore 10
start local 10 10: aload 10
ifnull 12
aload 10
invokevirtual java.lang.String.isEmpty:()Z
ifne 12
11: aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "id"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 10
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
12: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "name"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc Ljava/lang/String;
aload 8
ldc "name"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
13: aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "implementationName"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc Ljava/lang/String;
aload 8
ldc "implementationName"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
14: aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "version"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc Ljava/lang/String;
aload 8
ldc "version"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
15: aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "className"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 9
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
16: ldc Ljava/lang/String;
aload 8
ldc "defaultMimeType"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.String
astore 11
start local 11 17: aload 11
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
18: aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "defaultMimeType"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 11
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
19: StackMap locals: java.lang.String
StackMap stack:
ldc Ljava/lang/String;
aload 8
ldc "mimeType"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
astore 12
start local 12 20: iconst_0
istore 13
start local 13 21: goto 24
22: StackMap locals: java.util.List int
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "mimeType."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 13
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 12
iload 13
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
23: iinc 13 1
StackMap locals:
StackMap stack:
24: iload 13
aload 12
invokeinterface java.util.List.size:()I
if_icmplt 22
end local 13 25: ldc Ljava/lang/String;
aload 8
ldc "characterMimeTypes"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
astore 13
start local 13 26: aload 13
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
27: iconst_0
istore 14
start local 14 28: goto 31
29: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Properties java.lang.Iterable int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement java.util.Iterator java.lang.String javax.lang.model.element.AnnotationMirror java.lang.String java.lang.String java.lang.String java.util.List java.util.List int
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "characterMimeType."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 14
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 13
iload 14
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
30: iinc 14 1
StackMap locals:
StackMap stack:
31: iload 14
aload 13
invokeinterface java.util.List.size:()I
if_icmplt 29
end local 14 32: ldc Ljava/lang/String;
aload 8
ldc "byteMimeTypes"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
astore 14
start local 14 33: aload 14
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
34: iconst_0
istore 15
start local 15 35: goto 38
36: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Properties java.lang.Iterable int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement java.util.Iterator java.lang.String javax.lang.model.element.AnnotationMirror java.lang.String java.lang.String java.lang.String java.util.List java.util.List java.util.List int
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "byteMimeType."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 15
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 14
iload 15
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
37: iinc 15 1
StackMap locals:
StackMap stack:
38: iload 15
aload 14
invokeinterface java.util.List.size:()I
if_icmplt 36
end local 15 39: ldc Ljava/lang/String;
aload 8
ldc "dependentLanguages"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
astore 15
start local 15 40: aload 15
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
41: iconst_0
istore 16
start local 16 42: goto 45
43: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Properties java.lang.Iterable int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement java.util.Iterator java.lang.String javax.lang.model.element.AnnotationMirror java.lang.String java.lang.String java.lang.String java.util.List java.util.List java.util.List java.util.List int
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "dependentLanguage."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 16
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 15
iload 16
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
44: iinc 16 1
StackMap locals:
StackMap stack:
45: iload 16
aload 15
invokeinterface java.util.List.size:()I
if_icmplt 43
end local 16 46: aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "interactive"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc Ljava/lang/Boolean;
aload 8
ldc "interactive"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic java.lang.Boolean.toString:(Z)Ljava/lang/String;
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
47: aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "internal"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ldc Ljava/lang/Boolean;
aload 8
ldc "internal"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
invokestatic java.lang.Boolean.toString:(Z)Ljava/lang/String;
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
48: iconst_0
istore 16
start local 16 49: ldc Ljavax/lang/model/type/TypeMirror;
aload 8
ldc "services"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 18
goto 52
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Properties java.lang.Iterable int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement java.util.Iterator java.lang.String javax.lang.model.element.AnnotationMirror java.lang.String java.lang.String java.lang.String java.util.List java.util.List java.util.List java.util.List int top java.util.Iterator
StackMap stack:
50: aload 18
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.type.TypeMirror
astore 17
start local 17 51: aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "service"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 16
iinc 16 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 0
getfield com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
aload 17
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.fromTypeMirror:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/TypeElement;
invokeinterface javax.lang.model.util.Elements.getBinaryName:(Ljavax/lang/model/element/TypeElement;)Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
end local 17 52: StackMap locals:
StackMap stack:
aload 18
invokeinterface java.util.Iterator.hasNext:()Z
ifne 50
53: iconst_0
istore 17
start local 17 54: ldc Ljavax/lang/model/type/TypeMirror;
aload 8
ldc "fileTypeDetectors"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 19
goto 59
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Properties java.lang.Iterable int com.oracle.truffle.dsl.processor.TruffleTypes javax.lang.model.element.TypeElement java.util.Iterator java.lang.String javax.lang.model.element.AnnotationMirror java.lang.String java.lang.String java.lang.String java.util.List java.util.List java.util.List java.util.List int int top java.util.Iterator
StackMap stack:
55: aload 19
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.type.TypeMirror
astore 18
start local 18 56: aload 1
new java.lang.StringBuilder
dup
aload 7
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "fileTypeDetector"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 17
iinc 17 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
57: aload 0
getfield com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.processingEnv:Ljavax/annotation/processing/ProcessingEnvironment;
invokeinterface javax.annotation.processing.ProcessingEnvironment.getElementUtils:()Ljavax/lang/model/util/Elements;
aload 18
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.fromTypeMirror:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/TypeElement;
invokeinterface javax.lang.model.util.Elements.getBinaryName:(Ljavax/lang/model/element/TypeElement;)Ljavax/lang/model/element/Name;
invokeinterface javax.lang.model.element.Name.toString:()Ljava/lang/String;
58: invokevirtual java.util.Properties.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
pop
end local 18 59: StackMap locals:
StackMap stack:
aload 19
invokeinterface java.util.Iterator.hasNext:()Z
ifne 55
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 5 60: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Properties java.lang.Iterable int com.oracle.truffle.dsl.processor.TruffleTypes top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
61: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 62 0 this Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;
0 62 1 into Ljava/util/Properties;
0 62 2 annotatedElements Ljava/lang/Iterable<+Ljavax/lang/model/element/TypeElement;>;
1 62 3 cnt I
2 62 4 types Lcom/oracle/truffle/dsl/processor/TruffleTypes;
4 60 5 annotatedElement Ljavax/lang/model/element/TypeElement;
5 60 7 prefix Ljava/lang/String;
6 60 8 annotation Ljavax/lang/model/element/AnnotationMirror;
9 60 9 className Ljava/lang/String;
10 60 10 id Ljava/lang/String;
17 60 11 defaultMimeType Ljava/lang/String;
20 60 12 mimes Ljava/util/List<Ljava/lang/String;>;
21 25 13 i I
26 60 13 charMimes Ljava/util/List<Ljava/lang/String;>;
28 32 14 i I
33 60 14 byteMimes Ljava/util/List<Ljava/lang/String;>;
35 39 15 i I
40 60 15 dependencies Ljava/util/List<Ljava/lang/String;>;
42 46 16 i I
49 60 16 serviceCounter I
51 52 17 serviceTypeMirror Ljavax/lang/model/type/TypeMirror;
54 60 17 fileTypeDetectorCounter I
56 59 18 fileTypeDetectorTypeMirror Ljavax/lang/model/type/TypeMirror;
Signature: (Ljava/util/Properties;Ljava/lang/Iterable<+Ljavax/lang/model/element/TypeElement;>;)V
MethodParameters:
Name Flags
into
annotatedElements
private boolean validateMimeTypes(java.util.Set<java.lang.String>, javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror, javax.lang.model.element.AnnotationValue, java.util.List<java.lang.String>);
descriptor: (Ljava/util/Set;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;Ljava/util/List;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 10
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Set javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationValue java.util.List top java.util.Iterator
StackMap stack:
1: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 2: aload 0
aload 2
aload 3
aload 4
aload 6
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.validateMimeType:(Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;Ljava/lang/String;)Z
ifne 4
3: iconst_0
ireturn
4: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Set javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationValue java.util.List java.lang.String java.util.Iterator
StackMap stack:
aload 1
aload 6
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 9
5: aload 0
ldc "Duplicate MIME type specified '%s'. MIME types must be unique."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 2
aload 3
6: aload 4
7: invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)V
8: iconst_0
ireturn
9: StackMap locals:
StackMap stack:
aload 1
aload 6
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 6 10: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor java.util.Set javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationValue java.util.List top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
11: iconst_1
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;
0 12 1 collectedMimeTypes Ljava/util/Set<Ljava/lang/String;>;
0 12 2 e Ljavax/lang/model/element/Element;
0 12 3 mirror Ljavax/lang/model/element/AnnotationMirror;
0 12 4 value Ljavax/lang/model/element/AnnotationValue;
0 12 5 loadedMimeTypes Ljava/util/List<Ljava/lang/String;>;
2 10 6 mimeType Ljava/lang/String;
Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;Ljava/util/List<Ljava/lang/String;>;)Z
MethodParameters:
Name Flags
collectedMimeTypes
e
mirror
value
loadedMimeTypes
private boolean validateMimeType(javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror, javax.lang.model.element.AnnotationValue, java.lang.String);
descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
istore 5
start local 5 1: iload 5
iconst_m1
if_icmpeq 2
iload 5
ifeq 2
iload 5
aload 4
invokevirtual java.lang.String.length:()I
iconst_1
isub
if_icmpne 4
2: StackMap locals: int
StackMap stack:
aload 0
ldc "Invalid MIME type '%s' provided. MIME types consist of a type and a subtype separated by '/'."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)V
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 4
bipush 47
iload 5
iconst_1
iadd
invokevirtual java.lang.String.indexOf:(II)I
iconst_m1
if_icmpeq 7
5: aload 0
ldc "Invalid MIME type '%s' provided. MIME types consist of a type and a subtype separated by '/'."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)V
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;
0 8 1 type Ljavax/lang/model/element/Element;
0 8 2 mirror Ljavax/lang/model/element/AnnotationMirror;
0 8 3 value Ljavax/lang/model/element/AnnotationValue;
0 8 4 mimeType Ljava/lang/String;
1 8 5 index I
MethodParameters:
Name Flags
type
mirror
value
mimeType
private boolean validateFileTypeDetectors(javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror);
descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "fileTypeDetectors"
iconst_1
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValue:(Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;Z)Ljavax/lang/model/element/AnnotationValue;
astore 3
start local 3 1: ldc Ljavax/lang/model/type/TypeMirror;
aload 2
ldc "fileTypeDetectors"
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.getAnnotationValueList:(Ljava/lang/Class;Ljavax/lang/model/element/AnnotationMirror;Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 23
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationValue top java.util.Iterator
StackMap stack:
2: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.type.TypeMirror
astore 4
start local 4 3: aload 4
invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.fromTypeMirror:(Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/TypeElement;
astore 6
start local 6 4: aload 6
invokeinterface javax.lang.model.element.TypeElement.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.PUBLIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 7
5: aload 0
ldc "Registered FileTypeDetector class must be public."
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)V
6: iconst_0
ireturn
7: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationValue javax.lang.model.type.TypeMirror java.util.Iterator javax.lang.model.element.TypeElement
StackMap stack:
aload 6
invokeinterface javax.lang.model.element.TypeElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
getstatic javax.lang.model.element.ElementKind.PACKAGE:Ljavax/lang/model/element/ElementKind;
if_acmpeq 10
aload 6
invokeinterface javax.lang.model.element.TypeElement.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 10
8: aload 0
ldc "Registered FileTypeDetector inner-class must be static."
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)V
9: iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 11: aload 6
invokeinterface javax.lang.model.element.TypeElement.getEnclosedElements:()Ljava/util/List;
invokestatic javax.lang.model.util.ElementFilter.constructorsIn:(Ljava/lang/Iterable;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 19
StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationValue javax.lang.model.type.TypeMirror java.util.Iterator javax.lang.model.element.TypeElement int top java.util.Iterator
StackMap stack:
12: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.lang.model.element.ExecutableElement
astore 8
start local 8 13: aload 8
invokeinterface javax.lang.model.element.ExecutableElement.getModifiers:()Ljava/util/Set;
getstatic javax.lang.model.element.Modifier.PUBLIC:Ljavax/lang/model/element/Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 15
14: goto 19
15: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationValue javax.lang.model.type.TypeMirror java.util.Iterator javax.lang.model.element.TypeElement int javax.lang.model.element.ExecutableElement java.util.Iterator
StackMap stack:
aload 8
invokeinterface javax.lang.model.element.ExecutableElement.getParameters:()Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 17
16: goto 19
17: StackMap locals:
StackMap stack:
iconst_1
istore 7
18: goto 20
end local 8 19: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationValue javax.lang.model.type.TypeMirror java.util.Iterator javax.lang.model.element.TypeElement int top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
20: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationValue javax.lang.model.type.TypeMirror java.util.Iterator javax.lang.model.element.TypeElement int
StackMap stack:
iload 7
ifne 23
21: aload 0
ldc "A FileTypeDetector subclass must have a public no argument constructor."
aload 1
aload 2
aload 3
invokevirtual com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor.emitError:(Ljava/lang/String;Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)V
22: iconst_0
ireturn
end local 7 end local 6 end local 4 23: StackMap locals: com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor javax.lang.model.element.Element javax.lang.model.element.AnnotationMirror javax.lang.model.element.AnnotationValue top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
24: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/oracle/truffle/dsl/processor/LanguageRegistrationProcessor;
0 25 1 annotatedElement Ljavax/lang/model/element/Element;
0 25 2 mirror Ljavax/lang/model/element/AnnotationMirror;
1 25 3 value Ljavax/lang/model/element/AnnotationValue;
3 23 4 fileTypeDetectorType Ljavax/lang/model/type/TypeMirror;
4 23 6 fileTypeDetectorElement Ljavax/lang/model/element/TypeElement;
11 23 7 foundConstructor Z
13 19 8 constructor Ljavax/lang/model/element/ExecutableElement;
MethodParameters:
Name Flags
annotatedElement
mirror
}
SourceFile: "LanguageRegistrationProcessor.java"
NestMembers:
com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor$1
InnerClasses:
com.oracle.truffle.dsl.processor.LanguageRegistrationProcessor$1
RuntimeVisibleAnnotations:
javax.annotation.processing.SupportedAnnotationTypes(value = {"com.oracle.truffle.api.TruffleLanguage.Registration"})