hg: valhalla/valhalla: 8197792: Allow updates to instance fields of value types via withfield by any method in the same nest

Srikanth srikanth.adayapalam at oracle.com
Tue Feb 20 07:23:58 UTC 2018



On Tuesday 20 February 2018 12:33 PM, srikanth.adayapalam at oracle.com wrote:
> Changeset: f039363534f3
> Author:    sadayapalam
> Date:      2018-02-20 12:28 +0530
> URL:       http://hg.openjdk.java.net/valhalla/valhalla/rev/f039363534f3
>
> 8197792: Allow updates to instance fields of value types via withfield by any method in the same nest

Notes:

     - This commit gets rid of all traces of the erstwhile static value 
factory mechanism (__ValueFactory modifier carried over from the VVT 
prototype)
     - Now __MakeDefault can be invoked anywhere - not just in the (no 
longer extant) value factories.
     - Updates to instance fields of value classes can occur from any 
method in the same nest and would be lowered using withfield
     - As of this commit, javac does not handle some complicate cases of 
field updates - it is statically enforced that the field being updated 
with withfield is a member of a value instance that is a local variable. 
(see JDK-8198408 for follow up)

Thanks!
Srikanth



>
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.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/Flow.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/MemberEnter.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.jshell/share/classes/jdk/jshell/CompletenessAnalyzer.java
> ! test/langtools/tools/javac/diags/examples.not-yet.txt
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckMakeDefault.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckMakeDefault.out
> - test/langtools/tools/javac/valhalla/lworld-values/CheckStaticFactoryNonValueClass.java
> - test/langtools/tools/javac/valhalla/lworld-values/CheckStaticFactoryNonValueClass.out
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckStaticFinalAssign.java
> - test/langtools/tools/javac/valhalla/lworld-values/CheckStaticValueFactory.java
> - test/langtools/tools/javac/valhalla/lworld-values/CheckStaticValueFactory.out
> ! test/langtools/tools/javac/valhalla/lworld-values/Point.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ValueCreationTest.java
> + test/langtools/tools/javac/valhalla/lworld-values/WithFieldNegativeTests.java
> + test/langtools/tools/javac/valhalla/lworld-values/WithFieldNegativeTests.out
>



More information about the valhalla-dev mailing list