hg: lambda/lambda/langtools: Add support for target-typing in conditional expressions.

maurizio.cimadamore at oracle.com maurizio.cimadamore at oracle.com
Mon Dec 5 10:42:53 PST 2011


Changeset: d4d26debfa91
Author:    mcimadamore
Date:      2011-12-05 18:42 +0000
URL:       http://hg.openjdk.java.net/lambda/lambda/langtools/rev/d4d26debfa91

Add support for target-typing in conditional expressions.
Conditional expressions now propagate target type to subterms according to JSR 335 EDR.

Example:

Callable<Integer> c = flag ? (() -> 23) : (() -> 42);

Note: For conditional expressions used in method invocation context, target-typing is only be enabled when compiling with the -XDcomplexinference flag.

! src/share/classes/com/sun/tools/javac/code/TypeTags.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/Infer.java
! src/share/classes/com/sun/tools/javac/resources/compiler.properties
! src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java
! test/tools/javac/conditional/Conditional.java
! test/tools/javac/diags/examples.not-yet.txt
+ test/tools/javac/lambda/TargetType32.java
+ test/tools/javac/lambda/TargetType32.out
+ test/tools/javac/lambda/TargetType33.java
+ test/tools/javac/lambda/TargetType33.out



More information about the lambda-dev mailing list