Lambda and intersection types
Brian Goetz
brian.goetz at oracle.com
Mon Nov 12 11:55:43 PST 2012
The back-end work for intersection-typed lambdas is not implemented
yet...only the compiler front-end work.
On 11/12/2012 2:45 PM, Boaz Nahum wrote:
> The follwing simple code ...
>
> ====================================
> interface I1 {void f();}
>
> interface I2 {
>
> void printMe()default { System.out.println("I2");}
>
> void f();
> }
>
> public static void main(String[] args) {
>
> I2 i2 = (I1 & I2) () -> {};
>
> System.out.println( "i2 is I2=" + (i2 instanceof I2));
>
> i2.printMe();
> }
> =================================
> Output is:
>
> -------------------------------------
> i2 is I2=false
> Exception in thread "main" java.lang.IncompatibleClassChangeError: Class
> question.lambda_intersection_types.Q$$Lambda$2 does not implement the
> requested interface question.lambda_intersection_types.I2
> -------------------------------------
>
> What is the correct behavior ?
>
More information about the lambda-dev
mailing list