hg: valhalla/valhalla/langtools: Add experimental support for generic class literals

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Mon Aug 18 14:07:15 UTC 2014


On 18/08/14 14:51, Paul Benedict wrote:
> Just asking so I can understand.... are specialized classes fully 
> reifiable?
Yeah - stuff like Box<int> is considered to be fully reified, as the 
specializer will turn it into a specialized Box${T=int} version where 
all references to the type-variables have been replaced with their 'I' 
counterparts. This means you can lift all restrictions that apply to 
reified types, such as no array creation, no instance of, unchecked cast 
only, no class literals.

Maurizio
>
>
> Cheers,
> Paul
>
>
> On Mon, Aug 18, 2014 at 8:29 AM, <maurizio.cimadamore at oracle.com 
> <mailto:maurizio.cimadamore at oracle.com>> wrote:
>
>     Changeset: 459f251550d5
>     Author:    mcimadamore
>     Date:      2014-08-18 14:25 +0100
>     URL:
>     http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/459f251550d5
>
>     Add experimental support for generic class literals
>     *) Now fully specialized classes literals are allowed with no
>     warnings.
>     *) Specializable but not reifiable class literals are allowed with
>     warnings.
>     *) Non-specializable class literals rejected.
>     *) Add new tests
>
>     ! src/share/classes/com/sun/tools/javac/comp/Attr.java
>     ! src/share/classes/com/sun/tools/javac/comp/Lower.java
>     ! src/share/classes/com/sun/tools/javac/comp/SpecializeTypes.java
>     ! src/share/classes/com/sun/tools/javac/jvm/Gen.java
>     ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java
>     ! src/share/classes/com/sun/tools/javac/resources/compiler.properties
>     ! src/share/classes/com/sun/tools/javac/tree/JCTree.java
>     + test/tools/javac/diags/examples/IllegalGenericTypeForClassLit.java
>     + test/tools/javac/diags/examples/UncheckedGenericClassLit.java
>     ! test/tools/javac/failover/CheckAttributedTree.java
>     + test/tools/javac/valhalla/typespec/ClassLiterals01.java
>     + test/tools/javac/valhalla/typespec/ClassLiterals01.out
>     ! test/tools/javac/valhalla/typespec/items/Opcodes.java
>     + test/tools/javac/valhalla/typespec/items/tests/TestClassLit.java
>
>



More information about the valhalla-dev mailing list