[lworld] RFR: 8244975: [lworld] Investigate if VM can implement Object::hashCode by calling ValueBootstrapMethods for inline types [v2]

David Simms dsimms at openjdk.java.net
Mon Aug 10 08:31:04 UTC 2020


On Mon, 10 Aug 2020 06:39:11 GMT, Srikanth Adayapalam <sadayapalam at openjdk.org> wrote:

>> David Simms has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   change javac not to generate equals/hashCode
>
> src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java line 1176:
> 
>> 1175:                         final List<Type> parameterTypes = methodDecl.sym.type.getParameterTypes();
>> 1176:                         switch (parameterTypes.size()) {
>> 1177:                             case 0:
> 
> I think this switch should be replaced with if (parameterTypes.size() == 0) - with only one case it reads off to use a
> switch.

Applied comments, thanks !

> src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java line 1196:
> 
>> 1195:
>> 1196:             if (requireToString) {
>> 1197:                 // public String toString() { throw new RuntimeException(message); }
> 
> The two statements preceding if (requireToString) viz
> make.at(tree.pos);
>             // Make a body comprising { throw new RuntimeException(""Internal error: This method must have been replaced by
>             javac"); } JCBlock body = make.Block(Flags.SYNTHETIC, List.of(make.Throw(
>                     make.NewClass(null,
>                             null,
>                             make.Ident(names.fromString("RuntimeException")),
>                             List.of(make.Literal(CLASS, "Internal error: This method must have been replaced by javac")),
>                             null))));
> 
> should be folded into the if (requireToString) itself for better readability and encapsulation

Applied comments, thanks !

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

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



More information about the valhalla-dev mailing list