hg: lambda/lambda/langtools: Updated compiler implementation as per latest spec draft (v0.4.1)

maurizio.cimadamore at oracle.com maurizio.cimadamore at oracle.com
Wed Oct 26 08:43:47 PDT 2011


Changeset: afd33b3093d3
Author:    mcimadamore
Date:      2011-10-26 16:41 +0100
URL:       http://hg.openjdk.java.net/lambda/lambda/langtools/rev/afd33b3093d3

Updated compiler implementation as per latest spec draft (v0.4.1)
*) Lambda parameters are not allowed to shadow locals in the enclosing scope anymore.
Cleanup/improvements
*) Simplified logic for lambda attribution environment creation in Attr.java
*) Removed redundant flags in Flags.java
*) Simplified lambda AST node
*) Convert LambdaToInnerTranslator to a 'true' lambda/reference to inner class translator - i.e. so that it does not use ProxyHelper for method reference translation
*) Removed '-XDuseIndy'/'-XDuseProxy' options - now indy is the default choice when -XDlambdaToMethod is selected
*) Move code shared by both translators in the base class LambdaTranslator - now both translator share the same two-phase translation strategy (one step for analyzing lambdas/mrefs, one step for actual translation)
*) Cleanup Gen.java (all method references are now completely desugared when we get to code generation - no need to support bytecode translation for method references)

! src/share/classes/com/sun/runtime/ProxyHelper.java
! src/share/classes/com/sun/tools/javac/code/Flags.java
! src/share/classes/com/sun/tools/javac/code/Types.java
! src/share/classes/com/sun/tools/javac/comp/Attr.java
! src/share/classes/com/sun/tools/javac/comp/AttrContext.java
! src/share/classes/com/sun/tools/javac/comp/Flow.java
! src/share/classes/com/sun/tools/javac/comp/LambdaToInnerClass.java
! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java
! src/share/classes/com/sun/tools/javac/comp/LambdaTranslator.java
! src/share/classes/com/sun/tools/javac/comp/Resolve.java
! src/share/classes/com/sun/tools/javac/comp/TransTypes.java
! src/share/classes/com/sun/tools/javac/jvm/Gen.java
! src/share/classes/com/sun/tools/javac/tree/JCTree.java
! test/tools/javac/lambda/BadBreakContinue.out
! test/tools/javac/lambda/BadStatementInLambda02.out
! test/tools/javac/lambda/LambdaCapture01.java
! test/tools/javac/lambda/LambdaCapture02.java
! test/tools/javac/lambda/LambdaCapture03.java
! test/tools/javac/lambda/LambdaConv01.java
! test/tools/javac/lambda/LambdaScope01.java
+ test/tools/javac/lambda/LambdaScope04.java
+ test/tools/javac/lambda/LambdaScope04.out
+ test/tools/javac/lambda/MethodReference30.java
! test/tools/javac/lambda/sqe/lambdaExpression/LambdaTest4.java
! test/tools/javac/lambda/sqe/methodReference/BridgeMethod.java



More information about the lambda-dev mailing list