On Fri, 30 Jun 2023 00:51:42 GMT, Chen Liang <li...@openjdk.org> wrote:

>> `LocalVariable` and `LocalVariableType` includes `writeTo(BufWriter)`, which 
>> should be implementation details.
>> 
>> See 
>> https://mail.openjdk.org/pipermail/classfile-api-dev/2023-June/000381.html 
>> for context.
>> 
>> This patch moves the implementation to `DirectCodeBuilder`'s original use 
>> sites; the old `b.canWriteDirect` branch   is redundant, as `writeIndex`'s 
>> implementation already performs such an optimization.
>
> Chen Liang has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Fix line ending, update corpus test

Please hold off on sponsoring this; after another look, I find that 
LocalVariable and LocalVariableType can probably implement `WritableElement`.

Per our previous discussion, `WritableElement` should probably not be exposed; 
it is currently only exposed as a type parameter upper bound in `<T extends 
WritableElement<?>> void writeList(List<T> list);`

I think we might convert the `WritableElement` to an internal interface: is it 
possible to declare the method as `void writeTo(BufWriterImpl)`, and the public 
method is yet hidden from the API because `BufWriterImpl` is not in an exported 
package? For the `writeList`, I would turn it into `<T> void writeList(List<T> 
list, BiConsumer<T, BufWriter> writer)` or simply remove it.

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

PR Comment: https://git.openjdk.org/jdk/pull/14705#issuecomment-1616627718

Reply via email to