Skip to content

Commit 855252b

Browse files
committed
Fix the compose covariance
1 parent 6c8ca2f commit 855252b

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

rxjava-core/src/main/java/rx/Observable.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ public void call(Subscriber<? super R> o) {
204204
* @see <a href="https://github.com/Netflix/RxJava/wiki/Implementing-Your-Own-Operators">RxJava wiki: Implementing Your Own Operators</a>
205205
* @since 0.20
206206
*/
207-
public <R> Observable<? extends R> compose(Transformer<? super T, ? extends R> transformer) {
207+
public <R> Observable<R> compose(Transformer<? super T, R> transformer) {
208208
return transformer.call(this);
209209
}
210210

@@ -213,7 +213,7 @@ public <R> Observable<? extends R> compose(Transformer<? super T, ? extends R> t
213213
* @warn more complete description needed
214214
* @since 0.20
215215
*/
216-
public static interface Transformer<T, R> extends Func1<Observable<? extends T>, Observable<? extends R>> {
216+
public static interface Transformer<T, R> extends Func1<Observable<? extends T>, Observable<R>> {
217217
// cover for generics insanity
218218
}
219219

rxjava-core/src/test/java/rx/CovarianceTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@ public Integer call(Media t1, Media t2) {
6262
@Test
6363
public void testCovarianceOfCompose() {
6464
Observable<HorrorMovie> movie = Observable.<HorrorMovie> from(new HorrorMovie());
65-
movie.compose(new Transformer<Movie, Movie>() {
65+
Observable<Movie> movie2 = movie.compose(new Transformer<Movie, Movie>() {
6666

6767
@Override
68-
public Observable<? extends Movie> call(Observable<? extends Movie> t1) {
68+
public Observable<Movie> call(Observable<? extends Movie> t1) {
6969
return Observable.from(new Movie());
7070
}
7171

@@ -75,9 +75,9 @@ public Observable<? extends Movie> call(Observable<? extends Movie> t1) {
7575
@Test
7676
public void testCovarianceOfCompose2() {
7777
Observable<Movie> movie = Observable.<Movie> from(new HorrorMovie());
78-
movie.compose(new Transformer<Movie, Movie>() {
78+
Observable<HorrorMovie> movie2 = movie.compose(new Transformer<Movie, HorrorMovie>() {
7979
@Override
80-
public Observable<? extends Movie> call(Observable<? extends Movie> t1) {
80+
public Observable<HorrorMovie> call(Observable<? extends Movie> t1) {
8181
return Observable.from(new HorrorMovie());
8282
}
8383
});

0 commit comments

Comments
 (0)