@@ -67,9 +67,8 @@ class CompletenessTest extends JUnitSuite {
67
67
*/
68
68
def correspondenceChanges = Map (
69
69
// manually added entries for Java instance methods
70
- " aggregate(Func2[T, T, T])" -> " reduce((U, U) => U)" ,
71
- " aggregate(R, Func2[R, _ >: T, R])" -> " foldLeft(R)((R, T) => R)" ,
72
70
" all(Func1[_ >: T, Boolean])" -> " forall(T => Boolean)" ,
71
+ " ambWith(Observable[_ <: T])" -> " amb(Observable[U])" ,
73
72
" asObservable()" -> unnecessary,
74
73
" buffer(Int)" -> " tumblingBuffer(Int)" ,
75
74
" buffer(Int, Int)" -> " slidingBuffer(Int, Int)" ,
@@ -85,22 +84,25 @@ class CompletenessTest extends JUnitSuite {
85
84
" buffer(Observable[_ <: TOpening], Func1[_ >: TOpening, _ <: Observable[_ <: TClosing]])" -> " slidingBuffer(Observable[Opening])(Opening => Observable[Any])" ,
86
85
" cast(Class[R])" -> " [RxJava needs this one because `rx.Observable` is invariant. `Observable` in RxScala is covariant and does not need this operator.]" ,
87
86
" collect(R, Action2[R, _ >: T])" -> " foldLeft(R)((R, T) => R)" ,
87
+ " concatWith(Observable[_ <: T])" -> " [use `o1 ++ o2`]" ,
88
88
" contains(Any)" -> " contains(U)" ,
89
89
" count()" -> " length" ,
90
90
" debounce(Func1[_ >: T, _ <: Observable[U]])" -> " debounce(T => Observable[Any])" ,
91
91
" defaultIfEmpty(T)" -> " orElse(=> U)" ,
92
92
" delay(Func0[_ <: Observable[U]], Func1[_ >: T, _ <: Observable[V]])" -> " delay(() => Observable[Any], T => Observable[Any])" ,
93
93
" delay(Func1[_ >: T, _ <: Observable[U]])" -> " delay(T => Observable[Any])" ,
94
94
" dematerialize()" -> " dematerialize(<:<[Observable[T], Observable[Notification[U]]])" ,
95
+ " doOnCompleted(Action0)" -> " doOnCompleted(=> Unit)" ,
95
96
" doOnEach(Action1[Notification[_ >: T]])" -> " [use `doOnEach(T => Unit, Throwable => Unit, () => Unit)`]" ,
97
+ " doOnTerminate(Action0)" -> " doOnTerminate(=> Unit)" ,
96
98
" elementAtOrDefault(Int, T)" -> " elementAtOrDefault(Int, U)" ,
99
+ " finallyDo(Action0)" -> " finallyDo(=> Unit)" ,
97
100
" first(Func1[_ >: T, Boolean])" -> commentForFirstWithPredicate,
98
101
" firstOrDefault(T)" -> " firstOrElse(=> U)" ,
99
102
" firstOrDefault(T, Func1[_ >: T, Boolean])" -> " [use `.filter(condition).firstOrElse(default)`]" ,
100
103
" forEach(Action1[_ >: T])" -> " foreach(T => Unit)" ,
101
104
" forEach(Action1[_ >: T], Action1[Throwable])" -> " foreach(T => Unit, Throwable => Unit)" ,
102
105
" forEach(Action1[_ >: T], Action1[Throwable], Action0)" -> " foreach(T => Unit, Throwable => Unit, () => Unit)" ,
103
- " groupBy(Func1[_ >: T, _ <: K], Func1[_ >: T, _ <: R])" -> " [use `groupBy` and `map`]" ,
104
106
" groupByUntil(Func1[_ >: T, _ <: TKey], Func1[_ >: GroupedObservable[TKey, T], _ <: Observable[_ <: TDuration]])" -> " groupByUntil(T => K)((K, Observable[T]) => Observable[Any])" ,
105
107
" groupByUntil(Func1[_ >: T, _ <: TKey], Func1[_ >: T, _ <: TValue], Func1[_ >: GroupedObservable[TKey, TValue], _ <: Observable[_ <: TDuration]])" -> " groupByUntil(T => K, T => V)((K, Observable[V]) => Observable[Any])" ,
106
108
" groupJoin(Observable[T2], Func1[_ >: T, _ <: Observable[D1]], Func1[_ >: T2, _ <: Observable[D2]], Func2[_ >: T, _ >: Observable[T2], _ <: R])" -> " groupJoin(Observable[S])(T => Observable[Any], S => Observable[Any], (T, Observable[S]) => R)" ,
@@ -111,12 +113,12 @@ class CompletenessTest extends JUnitSuite {
111
113
" lastOrDefault(T, Func1[_ >: T, Boolean])" -> " [use `filter(predicate).lastOrElse(default)`]" ,
112
114
" lift(Operator[_ <: R, _ >: T])" -> " lift(Subscriber[R] => Subscriber[T])" ,
113
115
" limit(Int)" -> " take(Int)" ,
114
- " mapWithIndex(Func2[_ >: T, Integer, _ <: R])" -> " [combine `zipWithIndex` with `map` or with a for comprehension]" ,
115
116
" mergeMap(Func1[_ >: T, _ <: Observable[_ <: R]])" -> " flatMap(T => Observable[R])" ,
116
117
" mergeMap(Func1[_ >: T, _ <: Observable[_ <: R]], Func1[_ >: Throwable, _ <: Observable[_ <: R]], Func0[_ <: Observable[_ <: R]])" -> " flatMap(T => Observable[R], Throwable => Observable[R], () => Observable[R])" ,
117
118
" mergeMap(Func1[_ >: T, _ <: Observable[_ <: U]], Func2[_ >: T, _ >: U, _ <: R])" -> " flatMapWith(T => Observable[U])((T, U) => R)" ,
118
119
" mergeMapIterable(Func1[_ >: T, _ <: Iterable[_ <: R]])" -> " flatMapIterable(T => Iterable[R])" ,
119
120
" mergeMapIterable(Func1[_ >: T, _ <: Iterable[_ <: U]], Func2[_ >: T, _ >: U, _ <: R])" -> " flatMapIterableWith(T => Iterable[U])((T, U) => R)" ,
121
+ " mergeWith(Observable[_ <: T])" -> " merge(Observable[U])" ,
120
122
" multicast(Subject[_ >: T, _ <: R])" -> " multicast(Subject[R])" ,
121
123
" multicast(Func0[_ <: Subject[_ >: T, _ <: TIntermediate]], Func1[_ >: Observable[TIntermediate], _ <: Observable[TResult]])" -> " multicast(() => Subject[R])(Observable[R] => Observable[U])" ,
122
124
" ofType(Class[R])" -> " [use `filter(_.isInstanceOf[Class])" ,
@@ -127,20 +129,19 @@ class CompletenessTest extends JUnitSuite {
127
129
" onErrorFlatMap(Func1[OnErrorThrowable, _ <: Observable[_ <: T]])" -> " onErrorFlatMap((Throwable, Option[Any]) => Observable[U])" ,
128
130
" parallel(Func1[Observable[T], Observable[R]])" -> " parallel(Observable[T] => Observable[R])" ,
129
131
" parallel(Func1[Observable[T], Observable[R]], Scheduler)" -> " parallel(Observable[T] => Observable[R], Scheduler)" ,
130
- " publish(T)" -> " publish(U)" ,
131
- " publish(Func1[_ >: Observable[T], _ <: Observable[R]])" -> " publish(Observable[U] => Observable[R])" ,
132
- " publish(Func1[_ >: Observable[T], _ <: Observable[R]], T)" -> " publish(Observable[U] => Observable[R], U)" ,
132
+ " publish(Func1[_ >: Observable[T], _ <: Observable[R]])" -> " publish(Observable[T] => Observable[R])" ,
133
+ " publish(Func1[_ >: Observable[T], _ <: Observable[R]], T)" -> " publish(Observable[T] => Observable[R], T @uncheckedVariance)" ,
133
134
" publishLast(Func1[_ >: Observable[T], _ <: Observable[R]])" -> " publishLast(Observable[T] => Observable[R])" ,
134
135
" reduce(Func2[T, T, T])" -> " reduce((U, U) => U)" ,
135
136
" reduce(R, Func2[R, _ >: T, R])" -> " foldLeft(R)((R, T) => R)" ,
136
- " replay(Func1[_ >: Observable[T], _ <: Observable[R]])" -> " replay(Observable[U ] => Observable[R])" ,
137
- " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Int)" -> " replay(Observable[U ] => Observable[R], Int)" ,
138
- " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Int, Long, TimeUnit)" -> " replay(Observable[U ] => Observable[R], Int, Duration)" ,
139
- " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Int, Long, TimeUnit, Scheduler)" -> " replay(Observable[U ] => Observable[R], Int, Duration, Scheduler)" ,
140
- " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Int, Scheduler)" -> " replay(Observable[U ] => Observable[R], Int, Scheduler)" ,
141
- " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Long, TimeUnit)" -> " replay(Observable[U ] => Observable[R], Duration)" ,
142
- " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Long, TimeUnit, Scheduler)" -> " replay(Observable[U ] => Observable[R], Duration, Scheduler)" ,
143
- " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Scheduler)" -> " replay(Observable[U ] => Observable[R], Scheduler)" ,
137
+ " replay(Func1[_ >: Observable[T], _ <: Observable[R]])" -> " replay(Observable[T ] => Observable[R])" ,
138
+ " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Int)" -> " replay(Observable[T ] => Observable[R], Int)" ,
139
+ " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Int, Long, TimeUnit)" -> " replay(Observable[T ] => Observable[R], Int, Duration)" ,
140
+ " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Int, Long, TimeUnit, Scheduler)" -> " replay(Observable[T ] => Observable[R], Int, Duration, Scheduler)" ,
141
+ " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Int, Scheduler)" -> " replay(Observable[T ] => Observable[R], Int, Scheduler)" ,
142
+ " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Long, TimeUnit)" -> " replay(Observable[T ] => Observable[R], Duration)" ,
143
+ " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Long, TimeUnit, Scheduler)" -> " replay(Observable[T ] => Observable[R], Duration, Scheduler)" ,
144
+ " replay(Func1[_ >: Observable[T], _ <: Observable[R]], Scheduler)" -> " replay(Observable[T ] => Observable[R], Scheduler)" ,
144
145
" retry(Func2[Integer, Throwable, Boolean])" -> " retry((Int, Throwable) => Boolean)" ,
145
146
" sample(Observable[U])" -> " sample(Observable[Any])" ,
146
147
" scan(Func2[T, T, T])" -> unnecessary,
@@ -153,9 +154,8 @@ class CompletenessTest extends JUnitSuite {
153
154
" skip(Long, TimeUnit, Scheduler)" -> " drop(Duration, Scheduler)" ,
154
155
" skipWhile(Func1[_ >: T, Boolean])" -> " dropWhile(T => Boolean)" ,
155
156
" skipWhileWithIndex(Func2[_ >: T, Integer, Boolean])" -> unnecessary,
156
- " skipUntil(Observable[U])" -> " dropUntil(Observable[E ])" ,
157
+ " skipUntil(Observable[U])" -> " dropUntil(Observable[Any ])" ,
157
158
" startWith(T)" -> " [use `item +: o`]" ,
158
- " startWith(Array[T])" -> " [use `Observable.items(items) ++ o`]" ,
159
159
" startWith(Array[T], Scheduler)" -> " [use `Observable.items(items).subscribeOn(scheduler) ++ o`]" ,
160
160
" startWith(Iterable[T])" -> " [use `Observable.from(iterable) ++ o`]" ,
161
161
" startWith(Iterable[T], Scheduler)" -> " [use `Observable.from(iterable).subscribeOn(scheduler) ++ o`]" ,
@@ -175,9 +175,12 @@ class CompletenessTest extends JUnitSuite {
175
175
" takeLastBuffer(Int, Long, TimeUnit, Scheduler)" -> commentForTakeLastBuffer,
176
176
" takeLastBuffer(Long, TimeUnit)" -> commentForTakeLastBuffer,
177
177
" takeLastBuffer(Long, TimeUnit, Scheduler)" -> commentForTakeLastBuffer,
178
+ " takeUntil(Observable[_ <: E])" -> " takeUntil(Observable[Any])" ,
178
179
" takeWhileWithIndex(Func2[_ >: T, _ >: Integer, Boolean])" -> " [use `.zipWithIndex.takeWhile{case (elem, index) => condition}.map(_._1)`]" ,
179
- " timeout(Func0[_ <: Observable[U]], Func1[_ >: T, _ <: Observable[V]], Observable[_ <: T])" -> " timeout(() => Observable[U], T => Observable[V], Observable[O])" ,
180
- " timeout(Func1[_ >: T, _ <: Observable[V]], Observable[_ <: T])" -> " timeout(() => Observable[U], T => Observable[V])" ,
180
+ " timeout(Func0[_ <: Observable[U]], Func1[_ >: T, _ <: Observable[V]], Observable[_ <: T])" -> " timeout(() => Observable[Any], T => Observable[Any], Observable[U])" ,
181
+ " timeout(Func1[_ >: T, _ <: Observable[V]], Observable[_ <: T])" -> " timeout(T => Observable[Any], Observable[U])" ,
182
+ " timeout(Func0[_ <: Observable[U]], Func1[_ >: T, _ <: Observable[V]])" -> " timeout(() => Observable[Any], T => Observable[Any])" ,
183
+ " timeout(Func1[_ >: T, _ <: Observable[V]])" -> " timeout(T => Observable[Any])" ,
181
184
" timeout(Long, TimeUnit, Observable[_ <: T])" -> " timeout(Duration, Observable[U])" ,
182
185
" timeout(Long, TimeUnit, Observable[_ <: T], Scheduler)" -> " timeout(Duration, Observable[U], Scheduler)" ,
183
186
" timer(Long, Long, TimeUnit)" -> " timer(Duration, Duration)" ,
@@ -201,17 +204,12 @@ class CompletenessTest extends JUnitSuite {
201
204
202
205
// manually added entries for Java static methods
203
206
" amb(Iterable[_ <: Observable[_ <: T]])" -> " amb(Observable[T]*)" ,
204
- " average(Observable[Integer])" -> averageProblem,
205
- " averageDoubles(Observable[Double])" -> averageProblem,
206
- " averageFloats(Observable[Float])" -> averageProblem,
207
- " averageLongs(Observable[Long])" -> averageProblem,
208
207
" create(OnSubscribeFunc[T])" -> " create(Observer[T] => Subscription)" ,
209
208
" create(OnSubscribe[T])" -> " apply(Subscriber[T] => Unit)" ,
210
209
" combineLatest(Observable[_ <: T1], Observable[_ <: T2], Func2[_ >: T1, _ >: T2, _ <: R])" -> " combineLatest(Observable[U])" ,
211
210
" combineLatest(List[_ <: Observable[_ <: T]], FuncN[_ <: R])" -> " combineLatest(Seq[Observable[T]])(Seq[T] => R)" ,
212
211
" concat(Observable[_ <: Observable[_ <: T]])" -> " concat(<:<[Observable[T], Observable[Observable[U]]])" ,
213
212
" defer(Func0[_ <: Observable[_ <: T]])" -> " defer(=> Observable[T])" ,
214
- " from(Array[T])" -> " items(T*)" ,
215
213
" from(<repeated...>[T])" -> " items(T*)" ,
216
214
" from(Array[T], Scheduler)" -> " from(Iterable[T], Scheduler)" ,
217
215
" from(Iterable[_ <: T])" -> " from(Iterable[T])" ,
@@ -233,16 +231,10 @@ class CompletenessTest extends JUnitSuite {
233
231
" mergeDelayError(Observable[_ <: Observable[_ <: T]])" -> " flattenDelayError(<:<[Observable[T], Observable[Observable[U]]])" ,
234
232
" parallelMerge(Observable[Observable[T]], Int)" -> " parallelMerge(Int)(<:<[Observable[T], Observable[Observable[U]]])" ,
235
233
" parallelMerge(Observable[Observable[T]], Int, Scheduler)" -> " parallelMerge(Int, Scheduler)(<:<[Observable[T], Observable[Observable[U]]])" ,
236
- " pivot(Observable[GroupedObservable[K1, GroupedObservable[K2, T]]])" -> " pivot(<:<[Observable[T], Observable[(K1, Observable[(K2, Observable[U])])]])" ,
237
234
" sequenceEqual(Observable[_ <: T], Observable[_ <: T])" -> " sequenceEqual(Observable[U])" ,
238
235
" sequenceEqual(Observable[_ <: T], Observable[_ <: T], Func2[_ >: T, _ >: T, Boolean])" -> " sequenceEqualWith(Observable[U])((U, U) => Boolean)" ,
239
236
" range(Int, Int)" -> " [use `(start until (start + count)).toObservable` instead of `range(start, count)`]" ,
240
237
" range(Int, Int, Scheduler)" -> " [use `(start until (start + count)).toObservable.subscribeOn(scheduler)` instead of `range(start, count, scheduler)`]`]" ,
241
- " sum(Observable[Integer])" -> " sum(Numeric[U])" ,
242
- " sumDoubles(Observable[Double])" -> " sum(Numeric[U])" ,
243
- " sumFloats(Observable[Float])" -> " sum(Numeric[U])" ,
244
- " sumLongs(Observable[Long])" -> " sum(Numeric[U])" ,
245
- " switchDo(Observable[_ <: Observable[_ <: T]])" -> deprecated,
246
238
" switchOnNext(Observable[_ <: Observable[_ <: T]])" -> " switch(<:<[Observable[T], Observable[Observable[U]]])" ,
247
239
" zip(Observable[_ <: T1], Observable[_ <: T2], Func2[_ >: T1, _ >: T2, _ <: R])" -> " [use instance method `zip` and `map`]" ,
248
240
" zip(Observable[_ <: Observable[_]], FuncN[_ <: R])" -> " [use `zip` in companion object and `map`]" ,
0 commit comments