final class com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter<T> extends com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter
super_class: com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter
{
private final com.oracle.truffle.api.nodes.LanguageInfo languageInfo;
descriptor: Lcom/oracle/truffle/api/nodes/LanguageInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.truffle.api.TruffleLanguage<?> language;
descriptor: Lcom/oracle/truffle/api/TruffleLanguage;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/oracle/truffle/api/TruffleLanguage<*>;
final com.oracle.truffle.api.instrumentation.InstrumentationHandler this$0;
descriptor: Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.oracle.truffle.api.TruffleLanguage<?>);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;Lcom/oracle/truffle/api/TruffleLanguage;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.this$0:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
aload 0
aload 1
invokespecial com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter.<init>:(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;)V
1: aload 0
aload 2
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.language:Lcom/oracle/truffle/api/TruffleLanguage;
2: aload 0
invokestatic com.oracle.truffle.api.instrumentation.InstrumentAccessor.langAccess:()Lcom/oracle/truffle/api/impl/Accessor$LanguageSupport;
aload 2
invokevirtual com.oracle.truffle.api.impl.Accessor$LanguageSupport.getLanguageInfo:(Lcom/oracle/truffle/api/TruffleLanguage;)Lcom/oracle/truffle/api/nodes/LanguageInfo;
putfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
3: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
0 4 2 language Lcom/oracle/truffle/api/TruffleLanguage<*>;
Signature: (Lcom/oracle/truffle/api/TruffleLanguage<*>;)V
MethodParameters:
Name Flags
this$0 final
language
boolean isInstrumentableSource(com.oracle.truffle.api.source.Source);
descriptor: (Lcom/oracle/truffle/api/source/Source;)Z
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.truffle.api.source.Source.getMimeType:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getMimeTypes:()Ljava/util/Set;
aload 2
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
0 4 1 source Lcom/oracle/truffle/api/source/Source;
1 4 2 mimeType Ljava/lang/String;
MethodParameters:
Name Flags
source
boolean isInstrumentableRoot(com.oracle.truffle.api.nodes.RootNode);
descriptor: (Lcom/oracle/truffle/api/nodes/RootNode;)Z
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: com.oracle.truffle.api.nodes.LanguageInfo
StackMap stack:
aload 2
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
if_acmpeq 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
0 6 1 node Lcom/oracle/truffle/api/nodes/RootNode;
1 6 2 langInfo Lcom/oracle/truffle/api/nodes/LanguageInfo;
MethodParameters:
Name Flags
node
public java.util.Set<java.lang.Class<?>> queryTags(com.oracle.truffle.api.nodes.Node);
descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.languageInfo:Lcom/oracle/truffle/api/nodes/LanguageInfo;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.queryTagsImpl:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/util/Set;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
0 1 1 node Lcom/oracle/truffle/api/nodes/Node;
Signature: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/Set<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
node
void verifyFilter(com.oracle.truffle.api.instrumentation.SourceSectionFilter);
descriptor: (Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;)V
flags: (0x0000)
Code:
stack=7, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.this$0:Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.language:Lcom/oracle/truffle/api/TruffleLanguage;
invokevirtual com.oracle.truffle.api.instrumentation.InstrumentationHandler.getProvidedTags:(Lcom/oracle/truffle/api/TruffleLanguage;)Ljava/util/Set;
astore 2
start local 2 1: aload 1
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter.getReferencedTags:()Ljava/util/Set;
astore 3
start local 3 2: aload 2
aload 3
invokeinterface java.util.Set.containsAll:(Ljava/util/Collection;)Z
ifne 19
3: new java.util.HashSet
dup
aload 3
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 4
start local 4 4: aload 4
aload 2
invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
pop
5: new java.util.LinkedHashSet
dup
aload 2
invokespecial java.util.LinkedHashSet.<init>:(Ljava/util/Collection;)V
astore 5
start local 5 6: aload 5
aload 4
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
7: new java.lang.StringBuilder
dup
ldc "{"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 6
start local 6 8: ldc ""
astore 7
start local 7 9: aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 14
StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter com.oracle.truffle.api.instrumentation.SourceSectionFilter java.util.Set java.util.Set java.util.Set java.util.Set java.lang.StringBuilder java.lang.String top java.util.Iterator
StackMap stack:
10: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 8
start local 8 11: aload 6
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: aload 6
aload 8
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: ldc ", "
astore 7
end local 8 14: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
15: aload 6
ldc "}"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: new java.lang.IllegalArgumentException
dup
ldc "The attached filter %s references the following tags %s which are not declared as provided by the language. To fix this annotate the language class %s with @%s(%s)."
iconst_5
anewarray java.lang.Object
dup
iconst_0
17: aload 1
aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
aload 0
getfield com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter.language:Lcom/oracle/truffle/api/TruffleLanguage;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_3
ldc Lcom/oracle/truffle/api/instrumentation/ProvidedTags;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_4
aload 6
aastore
18: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 7 end local 6 end local 5 end local 4 19: StackMap locals: com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter com.oracle.truffle.api.instrumentation.SourceSectionFilter java.util.Set java.util.Set
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
0 20 1 filter Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
1 20 2 providedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
2 20 3 referencedTags Ljava/util/Set<Ljava/lang/Class<*>;>;
4 19 4 missingTags Ljava/util/Set<Ljava/lang/Class<*>;>;
6 19 5 allTags Ljava/util/Set<Ljava/lang/Class<*>;>;
8 19 6 builder Ljava/lang/StringBuilder;
9 19 7 sep Ljava/lang/String;
11 14 8 tag Ljava/lang/Class<*>;
MethodParameters:
Name Flags
filter
public <S extends com.oracle.truffle.api.instrumentation.ContextsListener> com.oracle.truffle.api.instrumentation.EventBinding<S> attachContextsListener(S, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/ContextsListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.UnsupportedOperationException
dup
ldc "Not supported in language instrumenter."
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
0 1 1 listener TS;
0 1 2 includeActiveContexts Z
Signature: <S::Lcom/oracle/truffle/api/instrumentation/ContextsListener;>(TS;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TS;>;
MethodParameters:
Name Flags
listener
includeActiveContexts
public <S extends com.oracle.truffle.api.instrumentation.ThreadsListener> com.oracle.truffle.api.instrumentation.EventBinding<S> attachThreadsListener(S, boolean);
descriptor: (Lcom/oracle/truffle/api/instrumentation/ThreadsListener;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.UnsupportedOperationException
dup
ldc "Not supported in language instrumenter."
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
0 1 1 listener TS;
0 1 2 includeStartedThreads Z
Signature: <S::Lcom/oracle/truffle/api/instrumentation/ThreadsListener;>(TS;Z)Lcom/oracle/truffle/api/instrumentation/EventBinding<TS;>;
MethodParameters:
Name Flags
listener
includeStartedThreads
public com.oracle.truffle.api.instrumentation.EventBinding<? extends com.oracle.truffle.api.instrumentation.ThreadsActivationListener> attachThreadsActivationListener(com.oracle.truffle.api.instrumentation.ThreadsActivationListener);
descriptor: (Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.UnsupportedOperationException
dup
ldc "Not supported in language instrumenter."
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
0 1 1 listener Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;
Signature: (Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding<+Lcom/oracle/truffle/api/instrumentation/ThreadsActivationListener;>;
MethodParameters:
Name Flags
listener
void doFinalize();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
void dispose();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
<S> S lookup(com.oracle.truffle.api.instrumentation.InstrumentationHandler, java.lang.Class<S>);
descriptor: (Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$LanguageClientInstrumenter<TT;>;
0 1 1 handler Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;
0 1 2 type Ljava/lang/Class<TS;>;
Signature: <S:Ljava/lang/Object;>(Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler;Ljava/lang/Class<TS;>;)TS;
MethodParameters:
Name Flags
handler
type
}
Signature: <T:Ljava/lang/Object;>Lcom/oracle/truffle/api/instrumentation/InstrumentationHandler$AbstractInstrumenter;
SourceFile: "InstrumentationHandler.java"
NestHost: com.oracle.truffle.api.instrumentation.InstrumentationHandler
InnerClasses:
public abstract LanguageSupport = com.oracle.truffle.api.impl.Accessor$LanguageSupport of com.oracle.truffle.api.impl.Accessor
abstract AbstractInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$AbstractInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler
final LanguageClientInstrumenter = com.oracle.truffle.api.instrumentation.InstrumentationHandler$LanguageClientInstrumenter of com.oracle.truffle.api.instrumentation.InstrumentationHandler