On Mon, 6 Mar 2023 17:45:27 GMT, Paul Sandoz <psan...@openjdk.org> wrote:

>> I see what you mean. `transforming` was selected to represent the 
>> continuation of the code building process, similar to `trying` and 
>> `catching`. While `transform` may imply that the actual code builder gets 
>> transformed into something else. For example `MethodModel::transformCode` 
>> takes `CodeModel`, applies `CodeTransform` and after that the code of the 
>> actual method is finished.
>> What about `transformBlock(BlockCodeBuilder, CodeTransform)`?
>
> I am unsure how you might use `BlockCodeBuilder`. If the current signature is 
> not changed then `transformFromHandler` seems reasonable (since its the 
> handler that pushes elements into its given builder).
> 
> The other `transform` is implicitly "transform model".

I'm sorry my answer was inaccurate, what I'm proposing is 
`transformBlock(Consumer<BlockCodeBuilder>, CodeTransform)` or 
`transformedBlock(Consumer<BlockCodeBuilder>, CodeTransform)`. 
`BlockCodeBuilder` is just an extension of `CodeBuilder` with ability to break 
block execution.
Block is a sub-unit of code, so I expect it would be a logical extension of the 
actual `block(Consumer<BlockCodeBuilder>`.
I'll move this discussion to the mailing list to make common decision about API 
change.
Thanks.

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

PR: https://git.openjdk.org/jdk/pull/10982

Reply via email to