On Mon, 5 Apr 2021 12:37:06 GMT, Vladimir Ivanov <[email protected]> wrote:
>> Jorn Vernee has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> - Revert back to injected constructor handle
>> - Add lambda form sharing
>> - Add test case for collecting a custom class
>
> src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java line 1909:
>
>> 1907: boolean isSharedLambdaForm = parameterCount == 0 ||
>> basicType.parameterType(0) == Object.class;
>> 1908: if (isSharedLambdaForm) {
>> 1909: LambdaForm lform =
>> basicType.form().cachedLambdaForm(MethodTypeForm.LF_COLLECTOR);
>
> How does sharing work w.r.t. array store check? Unless you put `storeFunc` on
> the BMH, I don't see how sharing preserves proper check.
Nevermind, it's the type of the method handle produced by `makeCollector` which
ensures that all the arguments have proper type.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3306