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