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