Record and annotation values

Remi Forax forax at univ-mlv.fr
Sun Apr 8 20:16:54 UTC 2018


Currently annotation values are limited to what is encodable as a constant in the constant pool.
With Condy, we can expand the number of values that can be encodable as a constant in the constant pool to the infinity by allowing a reference to any non-mutable class to be encoded as an annotation values.

For that we need to have a 'protocol' that
- encode an instance of a user defined non-mutable class as a condy by the compiler.
- decode an instance of a user defined non-mutable class by the JDK runtime.

Records with their constructors do not provide enough meta-information for that, the parameter names of the constructors may not be available at runtime.

So i think the constructors parameter names of a Record should be always recorded (as with --parameters was specified for the constructors) to enable non-mutable records to be annotation values.

Rémi
     


More information about the amber-spec-experts mailing list