hg: lambda/lambda/langtools: Disallow SAM conversion where target-type is an abstract class.
maurizio cimadamore
maurizio.cimadamore at oracle.com
Fri Feb 25 11:15:36 PST 2011
On 25/02/2011 19:01, Neal Gafter wrote:
> I don't understand this code in Types.java:
>
> + if (t.tsym.isInterface() && !allowAbstractClassInSamConversion) {
> + //t must be an abstract class or an interface
> + return new SAMResult(site, t,
> "target.for.lambda.conv.must.be.interface");
> + }
Should be
!t.tsym.isInterface()
Thanks
Maurizio
>
> It appears to disallow interfaces rather than disallowing classes.
>
> On Fri, Feb 25, 2011 at 10:08 AM, <maurizio.cimadamore at oracle.com
> <mailto:maurizio.cimadamore at oracle.com>> wrote:
>
> Changeset: 1b56e8c66272
> Author: mcimadamore
> Date: 2011-02-25 18:07 +0000
> URL:
> http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1b56e8c66272
>
> Disallow SAM conversion where target-type is an abstract class.
> This patch brings the compiler in line with what has been
> discussed by the lambda EG.
> Old semantics is still allowed (mostly for the purposes of running
> existing regression tests) using the hidden flag -XDabstractSAM.
>
> ! src/share/classes/com/sun/tools/javac/code/Types.java
> ! src/share/classes/com/sun/tools/javac/resources/compiler.properties
> ! test/tools/javac/defender/Pos01.java
> ! test/tools/javac/lambda/BadAccess.java
> ! test/tools/javac/lambda/BadAccess02.java
> ! test/tools/javac/lambda/BadBreakContinue.java
> ! test/tools/javac/lambda/BadReturn.java
> ! test/tools/javac/lambda/Defender01.java
> ! test/tools/javac/lambda/ExceptionTransparency01.java
> ! test/tools/javac/lambda/ExceptionTransparency02.java
> ! test/tools/javac/lambda/ExceptionTransparency03.java
> ! test/tools/javac/lambda/LambdaCapture01.java
> ! test/tools/javac/lambda/LambdaCapture02.java
> ! test/tools/javac/lambda/LambdaCapture03.java
> ! test/tools/javac/lambda/LambdaCapture04.java
> ! test/tools/javac/lambda/LambdaCapture05.java
> ! test/tools/javac/lambda/LambdaConv01.java
> ! test/tools/javac/lambda/LambdaConv03.java
> ! test/tools/javac/lambda/LambdaConv05.java
> ! test/tools/javac/lambda/LambdaConv06.java
> ! test/tools/javac/lambda/LambdaConv08.java
> ! test/tools/javac/lambda/LambdaConv09.java
> ! test/tools/javac/lambda/LambdaConv10.java
> ! test/tools/javac/lambda/LambdaConv13.java
> ! test/tools/javac/lambda/LambdaConversionTest.java
> ! test/tools/javac/lambda/LambdaExpr01.java
> ! test/tools/javac/lambda/LambdaExpr02.java
> ! test/tools/javac/lambda/LambdaExpr04.java
> ! test/tools/javac/lambda/LambdaExpr05.java
> ! test/tools/javac/lambda/LambdaExprNotVoid.java
> ! test/tools/javac/lambda/LambdaScope01.java
> ! test/tools/javac/lambda/LambdaScope03.java
> ! test/tools/javac/lambda/LocalBreakAndContinue.java
> ! test/tools/javac/lambda/MethodReference01.java
> ! test/tools/javac/lambda/MethodReference02.java
> ! test/tools/javac/lambda/MethodReference03.java
> ! test/tools/javac/lambda/MethodReference05.java
> ! test/tools/javac/lambda/MethodReference07.java
> ! test/tools/javac/lambda/MethodReference08.java
> ! test/tools/javac/lambda/MethodReference09.java
> ! test/tools/javac/lambda/MethodReference10.java
> ! test/tools/javac/lambda/MethodReference11.java
> ! test/tools/javac/lambda/MethodReference12.java
> ! test/tools/javac/lambda/MethodReference13.java
> ! test/tools/javac/lambda/MethodReference14.java
> ! test/tools/javac/lambda/MethodReference15.java
> ! test/tools/javac/lambda/MethodReference16.java
> ! test/tools/javac/lambda/MethodReference17.java
> ! test/tools/javac/lambda/MethodReference18.java
> ! test/tools/javac/lambda/MethodReference19.java
> ! test/tools/javac/lambda/MethodReference20.java
> ! test/tools/javac/lambda/NakedThis.java
> ! test/tools/javac/lambda/TargetType01.java
> ! test/tools/javac/lambda/TargetType03.java
> ! test/tools/javac/lambda/TargetType04.java
> ! test/tools/javac/lambda/TargetType05.java
> ! test/tools/javac/lambda/TargetType06.java
> ! test/tools/javac/lambda/TargetType07.java
> ! test/tools/javac/lambda/TargetType08.java
> ! test/tools/javac/lambda/TargetType10.java
> ! test/tools/javac/lambda/TargetType11.java
> ! test/tools/javac/lambda/TargetType12.java
> ! test/tools/javac/lambda/TargetType13.java
> ! test/tools/javac/lambda/TargetType14.java
> ! test/tools/javac/lambda/TargetType15.java
> ! test/tools/javac/lambda/TargetType16.java
> !
> test/tools/javac/lambda/badMemberRefBytecode/TestBadMemberRefBytecode.java
> ! test/tools/javac/meth/InvokeDynTrans.java
>
>
>
More information about the lambda-dev
mailing list