Skip to content
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

3.x: Use more appropriate operators when delegating to Flowable ops #6888

Merged
merged 2 commits into from Jan 28, 2020

Conversation

akarnokd
Copy link
Member

@akarnokd akarnokd commented Jan 28, 2020

Many Single and Maybe operators delegate to Flowable operators. This PR makes sure they use the most appropriate ones since there are Single- and Maybe-specific operators on Flowable for some time now.

Some concatenating non-delayed Single operators now use the Flowable.concatMapSingleDelayError(Functions.identity(), false) because an array or Iterable of Singles can't just throw anytime like a Publisher<Single<T>>'s Publisher could, hence a delay-error until boundary mode works the same but without the extra coordination of the more general Publisher variant.

Resolves #6865

Completable didn't have any delegation required changing.

@akarnokd akarnokd added this to the 3.0 milestone Jan 28, 2020
@codecov
Copy link

codecov bot commented Jan 28, 2020

Codecov Report

Merging #6888 into 3.x will decrease coverage by 0.05%.
The diff coverage is 100%.

Impacted file tree graph

@@             Coverage Diff              @@
##                3.x    #6888      +/-   ##
============================================
- Coverage     98.32%   98.27%   -0.06%     
- Complexity     6576     6596      +20     
============================================
  Files           736      741       +5     
  Lines         47235    47334      +99     
  Branches       6433     6432       -1     
============================================
+ Hits          46446    46516      +70     
- Misses          280      301      +21     
- Partials        509      517       +8
Impacted Files Coverage Δ Complexity Δ
...nternal/operators/single/SingleInternalHelper.java 95.45% <ø> (-0.7%) 4 <0> (-1)
...nal/operators/mixed/ObservableConcatMapSingle.java 100% <ø> (ø) 3 <0> (ø) ⬇️
...rators/mixed/FlowableConcatMapSinglePublisher.java 100% <100%> (ø) 2 <2> (?)
...rators/flowable/FlowableFlatMapMaybePublisher.java 100% <100%> (ø) 2 <2> (?)
src/main/java/io/reactivex/rxjava3/core/Maybe.java 100% <100%> (ø) 209 <2> (ø) ⬇️
...ators/flowable/FlowableFlatMapSinglePublisher.java 100% <100%> (ø) 2 <2> (?)
...rc/main/java/io/reactivex/rxjava3/core/Single.java 100% <100%> (ø) 188 <7> (+1) ⬆️
...erators/mixed/FlowableConcatMapMaybePublisher.java 100% <100%> (ø) 2 <2> (?)
.../operators/observable/ObservableFlatMapSingle.java 88.09% <0%> (-7.15%) 2% <0%> (ø)
...nternal/operators/flowable/FlowableScalarXMap.java 96.55% <0%> (-3.45%) 6% <0%> (-1%)
... and 26 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e077ed8...f9c3ef0. Read the comment docs.

@akarnokd akarnokd merged commit 1ede607 into ReactiveX:3.x Jan 28, 2020
@akarnokd akarnokd deleted the DelegationCleanup3x branch January 28, 2020 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3.x: Check Maybe/Single/Completable operators delegating to Flowable ops
2 participants