public class com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest extends com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest
super_class: com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest
{
private static final java.util.regex.Pattern NODE_PATTERN;
descriptor: Ljava/util/regex/Pattern;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public org.junit.rules.ExpectedException expectedException;
descriptor: Lorg/junit/rules/ExpectedException;
flags: (0x0001) ACC_PUBLIC
RuntimeVisibleAnnotations:
org.junit.Rule()
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "^S(\\d+)E(\\d+)\\((.*)\\)$"
invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
putstatic com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.NODE_PATTERN:Ljava/util/regex/Pattern;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.truffle.api.test.polyglot.AbstractPolyglotTest.<init>:()V
1: aload 0
invokestatic org.junit.rules.ExpectedException.none:()Lorg/junit/rules/ExpectedException;
putfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.expectedException:Lorg/junit/rules/ExpectedException;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/api/instrumentation/test/MaterializationAssertionsViolationTest;
public void setup();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
anewarray java.lang.String
invokestatic org.graalvm.polyglot.Context.create:([Ljava/lang/String;)Lorg/graalvm/polyglot/Context;
new com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$1
dup
aload 0
invokespecial com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$1.<init>:(Lcom/oracle/truffle/api/instrumentation/test/MaterializationAssertionsViolationTest;)V
invokevirtual com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.setupEnv:(Lorg/graalvm/polyglot/Context;Lcom/oracle/truffle/api/test/polyglot/ProxyLanguage;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/api/instrumentation/test/MaterializationAssertionsViolationTest;
RuntimeVisibleAnnotations:
org.junit.Before()
public void testMultipleMaterializationAssertion();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.expectedException:Lorg/junit/rules/ExpectedException;
ldc Lorg/graalvm/polyglot/PolyglotException;
invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
1: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.expectedException:Lorg/junit/rules/ExpectedException;
ldc "java.lang.AssertionError: Node must not be materialized multiple times for the same set of tags!"
invokevirtual org.junit.rules.ExpectedException.expectMessage:(Ljava/lang/String;)V
2: ldc "proxyLanguage"
ldc "S2E0()"
invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
astore 1
start local 1 3: invokestatic com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.createListener:()Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;
astore 2
start local 2 4: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.instrumentEnv:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.instrumentEnv:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
pop
6: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/oracle/truffle/api/instrumentation/test/MaterializationAssertionsViolationTest;
3 8 1 source Lorg/graalvm/polyglot/Source;
4 8 2 listener Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testGradualMaterializationAssertionUncaught();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: ldc "proxyLanguage"
ldc "S1E2()"
invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
astore 1
start local 1 1: invokestatic com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.createListener:()Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;
astore 2
start local 2 2: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.instrumentEnv:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
3: invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
aastore
dup
iconst_1
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aload 2
4: invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
astore 3
start local 3 5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
6: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
7: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.instrumentEnv:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
pop
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/instrumentation/test/MaterializationAssertionsViolationTest;
1 9 1 source Lorg/graalvm/polyglot/Source;
2 9 2 listener Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;
5 9 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;>;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testGradualMaterializationAssertionCaught();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.expectedException:Lorg/junit/rules/ExpectedException;
ldc Ljava/lang/AssertionError;
invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
1: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.expectedException:Lorg/junit/rules/ExpectedException;
ldc "There should always be some new materialize tag!"
invokevirtual org.junit.rules.ExpectedException.expectMessage:(Ljava/lang/String;)V
2: ldc "proxyLanguage"
ldc "S1E2()"
invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
astore 1
start local 1 3: invokestatic com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.createListener:()Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;
astore 2
start local 2 4: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.instrumentEnv:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
6: invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
aastore
dup
iconst_1
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aload 2
7: invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
astore 3
start local 3 8: aload 3
invokevirtual com.oracle.truffle.api.instrumentation.EventBinding.dispose:()V
9: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.instrumentEnv:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
pop
10: return
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/api/instrumentation/test/MaterializationAssertionsViolationTest;
3 11 1 source Lorg/graalvm/polyglot/Source;
4 11 2 listener Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;
8 11 3 binding Lcom/oracle/truffle/api/instrumentation/EventBinding<Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;>;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testNewTreeMaterializationAssertion();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.expectedException:Lorg/junit/rules/ExpectedException;
ldc Lorg/graalvm/polyglot/PolyglotException;
invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
1: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.expectedException:Lorg/junit/rules/ExpectedException;
ldc "java.lang.AssertionError: New tree should be fully materialized!"
invokevirtual org.junit.rules.ExpectedException.expectMessage:(Ljava/lang/String;)V
2: ldc "proxyLanguage"
ldc "S1E0(S1E0())"
invokestatic org.graalvm.polyglot.Source.create:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Source;
astore 1
start local 1 3: invokestatic com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.createListener:()Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;
astore 2
start local 2 4: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.instrumentEnv:Lcom/oracle/truffle/api/instrumentation/TruffleInstrument$Env;
invokevirtual com.oracle.truffle.api.instrumentation.TruffleInstrument$Env.getInstrumenter:()Lcom/oracle/truffle/api/instrumentation/Instrumenter;
invokestatic com.oracle.truffle.api.instrumentation.SourceSectionFilter.newBuilder:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
aastore
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.tagIs:([Ljava/lang/Class;)Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter$Builder;
invokevirtual com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder.build:()Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;
aload 2
invokevirtual com.oracle.truffle.api.instrumentation.Instrumenter.attachExecutionEventListener:(Lcom/oracle/truffle/api/instrumentation/SourceSectionFilter;Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;)Lcom/oracle/truffle/api/instrumentation/EventBinding;
pop
5: aload 0
getfield com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest.context:Lorg/graalvm/polyglot/Context;
aload 1
invokevirtual org.graalvm.polyglot.Context.eval:(Lorg/graalvm/polyglot/Source;)Lorg/graalvm/polyglot/Value;
pop
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/truffle/api/instrumentation/test/MaterializationAssertionsViolationTest;
3 7 1 source Lorg/graalvm/polyglot/Source;
4 7 2 listener Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;
RuntimeVisibleAnnotations:
org.junit.Test()
private static com.oracle.truffle.api.instrumentation.ExecutionEventListener createListener();
descriptor: ()Lcom/oracle/truffle/api/instrumentation/ExecutionEventListener;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$2
dup
invokespecial com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$2.<init>:()V
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "MaterializationAssertionsViolationTest.java"
NestMembers:
com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$1 com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$1$1 com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$2 com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$CustomMaterializeNode
InnerClasses:
public final Builder = com.oracle.truffle.api.instrumentation.SourceSectionFilter$Builder of com.oracle.truffle.api.instrumentation.SourceSectionFilter
public final ExpressionTag = com.oracle.truffle.api.instrumentation.StandardTags$ExpressionTag of com.oracle.truffle.api.instrumentation.StandardTags
public final StatementTag = com.oracle.truffle.api.instrumentation.StandardTags$StatementTag of com.oracle.truffle.api.instrumentation.StandardTags
public final Env = com.oracle.truffle.api.instrumentation.TruffleInstrument$Env of com.oracle.truffle.api.instrumentation.TruffleInstrument
com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$1
com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$2
CustomMaterializeNode = com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest$CustomMaterializeNode of com.oracle.truffle.api.instrumentation.test.MaterializationAssertionsViolationTest