hg: lambda/lambda/langtools: Implemented features are:
maurizio.cimadamore at oracle.com
maurizio.cimadamore at oracle.com
Fri Jul 30 07:49:03 PDT 2010
Changeset: b4b3b410e1c1
Author: mcimadamore
Date: 2010-07-30 15:47 +0100
URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/b4b3b410e1c1
Implemented features are:
*) Method References
Method references have been implemented using the 'infix' notation suggested by John Rose. For example, a method reference for a method m in class A is denoted as 'A#m'. Method references can include an actual argument types list (in order to disambiguate in case of overload resolution). Big thanks to John Rose, as I re-used most of the code for handling code generation of method handle literals.
*) Effectively final analysis
Local variables that are never assigned can now be referenced from a lambda body.
*) Removed explicit support for function types
The option -XDallowFunctionTypes has been removed. As a result, SAM types are the only legitimate target types for lambda expressions/method refs.
*) Miscellaneous bug fixes (thanks to Peter Levart for the feedback).
TODO:
*) break/continue/return
! src/share/classes/com/sun/runtime/ProxyHelper.java
+ src/share/classes/com/sun/source/tree/MemberReferenceTree.java
! src/share/classes/com/sun/source/tree/Tree.java
! src/share/classes/com/sun/source/tree/TreeVisitor.java
! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java
! src/share/classes/com/sun/source/util/TreeScanner.java
! src/share/classes/com/sun/tools/classfile/ClassTranslator.java
! src/share/classes/com/sun/tools/classfile/ClassWriter.java
! src/share/classes/com/sun/tools/classfile/ConstantPool.java
! src/share/classes/com/sun/tools/classfile/Dependencies.java
! src/share/classes/com/sun/tools/javac/code/Flags.java
! src/share/classes/com/sun/tools/javac/code/Source.java
! src/share/classes/com/sun/tools/javac/code/Type.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/Check.java
! src/share/classes/com/sun/tools/javac/comp/Flow.java
! src/share/classes/com/sun/tools/javac/comp/Infer.java
! src/share/classes/com/sun/tools/javac/comp/Lower.java
! src/share/classes/com/sun/tools/javac/comp/MemberEnter.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/CRTable.java
! src/share/classes/com/sun/tools/javac/jvm/ClassFile.java
! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java
! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
! src/share/classes/com/sun/tools/javac/jvm/Code.java
! src/share/classes/com/sun/tools/javac/jvm/Gen.java
! src/share/classes/com/sun/tools/javac/jvm/Items.java
! src/share/classes/com/sun/tools/javac/jvm/Pool.java
! src/share/classes/com/sun/tools/javac/jvm/Target.java
! src/share/classes/com/sun/tools/javac/parser/JavacParser.java
! src/share/classes/com/sun/tools/javac/parser/Scanner.java
! src/share/classes/com/sun/tools/javac/resources/compiler.properties
! src/share/classes/com/sun/tools/javac/tree/JCTree.java
! src/share/classes/com/sun/tools/javac/tree/Pretty.java
! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java
! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java
! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java
! src/share/classes/com/sun/tools/javac/tree/TreeScanner.java
! src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java
! src/share/classes/com/sun/tools/javac/util/Names.java
! src/share/classes/com/sun/tools/javap/ConstantWriter.java
! test/tools/javac/lambda/BadAccess.java
! test/tools/javac/lambda/BadAccess.out
+ test/tools/javac/lambda/BadAccess02.java
+ test/tools/javac/lambda/BadAccess02.out
! test/tools/javac/lambda/BadConv01.java
! test/tools/javac/lambda/BadConv02.java
! test/tools/javac/lambda/FuncType01.java
! test/tools/javac/lambda/LambdaConv04.java
+ test/tools/javac/lambda/LambdaConv08.java
+ test/tools/javac/lambda/MethodReference01.java
+ test/tools/javac/lambda/MethodReference02.java
+ test/tools/javac/lambda/MethodReference02.out
+ test/tools/javac/lambda/MethodReference03.java
+ test/tools/javac/lambda/MethodReference04.java
+ test/tools/javac/lambda/MethodReference04.out
+ test/tools/javac/lambda/MethodReference05.java
+ test/tools/javac/lambda/MethodReference05.out
+ test/tools/javac/lambda/MethodReference06.java
+ test/tools/javac/lambda/TargetType07.java
+ test/tools/javac/lambda/TargetType08.java
+ test/tools/javac/lambda/TargetType09.java
More information about the lambda-dev
mailing list