spring cleaning in the lambda (langtools) repository

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Tue Apr 10 09:39:35 PDT 2012

in the past week I've been busy cleaning up the langtools lambda 
repository. The goal of this work is to minimize differences between the 
JDK 8 repository and the lambda repository - as you all know, we've been 
working for the last two year in the lambda branch, we went back and 
forth on few items and that cause the two codebases to diverge a little 
bit. It is also time to bring the code in sync with the latest spec EDR 
(more on that below).

The cleanup focus on the following areas:

*) Remove experimental support for exception transparency
*) Cleanup attribution code for diamond
*) Bring inference/overload resolution in sync with latest JDK 8 changes
*) Remove support for obsolete -XDcomplexinference option
*) Merge with JDK8-b33

As you can see from the changeset [1] - the number of files touched is 
quite large. While I took (as usual) all necessary steps to make sure 
that no new regression was introduced, please be patient if some mistake 
slipped through ;-)

The next step, as far as langtools in concerned, is to partially rewrite 
the type-system support for lambda/method reference to bring it in sync 
with the latest EDR. This rewrital will be built on top of some patches 
that I've been working on in the JDK 8 repository over the last few months:

7129801 - Merge the two method applicability routines
7151492 - Encapsulate check logic into Attr.ResultInfo
7151580 - Separate DA/DU logic from exception checking logic in Flow.java
7132880 - Resolve should support nested resolution contexts
7154127 - Inference cleanup: remove bound check analysis from visitors 
in Types.java
7133185 - Update 292 overload resolution logic to match JLS
7133238 - Merge proto-kind and proto-type into a single result class
7144506 - Attr.checkMethod should be called after inference variables 
have been fixed
7148164 - attribution code for diamond should not rely on mutable state
7148622 - Some diagnostic methods do not go through Log.report

Once the rewrital is done and proper testing has been made, we can start 
working on porting the type-system stuff back to the JDK 8 repository.

[1] - http://hg.openjdk.java.net/lambda/lambda/langtools/rev/147365ae04c5


More information about the lambda-dev mailing list