public class org.graalvm.compiler.hotspot.test.LambdaStableNameTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.hotspot.test.LambdaStableNameTest
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/hotspot/test/LambdaStableNameTest;
private java.lang.String findStableLambdaName(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: new org.graalvm.compiler.options.OptionValues
dup
invokestatic org.graalvm.compiler.options.OptionValues.newOptionMap:()Lorg/graalvm/collections/EconomicMap;
invokespecial org.graalvm.compiler.options.OptionValues.<init>:(Lorg/graalvm/collections/UnmodifiableEconomicMap;)V
astore 2
start local 2 1: new org.graalvm.compiler.debug.DebugContext$Builder
dup
aload 2
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
invokespecial org.graalvm.compiler.debug.DebugContext$Builder.<init>:(Lorg/graalvm/compiler/options/OptionValues;Ljava/lang/Iterable;)V
invokevirtual org.graalvm.compiler.debug.DebugContext$Builder.build:()Lorg/graalvm/compiler/debug/DebugContext;
astore 3
start local 3 2: invokestatic jdk.vm.ci.runtime.JVMCI.getRuntime:()Ljdk/vm/ci/runtime/JVMCIRuntime;
invokeinterface jdk.vm.ci.runtime.JVMCIRuntime.getCompiler:()Ljdk/vm/ci/runtime/JVMCICompiler;
checkcast org.graalvm.compiler.api.runtime.GraalJVMCICompiler
astore 4
start local 4 3: aload 4
invokeinterface org.graalvm.compiler.api.runtime.GraalJVMCICompiler.getGraalRuntime:()Lorg/graalvm/compiler/api/runtime/GraalRuntime;
ldc Lorg/graalvm/compiler/runtime/RuntimeProvider;
invokeinterface org.graalvm.compiler.api.runtime.GraalRuntime.getCapability:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast org.graalvm.compiler.runtime.RuntimeProvider
invokeinterface org.graalvm.compiler.runtime.RuntimeProvider.getHostBackend:()Lorg/graalvm/compiler/core/target/Backend;
invokevirtual org.graalvm.compiler.core.target.Backend.getProviders:()Lorg/graalvm/compiler/phases/util/Providers;
astore 5
start local 5 4: new org.graalvm.compiler.hotspot.meta.HotSpotJITClassInitializationPlugin
dup
invokespecial org.graalvm.compiler.hotspot.meta.HotSpotJITClassInitializationPlugin.<init>:()V
astore 6
start local 6 5: aload 6
aload 5
aload 1
aload 2
aload 3
aload 0
invokestatic org.graalvm.compiler.java.LambdaUtils.findStableLambdaName:(Lorg/graalvm/compiler/nodes/graphbuilderconf/ClassInitializationPlugin;Lorg/graalvm/compiler/phases/util/Providers;Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/options/OptionValues;Lorg/graalvm/compiler/debug/DebugContext;Ljava/lang/Object;)Ljava/lang/String;
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 6 0 this Lorg/graalvm/compiler/hotspot/test/LambdaStableNameTest;
0 6 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
1 6 2 options Lorg/graalvm/compiler/options/OptionValues;
2 6 3 debug Lorg/graalvm/compiler/debug/DebugContext;
3 6 4 compiler Lorg/graalvm/compiler/api/runtime/GraalJVMCICompiler;
4 6 5 providers Lorg/graalvm/compiler/phases/util/Providers;
5 6 6 initializationPlugin Lorg/graalvm/compiler/hotspot/meta/HotSpotJITClassInitializationPlugin;
MethodParameters:
Name Flags
type
public void checkStableLamdaNameForRunnableAndAutoCloseable();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=9, args_size=1
start local 0 0: aload 0
invokedynamic run(Lorg/graalvm/compiler/hotspot/test/LambdaStableNameTest;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
org/graalvm/compiler/hotspot/test/LambdaStableNameTest.checkStableLamdaNameForRunnableAndAutoCloseable()V (5)
()V
astore 1
start local 1 1: invokestatic jdk.vm.ci.runtime.JVMCI.getRuntime:()Ljdk/vm/ci/runtime/JVMCIRuntime;
invokeinterface jdk.vm.ci.runtime.JVMCIRuntime.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 3
start local 3 2: aload 0
aload 3
invokevirtual org.graalvm.compiler.hotspot.test.LambdaStableNameTest.findStableLambdaName:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/String;
astore 4
start local 4 3: aload 4
invokestatic org.graalvm.compiler.hotspot.test.LambdaStableNameTest.assertLambdaName:(Ljava/lang/String;)V
4: aload 0
invokedynamic close(Lorg/graalvm/compiler/hotspot/test/LambdaStableNameTest;)Ljava/lang/AutoCloseable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
org/graalvm/compiler/hotspot/test/LambdaStableNameTest.checkStableLamdaNameForRunnableAndAutoCloseable()V (5)
()V
astore 5
start local 5 5: invokestatic jdk.vm.ci.runtime.JVMCI.getRuntime:()Ljdk/vm/ci/runtime/JVMCIRuntime;
invokeinterface jdk.vm.ci.runtime.JVMCIRuntime.getHostJVMCIBackend:()Ljdk/vm/ci/runtime/JVMCIBackend;
invokevirtual jdk.vm.ci.runtime.JVMCIBackend.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 5
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 7
start local 7 6: aload 0
aload 7
invokevirtual org.graalvm.compiler.hotspot.test.LambdaStableNameTest.findStableLambdaName:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/String;
astore 8
start local 8 7: ldc "Both stable lambda names are the same as they reference the same method"
aload 4
aload 8
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
8: ldc "The name known in 19.3 version is computed"
ldc "Lorg/graalvm/compiler/hotspot/test/LambdaStableNameTest$$Lambda$3b571858be38d19370199ac2c3ec212a511e6f55;"
aload 4
invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
9: return
end local 8 end local 7 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/graalvm/compiler/hotspot/test/LambdaStableNameTest;
1 10 1 r Ljava/lang/Runnable;
2 10 3 rType Ljdk/vm/ci/meta/ResolvedJavaType;
3 10 4 name Ljava/lang/String;
5 10 5 ac Ljava/lang/AutoCloseable;
6 10 7 acType Ljdk/vm/ci/meta/ResolvedJavaType;
7 10 8 acName Ljava/lang/String;
RuntimeVisibleAnnotations:
org.junit.Test()
private static void assertLambdaName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "L"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc Lorg/graalvm/compiler/hotspot/test/LambdaStableNameTest;
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc "$$Lambda$"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
start local 1 3: aload 0
aload 1
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 5
4: new java.lang.StringBuilder
dup
ldc "Expecting "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " as prefix in lambda class name: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
5: StackMap locals: java.lang.String
StackMap stack:
ldc "semicolon at the end"
aload 0
ldc ";"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
6: aload 0
bipush 36
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 2
start local 2 7: aload 0
iload 2
iconst_1
iadd
aload 0
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 8: new java.math.BigInteger
dup
aload 3
bipush 16
invokespecial java.math.BigInteger.<init>:(Ljava/lang/String;I)V
astore 4
start local 4 9: new java.lang.StringBuilder
dup
ldc "Hash can be parsed as a hex number: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 name Ljava/lang/String;
3 11 1 expectedPrefix Ljava/lang/String;
7 11 2 last I
8 11 3 hash Ljava/lang/String;
9 11 4 aValue Ljava/math/BigInteger;
MethodParameters:
Name Flags
name
}
SourceFile: "LambdaStableNameTest.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public Builder = org.graalvm.compiler.debug.DebugContext$Builder of org.graalvm.compiler.debug.DebugContext