2.x: Java 9 compatibility fixes (March 3)#5153
Merged
akarnokd merged 1 commit intoReactiveX:2.xfrom Mar 3, 2017
Merged
Conversation
Codecov Report
@@ Coverage Diff @@
## 2.x #5153 +/- ##
============================================
+ Coverage 95.85% 95.99% +0.13%
- Complexity 5603 5608 +5
============================================
Files 620 620
Lines 39856 39856
Branches 5604 5604
============================================
+ Hits 38205 38258 +53
+ Misses 660 633 -27
+ Partials 991 965 -26
Continue to review full report at Codecov.
|
JakeWharton
approved these changes
Mar 3, 2017
Contributor
|
Hopefully Travis adds early JDK 9 builds soon. |
Member
Author
|
If you need only JDK 9, that's possible with some experimental setup. The bigger problem is that Gradle 3.x doesn't work on Jigsaw enabled Jdk 9 builds such as 154+. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Java 9 has changed its overload resolution algorithm and things that resolved unambiguously in Java 8 no longer resolve:
With the code above, javac 8, Eclipse and IntelliJ 2017 EAP picks
Flowable.subscribe(FlowableSubscriber<? super T> s)as expected. However, javac 9 finds it ambiguous withFlowable.subscribe(Subscriber<? super T> s)despite IntelliJ 2017 EAP not indicating any error and still jumping to the right method via CTRL+Click.The problem may come from the
? extends Tpart of the declaration. Having justFlowable<T>compiles properly with javac9.Luckily, we don't need
? extends Tand this PR changes the internal signatures of the affected components.