RFR: 8292275: javac does not emit SYNTHETIC and MANDATED flags for parameters by default [v3]
Hannes Greule
duke at openjdk.org
Tue Aug 16 07:22:53 UTC 2022
> With this change, javac emits the MethodParameters attribute in cases where the JLS requires the information about synthetic and mandated parameters to be stored (see issue).
> Parameter names are *not* emitted unless the `-parameter` flag is set.
>
> The relevant changes are in `ClassWriter`, where we go through the params to see if we need the attribute if the `-parameter` flag is not set (if it is set, both names and flags will be emitted).
> For records, the mandated flag wasn't set at all, this is solved by the one line fix in `JavacParser`.
>
> The changes to `CreateSymbols` and `ClassReader` are needed as they weren't able to deal with missing names in the attribute.
> I also had to update some tests as they got a new constant pool entry.
>
> Only the mandated flag is covered by tests at the moment, as the occurrences are well-specified in the JLS.
> Please let me know if you want tests for specific appearances of synthetic parameters.
Hannes Greule has updated the pull request incrementally with one additional commit since the last revision:
fix line breaks
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/9862/files
- new: https://git.openjdk.org/jdk/pull/9862/files/e453380b..b3931507
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=9862&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=9862&range=01-02
Stats: 103 lines in 1 file changed: 0 ins; 0 del; 103 mod
Patch: https://git.openjdk.org/jdk/pull/9862.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/9862/head:pull/9862
PR: https://git.openjdk.org/jdk/pull/9862
More information about the build-dev
mailing list