hg: valhalla/valhalla/langtools: Add initial conditional method support:

Ali Ebrahimi ali.ebrahimi1781 at gmail.com
Wed Oct 22 20:45:20 UTC 2014


Hi Maurizio,
One question:
in test method test1 of class TestRefOnly02:

class TestRefOnly02 {    static abstract class Foo<any T> {
abstract __RefOnly void m();    }
    <any Z> void test1() {        new Foo<Z>() { }; <======    }...}

This line should not produce compile  error:
compiler.err.does.not.override.abstract:


new Foo<Z>() { };

Since any type var "Z" can also be Ref type.

Am I missing some thing here?

Is this correct?
    <any Z> void test1() {        new Foo<Z>() {
         __RefOnly void m(){ }
        };    }

Best Regards,

Ali Ebrahimi


On Wed, Oct 22, 2014 at 10:41 PM, <maurizio.cimadamore at oracle.com> wrote:

> Changeset: 3ffc6541ddba
> Author:    mcimadamore
> Date:      2014-10-22 20:10 +0100
> URL:
> http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/3ffc6541ddba
>
> Add initial conditional method support:
> * __RefOnly keyword can be used to tag methods that should only be
> available on 'erased' receivers
> * Better encapsulation for TypeVariable.bound
> * Add support for context-dependent semantics for 'any' type-variables
>
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Enter.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java
> !
> src/jdk.compiler/share/classes/com/sun/tools/javac/comp/SpecializeTypes.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java
> !
> src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/Tokens.java
> !
> src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties
> !
> src/jdk.compiler/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java
> + test/tools/javac/diags/examples/IllegalRefOnlyCall.java
> ! test/tools/javac/lib/DPrinter.java
> + test/tools/javac/valhalla/typespec/TestRefOnly01.java
> + test/tools/javac/valhalla/typespec/TestRefOnly01.out
> + test/tools/javac/valhalla/typespec/TestRefOnly02.java
> + test/tools/javac/valhalla/typespec/TestRefOnly02.out
> + test/tools/javac/valhalla/typespec/TestRefOnly03.java
> + test/tools/javac/valhalla/typespec/TestRefOnly03.out
> + test/tools/javac/valhalla/typespec/TestRefOnly04.java
> + test/tools/javac/valhalla/typespec/TestRefOnly05.java
> + test/tools/javac/valhalla/typespec/TestRefOnly06.java
> + test/tools/javac/valhalla/typespec/items/tests/TestRefOnly.java
>
>


More information about the valhalla-dev mailing list