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.

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

Commit messages:
 - remove spaces from empty lines in text block
 - add bug number to test
 - copyright
 - update constant pool indexes in AnnoTest
 - set mandated flag for parameters of compact constructor
 - add javac testcase for implicit parameters
 - combine parameter names from LVT and MethodParameters
 - also require flags for synthetic
 - revert valueOf hack
 - adapt change to constant pool in test
 - ... and 4 more: https://git.openjdk.org/jdk/compare/9f8cc421...c9ba84c7

Changes: https://git.openjdk.org/jdk/pull/9862/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9862&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8292275
  Stats: 316 lines in 7 files changed: 210 ins; 23 del; 83 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

Reply via email to