On Mon, 23 Oct 2023 01:15:54 GMT, Chen Liang <li...@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))`

I can't see such as method.

> 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.

I will use ClassDesc.ofDescriptor and passes the descriptor string of the type.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16268#discussion_r1371686240
PR Review Comment: https://git.openjdk.org/jdk/pull/16268#discussion_r1371553152

Reply via email to