RFR(13): JDK-8217047: Provide a way to inject missing parameter names
Jan Lahoda
jan.lahoda at oracle.com
Wed Mar 20 19:02:11 UTC 2019
Hi Jon,
Thanks for the comments. I tried to improve the javadoc, added implNote,
and fixed Flags and MissingInfoHandler.
Regarding ClassReader always creating ParamSymbols, as the ParamSymbol
is not bigger than VarSymbol, I opted for simplicity and a more uniform
representation. But I can change that to use VarSymbol when the name is
known, should be simple.
Updated webrev:
http://cr.openjdk.java.net/~jlahoda/8217047/webrev.03/
Updated specdiff:
http://cr.openjdk.java.net/~jlahoda/8217047/specdiff.03/overview-summary.html
How does this look?
Thanks,
Jan
On 16.3.2019 01:32, Jonathan Gibbons wrote:
> Nice. Minor comments...
>
> The {@linkplain}don't seem to be working as expected; I suspect you
> need to import the type names. Also, you should use parens and arg types
> on links to methods; if you don't want the `(arg-types)` to show up in
> the docs, use the form of {@linkplain} that allows you to specify the
> text to be linked.
>
> The new method in JavacTask should have an implNote that says, "This
> Implementation does nothing." or words to that effect.
>
> (Aside: we have a more general problem with implNotes, that we have
> places where the default is to do nothing or throw UOE, but the reality
> is that the real-world impl of these methods does something useful. I
> don't know how/where we should document that behavior. But that's a
> bigger question for another time and another review.)
>
> Flags.java
>
> typo: friedly
>
> ClassReader ... just curious, you always create a new ParamSymbol, even
> when you could use a VarSymbol (because you have already filled in the
> name). I guess the code is neater/more consistent the way you have it.
>
> MissingInfoHandler ... no class-level doc comment. I realize it's an
> internal class but even so ...
>
> -- Jon
>
>
> On 01/21/2019 04:32 AM, Jan Lahoda wrote:
>> Hi,
>>
>> When a type is load from a classfile, and some or all of its methods
>> have neither the MethodParameters or LocalVariableTable attributes,
>> then the parameters of the methods have an artificial synthesized
>> name, which is visible through VariableElement.getSimpleName().
>>
>> The proposal here is to allow to plug in an external provider that
>> could provide more user-friendly names lazily/on demand. These could
>> originate e.g. in adjacent sources.
>>
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8217437
>> Webrev: http://cr.openjdk.java.net/~jlahoda/8217047/webrev.01/
>> Specdiff:
>> http://cr.openjdk.java.net/~jlahoda/8217047/specdiff.01/overview-summary.html
>>
>> CSR: https://bugs.openjdk.java.net/browse/JDK-8217437
>>
>> What do you think?
>>
>> Thanks,
>> Jan
>
More information about the compiler-dev
mailing list