enhanced type-inference

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Fri Jan 25 09:49:07 PST 2013

Dear lambdackers,
I've just pushed a patch that enables a more general inference support 
for nested generic method calls/stuck expressions. This scheme has been 
available for a while in lambda-repo (when using the hidden flag 
-XDuseGraphInference), but we have now decided it's time to flip the 
switch and make it the default when using JDK 8. In the past few weeks 
I've been hunting down as many bugs in the new inference scheme as 
possible, in order to provide a smooth transition from the old world to 
the new one. I hope the transition is indeed smooth - but, given the 
nature of the change, I also expect bugs to pop up here and there, so 
please, keep throwing the kitchen sink at javac and report your 
experience back to us; without your valuable feedback and dedication we 
would never have gotten thus far.

Example of things that now work:

     Stream<Integer> si = ...
     List<Integer> l1 = si.into(new ArrayList<>()); //not really - too 
late for that ;-)
     List<Integer> l2 = si.collect(toList());
     List<Integer> l3 = si.collect(toCollection(ArrayList::new));


More information about the lambda-dev mailing list