On Fri, 15 Dec 2023 12:26:50 GMT, Adam Sotona <asot...@openjdk.org> wrote:
>> java.base java.lang.invoke package heavily uses ASM to generate lambdas and >> method handles. >> >> This patch converts ASM calls to Classfile API. >> >> This PR is continuation of https://github.com/openjdk/jdk/pull/12945 >> >> Any comments and suggestions are welcome. >> >> Please review. >> >> Thank you, >> Adam > > Adam Sotona has updated the pull request incrementally with one additional > commit since the last revision: > > added missing comment src/java.base/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java line 548: > 546: static ClassDesc classDesc(Class<?> cls) { > 547: return cls.isHidden() ? > ClassDesc.ofInternalName(cls.getName().replace('.', '/')) > 548: : > ClassDesc.ofDescriptor(cls.descriptorString()); This still isn’t correct, as [`Class::getName()`] includes the trailing `/<suffix>` for a hidden class. Suggestion: if (cls.isHidden()) { var name = cls.getName(); return ClassDesc.of(name.substring(0, name.indexOf('/')); } return ClassDesc.ofDescriptor(cls.descriptorString()); [`Class::getName()`]: https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Class.html#getName() ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/17108#discussion_r1427921269