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

Srikanth Adayapalam sadayapalam at openjdk.java.net
Mon Aug 10 06:44:36 UTC 2020


On Fri, 7 Aug 2020 23:16:56 GMT, David Simms <dsimms at openjdk.org> wrote:

>> Use ValueBootstrapMethods for Object::hashCode()
>
> 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 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

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

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



More information about the valhalla-dev mailing list