Skip to content

Commit

Permalink
Fix the compose covariance
Browse files Browse the repository at this point in the history
  • Loading branch information
zsxwing committed Aug 14, 2014
1 parent 6c8ca2f commit 855252b
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions rxjava-core/src/main/java/rx/Observable.java
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ public void call(Subscriber<? super R> o) {
* @see <a href="https://github.com/Netflix/RxJava/wiki/Implementing-Your-Own-Operators">RxJava wiki: Implementing Your Own Operators</a>
* @since 0.20
*/
public <R> Observable<? extends R> compose(Transformer<? super T, ? extends R> transformer) {
public <R> Observable<R> compose(Transformer<? super T, R> transformer) {
return transformer.call(this);
}

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

Expand Down
8 changes: 4 additions & 4 deletions rxjava-core/src/test/java/rx/CovarianceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@ public Integer call(Media t1, Media t2) {
@Test
public void testCovarianceOfCompose() {
Observable<HorrorMovie> movie = Observable.<HorrorMovie> from(new HorrorMovie());
movie.compose(new Transformer<Movie, Movie>() {
Observable<Movie> movie2 = movie.compose(new Transformer<Movie, Movie>() {

@Override
public Observable<? extends Movie> call(Observable<? extends Movie> t1) {
public Observable<Movie> call(Observable<? extends Movie> t1) {
return Observable.from(new Movie());
}

Expand All @@ -75,9 +75,9 @@ public Observable<? extends Movie> call(Observable<? extends Movie> t1) {
@Test
public void testCovarianceOfCompose2() {
Observable<Movie> movie = Observable.<Movie> from(new HorrorMovie());
movie.compose(new Transformer<Movie, Movie>() {
Observable<HorrorMovie> movie2 = movie.compose(new Transformer<Movie, HorrorMovie>() {
@Override
public Observable<? extends Movie> call(Observable<? extends Movie> t1) {
public Observable<HorrorMovie> call(Observable<? extends Movie> t1) {
return Observable.from(new HorrorMovie());
}
});
Expand Down

0 comments on commit 855252b

Please sign in to comment.