[lworld] RFR: 8280382: [lworld] JCWithField AST node support should evolve to work with value classes

Srikanth Adayapalam sadayapalam at openjdk.java.net
Fri Jan 28 05:29:35 UTC 2022


On Thu, 27 Jan 2022 19:24:47 GMT, Aggelos Biboudis <duke at openjdk.java.net> wrote:

> This PR ports basic `withField` tests from lworld-values to value-objects and extending some areas of code to support `withField` within value classes.
> 
> Nitpicking and a note: one of the error messages is now `compiler.err.primitive.or.value.class.instance.field.expected.here`. Would you propose to disambiguate further depending whether we are inside a `primitive` or a `value` class?

test/langtools/tools/javac/valhalla/value-objects/WithFieldOperatorTest.java line 33:

> 31:             x = __WithField(x.x, 12.0); // float cannot be assigned to int
> 32:             x = __WithField(x.v, null); // null cannot be assigned to value
> 33:             return x;

Null can be assigned to value, so this line should not trigger an error

test/langtools/tools/javac/valhalla/value-objects/WithFieldOperatorTest.out line 9:

> 7: WithFieldOperatorTest.java:31:34: compiler.err.prob.found.req: (compiler.misc.possible.loss.of.precision: double, int)
> 8: WithFieldOperatorTest.java:32:34: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: compiler.misc.type.null, WithFieldOperatorTest.V)
> 9: WithFieldOperatorTest.java:40:26: compiler.err.cant.assign.val.to.final.var: x

Error 8 should not be emitted

-------------

PR: https://git.openjdk.java.net/valhalla/pull/621



More information about the valhalla-dev mailing list