deduplicating lambda methods

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Fri Mar 16 18:46:28 UTC 2018



On 16/03/18 00:36, Liam Miller-Cushon wrote:
> Thanks, I'll investigate that. My initial impression is that using fields
> to replace the return value and the second parameter of the visit methods
> in TreeVisitor will complicate control flow somewhat.
>
> Have you considered adding a TreeVisitor-like API that for JCTrees to javac?
Having a tree scanner accepting a visitor parameter would be good - 
although can be done outside the scope of this patch.

Note that, in the meantime, it's rather easy to mimic the visitor 
parameter idiom - just define a 'scan' method like this:

```
Object parameter; //visitor field

scan(JCTree tree, Object parameter) {
    Object prev = this.parameter;
    try {
        this.parameter = parameter;
        super.scan(tree);
    } finally {
        this.parameter = prev;
    }
}
```

And then your code should not be altered much (I hope! :-)).

Maurizio



More information about the amber-dev mailing list