it2-bootstrap: eval/operate glitch

Brian Goetz brian.goetz at
Fri Aug 10 08:02:08 PDT 2012

Yes, this is an oversight.  All XxxOperator SAMs were supposed to use 
"operate" as their method name.

The rule we're following is: for a given arity, each SAM method should 
have a unique name.  This allows us to use default methods to implement 
more than one SAM.  For example:

interface Combiner<T,U,V> {
     V combine(T t, U u);

interface BinaryOperator<T> implements Combiner<T,T,T> {
     T operate(T t1, T t2);

     T combine(T t1, T t2) default { return operate(t1, t2); }

On 8/10/2012 7:00 AM, Aleksey Shipilev wrote:
> Hi,
> I'm migrating some of my code to fit it2-bootstrap API, and I think the
> method names are inconsistent:
>         BinaryOperator.operate
>          UnaryOperator.operate
>      IntBinaryOperator.eval
>       IntUnaryOperator.operate
>   DoubleBinaryOperator.eval
>    DoubleUnaryOperator.operate
>     LongBinaryOperator.eval
>      LongUnaryOperator.operate
> Should we settle on "operate"?
> -Aleksey.

More information about the lambda-dev mailing list