hg: valhalla/valhalla: 8197799: Add support for ACC_FLATTENABLE flag for fields. (original) (raw)

Srikanth srikanth.adayapalam at oracle.com
Mon Feb 19 04:40:06 UTC 2018


On Monday 19 February 2018 10:07 AM, srikanth.adayapalam at oracle.com wrote:

Changeset: 51eab9946bcb Author: sadayapalam Date: 2018-02-19 10:02 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/51eab9946bcb

8197799: Add support for ACCFLATTENABLE flag for fields.

Notes:

    - Add support in javac and javap for ACC_FLATTENABLE flag for fields     - Introduce a new annotation in java.lang package called @Flattenable whose declaration looks like:

            @Target(ElementType.FIELD)             @Retention(RetentionPolicy.SOURCE) // lowered into flag bit, so not required further.             public @interface Flattenable {}

    - Reject at compile time any attempt to apply this annotation to a field whose type is not a value class     - Persist this field in the class file via ACC_FLATTENABLE flag bit (0x100) on the concerned field

Follow ups under progress:

JDK-8197911 <https://bugs.openjdk.java.net/browse/JDK-8197911>: A field flagged as ACC_FLATTENABLE must never store the null reference JDK-8197909 <https://bugs.openjdk.java.net/browse/JDK-8197909>: Check impact of ACC_FLATTENABLE on compiler diagnostic cyclic.value.type.membership

Thanks! Srikanth

+ src/java.base/share/classes/java/lang/Flattenable.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.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/resources/compiler.properties ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/AccessFlags.java + test/langtools/tools/javac/diags/examples/BadFlattenableAnno.java + test/langtools/tools/javac/valhalla/lworld-values/FlattenableFlagTest.java



More information about the valhalla-dev mailing list