hg: lambda/lambda/langtools: 8016177: structural most specific and stuckness; ...

maurizio.cimadamore at oracle.com maurizio.cimadamore at oracle.com
Thu Aug 8 06:31:51 PDT 2013


Changeset: 91c60b02c849
Author:    mcimadamore
Date:      2013-08-08 14:30 +0100
URL:       http://hg.openjdk.java.net/lambda/lambda/langtools/rev/91c60b02c849

8016177: structural most specific and stuckness
8016178: Order of unsticking functional expressions

Simplified interaction between stuck expressions and overload resolution. Now implicit lambdas are considered as stuck and cannot be used to disambiguate between multiple applicable methods (same holds for overloaded method reference). In such cases, disambiguation is only provided by the provisional applicability arity-based check. Added new warning (-Xlint:overloads) to flag potentially ambiguous declarations.

! src/share/classes/com/sun/tools/javac/code/Flags.java
! src/share/classes/com/sun/tools/javac/code/Lint.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/DeferredAttr.java
! src/share/classes/com/sun/tools/javac/comp/Infer.java
! src/share/classes/com/sun/tools/javac/comp/Resolve.java
! src/share/classes/com/sun/tools/javac/resources/compiler.properties
- test/tools/javac/Diagnostics/compressed/T8012003c.java
- test/tools/javac/Diagnostics/compressed/T8012003c.out
- test/tools/javac/diags/examples/BadArgTypesInLambda.java
+ test/tools/javac/diags/examples/PotentiallyAmbiguousOverload.java
! test/tools/javac/lambda/8016177/T8016177a.java
! test/tools/javac/lambda/8016177/T8016177a.out
! test/tools/javac/lambda/8016177/T8016177c.java
! test/tools/javac/lambda/8016177/T8016177c.out
! test/tools/javac/lambda/8019480/T8019480.out
! test/tools/javac/lambda/BadRecovery.out
! test/tools/javac/lambda/ErroneousLambdaExpr.java
+ test/tools/javac/lambda/ErroneousLambdaExpr.out
! test/tools/javac/lambda/MethodReference22.out
! test/tools/javac/lambda/MethodReference23.out
! test/tools/javac/lambda/MethodReference41.java
+ test/tools/javac/lambda/MethodReference41.out
! test/tools/javac/lambda/MethodReference42.java
+ test/tools/javac/lambda/MethodReference42.out
! test/tools/javac/lambda/MethodReference43.java
+ test/tools/javac/lambda/MethodReference43.out
! test/tools/javac/lambda/MethodReference44.java
+ test/tools/javac/lambda/MethodReference44.out
! test/tools/javac/lambda/MethodReference46.java
+ test/tools/javac/lambda/MethodReference46.out
! test/tools/javac/lambda/MethodReference47.java
! test/tools/javac/lambda/MethodReference47.out
! test/tools/javac/lambda/MethodReference48.java
+ test/tools/javac/lambda/MethodReference48.out
! test/tools/javac/lambda/MethodReference70.out
! test/tools/javac/lambda/MethodReference71.out
! test/tools/javac/lambda/MostSpecific04.java
+ test/tools/javac/lambda/MostSpecific04.out
! test/tools/javac/lambda/MostSpecific05.java
+ test/tools/javac/lambda/MostSpecific05.out
! test/tools/javac/lambda/MostSpecific08.java
+ test/tools/javac/lambda/MostSpecific08.out
! test/tools/javac/lambda/TargetType01.java
+ test/tools/javac/lambda/TargetType01.out
! test/tools/javac/lambda/TargetType02.java
+ test/tools/javac/lambda/TargetType02.out
! test/tools/javac/lambda/TargetType21.java
! test/tools/javac/lambda/TargetType21.out
! test/tools/javac/lambda/TargetType24.java
! test/tools/javac/lambda/TargetType24.out
! test/tools/javac/lambda/TargetType26.out
! test/tools/javac/lambda/TargetType39.out
! test/tools/javac/lambda/TargetType43.out
! test/tools/javac/lambda/TargetType57.out
! test/tools/javac/lambda/TargetType66.java
! test/tools/javac/lambda/TargetType66.out
! test/tools/javac/lambda/mostSpecific/StructuralMostSpecificTest.java
- test/tools/javac/lambda/typeInference/InferenceTest5.java
! test/tools/javac/lambda/typeInference/InferenceTest_neg1_2.out



More information about the lambda-dev mailing list