On Thu, 19 Oct 2023 14:37:06 GMT, Mourad Abbay <mab...@openjdk.org> wrote:

> early experimental version of the bytecode library is bundled under:
> test/jdk/lib/testlibrary/bytecode
> 
> following tests reference it:
> test/jdk/java/lang/invoke/common/test/java/lang/invoke/lib/InstructionHelper.java
> test/jdk/java/lang/invoke/condy/CondyWithGarbageTest.java
> test/jdk/java/lang/invoke/condy/CondyReturnPrimitiveTest.java
> test/jdk/java/lang/invoke/condy/CondyWrongType.java
> test/jdk/java/lang/invoke/condy/CondyNestedTest.java
> test/jdk/java/lang/invoke/condy/CondyStaticArgumentsTest.java
> test/jdk/java/lang/invoke/condy/BootstrapMethodJumboArgsTest.java
> test/jdk/java/lang/invoke/condy/ConstantBootstrapsTest.java
> test/jdk/java/lang/invoke/condy/CondyRepeatFailedResolution.java
> test/jdk/java/lang/invoke/condy/CondyBSMInvocation.java
> test/jdk/java/lang/invoke/condy/CondyTypeValidationTest.java
> test/jdk/java/lang/invoke/condy/CondyBSMValidationTest.java
> test/jdk/java/lang/invoke/condy/CondyNameValidationTest.java
> test/jdk/java/lang/invoke/condy/CondyBSMException.java
> test/jdk/java/lang/invoke/condy/CondyInterfaceWithOverpassMethods.java

test/jdk/java/lang/invoke/common/test/java/lang/invoke/lib/InstructionHelper.java
 line 71:

> 69:                                         for (int i = 0; i < 
> type.parameterCount(); i++) {
> 70:                                             
> codeBuilder.loadInstruction(TypeKind.fromDescriptor(
> 71:                                                     
> type.parameterType(i).descriptorString()), i);

You can just use `TypeKind.from(type.parameterType(i))`

test/jdk/java/lang/invoke/common/test/java/lang/invoke/lib/InstructionHelper.java
 line 76:

> 74:                                                 MethodHandleDesc.ofMethod(
> 75:                                                         
> DirectMethodHandleDesc.Kind.STATIC,
> 76:                                                         
> ClassDesc.of(l.lookupClass().getCanonicalName()),

Despite this being part of the original code, `getCanonicalName` is unreliable 
for bytecode engineering, for it cannot distinguish packages from nested/inner 
classes.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16268#discussion_r1368033145
PR Review Comment: https://git.openjdk.org/jdk/pull/16268#discussion_r1368033622

Reply via email to