-
Notifications
You must be signed in to change notification settings - Fork 381
Java 12-17API additions #10106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Java 12-17API additions #10106
Conversation
42c7d0a
to
ec22afe
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work on the draft - some quick feedback
.../test-super/com/google/gwt/dev/jjs/super/com/google/gwt/emultest/java12/lang/StringTest.java
Outdated
Show resolved
Hide resolved
user/test/com/google/gwt/emultest/java12/util/stream/CollectorsTest.java
Outdated
Show resolved
Hide resolved
.../com/google/gwt/dev/jjs/super/com/google/gwt/emultest/java12/util/stream/CollectorsTest.java
Outdated
Show resolved
Hide resolved
user/super/com/google/gwt/emul/java/util/stream/Collectors.java
Outdated
Show resolved
Hide resolved
.../com/google/gwt/dev/jjs/super/com/google/gwt/emultest/java12/util/stream/CollectorsTest.java
Outdated
Show resolved
Hide resolved
assertEquals(3, hideFromCompiler("foo").transform(String::length)); | ||
} | ||
|
||
public void testIndent() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please also include a set of these tests that does not do a hideFromCompiler, so we can make sure that if the compiler is able to constant-fold these method calls, that it does so correctly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did not implement any tests without hideFromCompiler
yet since I wasn't sure which methods need them. It seems that tests either hide all inputs from compiler (like the ones from https://github.com/gwtproject/gwt/pull/9975/files#diff-79013db0b72ddfb9522327d93e6c5804f44c160025590e971ddfc7fd4eb7c045R26 ) or hide nothing (https://github.com/zbynek/gwt/blob/f0c1486a46018aec9de93458136cfc161f569e81/user/test/com/google/gwt/emultest/java/lang/StringTest.java#L542 ). Also I'm not sure if it wouldn't be better to test the constant-folding optimization and verify that these are actually folded rather than make assertions where we don't know if we're testing folding or emulation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using hideFromCompiler ensures that the emulated sources provided can be called and function the way that the test expects. Passing a constant and allowing constant folding means that the operation will be performed by the compiler itself, using the JRE's own implementation, which does two things for us: we know that constant folding doesn't somehow break with this call, and that the JRE implementation doesn't behave in a way that fails the test.
This isn't a guarantee - the constant folding mechanism is pretty specific (I've been meaning to file a bug about that) and won't always kick in, but it does let us get a little more coverage.
077dfea
to
55d86e0
Compare
033deb4
to
b6adb5d
Compare
0257e71
to
b8996b5
Compare
ec661eb
to
a8e31dc
Compare
user/super/com/google/gwt/emul/java/util/stream/LongStream.java
Outdated
Show resolved
Hide resolved
...m/google/gwt/emultest/super/com/google/gwt/emultest/java17/util/stream/DoubleStreamTest.java
Outdated
Show resolved
Hide resolved
Co-authored-by: Colin Alworth <[email protected]>
https://github.com/zbynek/gwt/actions/runs/16452377759 is 🟢 , @niloc132 thanks for the feedback |
Fixes #9872
Fixes #10091
Fixes #9991