@@ -228,160 +228,163 @@ object IArray {
228
228
229
229
/** All the methods on Array[T] that don't mutate in-place can be used with IArray[T].
230
230
*/
231
- given arrayOps : [ T ]( arr : IArray [ T ]) {
232
- def ++ [ U >: T : ClassTag ](that : IArray [U ]): IArray [U ] =
231
+ given arrayOps : Object {
232
+ def [ T , U >: T : ClassTag ]( arr : IArray [ T ]) ++ (that : IArray [U ]): IArray [U ] =
233
233
(arr.asInstanceOf [Array [T ]] ++ that.asInstanceOf [Array [U ]]).asInstanceOf
234
234
235
- def contains (elem : T ): Boolean =
235
+ def [ T ]( arr : IArray [ T ]) contains(elem : T ): Boolean =
236
236
arr.asInstanceOf [Array [T ]].contains(elem)
237
237
238
- def count (p : T => Boolean ): Int =
238
+ def [ T ]( arr : IArray [ T ]) count(p : T => Boolean ): Int =
239
239
arr.asInstanceOf [Array [T ]].count(p)
240
240
241
- def drop (n : Int ): IArray [T ] =
241
+ def [ T ]( arr : IArray [ T ]) drop(n : Int ): IArray [T ] =
242
242
arr.asInstanceOf [Array [T ]].drop(n).asInstanceOf
243
243
244
- def dropRight (n : Int ): IArray [T ] =
244
+ def [ T ]( arr : IArray [ T ]) dropRight(n : Int ): IArray [T ] =
245
245
arr.asInstanceOf [Array [T ]].dropRight(n).asInstanceOf
246
246
247
- def dropWhile (p : T => Boolean ): IArray [T ] =
247
+ def [ T ]( arr : IArray [ T ]) dropWhile(p : T => Boolean ): IArray [T ] =
248
248
arr.asInstanceOf [Array [T ]].dropWhile(p).asInstanceOf
249
249
250
- def exists (p : T => Boolean ): IArray [T ] =
250
+ def [ T ]( arr : IArray [ T ]) exists(p : T => Boolean ): IArray [T ] =
251
251
arr.asInstanceOf [Array [T ]].exists(p).asInstanceOf
252
252
253
- def filter (p : T => Boolean ): IArray [T ] =
253
+ def [ T ]( arr : IArray [ T ]) filter(p : T => Boolean ): IArray [T ] =
254
254
arr.asInstanceOf [Array [T ]].filter(p).asInstanceOf
255
255
256
- def filterNot (p : T => Boolean ): IArray [T ] =
256
+ def [ T ]( arr : IArray [ T ]) filterNot(p : T => Boolean ): IArray [T ] =
257
257
arr.asInstanceOf [Array [T ]].filterNot(p).asInstanceOf
258
258
259
- def find (p : T => Boolean ): Option [T ] =
259
+ def [ T ]( arr : IArray [ T ]) find(p : T => Boolean ): Option [T ] =
260
260
arr.asInstanceOf [Array [T ]].find(p).asInstanceOf
261
261
262
- def flatMap [ U : ClassTag ](f : T => IterableOnce [U ]): IArray [U ] =
262
+ def [ T , U : ClassTag ]( arr : IArray [ T ]) flatMap (f : T => IterableOnce [U ]): IArray [U ] =
263
263
arr.asInstanceOf [Array [T ]].flatMap(f).asInstanceOf
264
264
265
- def flatten [ U : ClassTag ](given T => Iterable [U ]): IArray [U ] =
265
+ def [ T , U : ClassTag ]( arr : IArray [ T ]) flatten (given T => Iterable [U ]): IArray [U ] =
266
266
arr.asInstanceOf [Array [T ]].flatten.asInstanceOf
267
267
268
- def fold [ U >: T : ClassTag ](z : U )(op : (U , U ) => U ): U =
268
+ def [ T , U >: T : ClassTag ]( arr : IArray [ T ]) fold (z : U )(op : (U , U ) => U ): U =
269
269
arr.asInstanceOf [Array [T ]].fold(z)(op).asInstanceOf
270
270
271
- def foldLeft [ U >: T : ClassTag ](z : U )(op : (U , T ) => U ): U =
271
+ def [ T , U >: T : ClassTag ]( arr : IArray [ T ]) foldLeft (z : U )(op : (U , T ) => U ): U =
272
272
arr.asInstanceOf [Array [T ]].foldLeft(z)(op).asInstanceOf
273
273
274
- def foldRight [ U >: T : ClassTag ](z : U )(op : (T , U ) => U ): U =
274
+ def [ T , U >: T : ClassTag ]( arr : IArray [ T ]) foldRight (z : U )(op : (T , U ) => U ): U =
275
275
arr.asInstanceOf [Array [T ]].foldRight(z)(op).asInstanceOf
276
276
277
- def forall (p : T => Boolean ): Boolean =
277
+ def [ T ]( arr : IArray [ T ]) forall(p : T => Boolean ): Boolean =
278
278
arr.asInstanceOf [Array [T ]].forall(p)
279
279
280
- def foreach [ U ] (f : T => U ): Unit =
280
+ def [ T , U ]( arr : IArray [ T ]) foreach (f : T => U ): Unit =
281
281
arr.asInstanceOf [Array [T ]].foreach(f)
282
282
283
- def head : T =
283
+ def [ T ]( arr : IArray [ T ]) head : T =
284
284
arr.asInstanceOf [Array [T ]].head
285
285
286
- def headOption : Option [T ] =
286
+ def [ T ]( arr : IArray [ T ]) headOption : Option [T ] =
287
287
arr.asInstanceOf [Array [T ]].headOption
288
288
289
- def indexOf (elem : T , from : Int = 0 ): Int =
289
+ def [ T ]( arr : IArray [ T ]) indexOf(elem : T , from : Int = 0 ): Int =
290
290
arr.asInstanceOf [Array [T ]].indexOf(elem, from)
291
291
292
- def indexWhere (p : T => Boolean , from : Int = 0 ): Int =
292
+ def [ T ]( arr : IArray [ T ]) indexWhere(p : T => Boolean , from : Int = 0 ): Int =
293
293
arr.asInstanceOf [Array [T ]].indexWhere(p, from)
294
294
295
- def indices : Range =
295
+ def [ T ]( arr : IArray [ T ]) indices : Range =
296
296
arr.asInstanceOf [Array [T ]].indices.asInstanceOf
297
297
298
- def init : IArray [T ] =
298
+ def [ T ]( arr : IArray [ T ]) init : IArray [T ] =
299
299
arr.asInstanceOf [Array [T ]].init.asInstanceOf
300
300
301
- def isEmpty : Boolean =
301
+ def [ T ]( arr : IArray [ T ]) isEmpty : Boolean =
302
302
arr.asInstanceOf [Array [T ]].isEmpty
303
303
304
- def iterator : Iterator [T ] =
304
+ def [ T ]( arr : IArray [ T ]) iterator : Iterator [T ] =
305
305
arr.asInstanceOf [Array [T ]].iterator
306
306
307
- def last : T =
307
+ def [ T ]( arr : IArray [ T ]) last : T =
308
308
arr.asInstanceOf [Array [T ]].last
309
309
310
- def lastOption : Option [T ] =
310
+ def [ T ]( arr : IArray [ T ]) lastOption : Option [T ] =
311
311
arr.asInstanceOf [Array [T ]].lastOption
312
312
313
- def lastIndexOf (elem : T , from : Int = 0 ): Int =
313
+ def [ T ]( arr : IArray [ T ]) lastIndexOf(elem : T , from : Int = 0 ): Int =
314
314
arr.asInstanceOf [Array [T ]].lastIndexOf(elem, from)
315
315
316
- def lastIndexWhere (p : T => Boolean , from : Int = 0 ): Int =
316
+ def [ T ]( arr : IArray [ T ]) lastIndexWhere(p : T => Boolean , from : Int = 0 ): Int =
317
317
arr.asInstanceOf [Array [T ]].lastIndexWhere(p, from)
318
318
319
- def map [ U : ClassTag ](f : T => U ): IArray [U ] =
319
+ def [ T , U : ClassTag ]( arr : IArray [ T ]) map (f : T => U ): IArray [U ] =
320
320
arr.asInstanceOf [Array [T ]].map(f).asInstanceOf
321
321
322
- def nonEmpty : Boolean =
322
+ def [ T ]( arr : IArray [ T ]) nonEmpty : Boolean =
323
323
arr.asInstanceOf [Array [T ]].nonEmpty
324
324
325
- def partition (p : T => Boolean ): (IArray [T ], IArray [T ]) = arr.asInstanceOf [Array [T ]].partition(p) match {
326
- case (x, y) => (x.asInstanceOf [IArray [T ]], y.asInstanceOf [IArray [T ]])
327
- }
325
+ def [T ](arr : IArray [T ]) partition(p : T => Boolean ): (IArray [T ], IArray [T ]) =
326
+ arr.asInstanceOf [Array [T ]].partition(p) match {
327
+ case (x, y) => (x.asInstanceOf [IArray [T ]], y.asInstanceOf [IArray [T ]])
328
+ }
328
329
329
- def reverse : IArray [T ] =
330
+ def [ T ]( arr : IArray [ T ]) reverse : IArray [T ] =
330
331
arr.asInstanceOf [Array [T ]].reverse.asInstanceOf
331
332
332
- def scan [ U >: T : ClassTag ](z : U )(op : (U , U ) => U ): Array [U ] =
333
+ def [ T , U >: T : ClassTag ]( arr : IArray [ T ]) scan (z : U )(op : (U , U ) => U ): Array [U ] =
333
334
arr.asInstanceOf [Array [T ]].scan(z)(op).asInstanceOf
334
335
335
- def scanLeft [ U : ClassTag ](z : U )(op : (U , T ) => U ): Array [U ] =
336
+ def [ T , U : ClassTag ]( arr : IArray [ T ]) scanLeft (z : U )(op : (U , T ) => U ): Array [U ] =
336
337
arr.asInstanceOf [Array [T ]].scanLeft(z)(op).asInstanceOf
337
338
338
- def scanRight [ U : ClassTag ](z : U )(op : (T , U ) => U ): Array [U ] =
339
+ def [ T , U : ClassTag ]( arr : IArray [ T ]) scanRight (z : U )(op : (T , U ) => U ): Array [U ] =
339
340
arr.asInstanceOf [Array [T ]].scanRight(z)(op).asInstanceOf
340
341
341
- def size : Int =
342
+ def [ T ]( arr : IArray [ T ]) size : Int =
342
343
arr.asInstanceOf [Array [T ]].size
343
344
344
- def slice (from : Int , until : Int ): Array [T ] =
345
+ def [ T ]( arr : IArray [ T ]) slice(from : Int , until : Int ): Array [T ] =
345
346
arr.asInstanceOf [Array [T ]].slice(from, until).asInstanceOf
346
347
347
- def sortBy [ U : ClassTag ](f : T => U )(given math .Ordering [U ]): IArray [T ] =
348
+ def [ T , U : ClassTag ]( arr : IArray [ T ]) sortBy (f : T => U )(given math .Ordering [U ]): IArray [T ] =
348
349
arr.asInstanceOf [Array [T ]].sortBy(f).asInstanceOf
349
350
350
- def sortWith (f : (T , T ) => Boolean ): IArray [T ] =
351
+ def [ T ]( arr : IArray [ T ]) sortWith(f : (T , T ) => Boolean ): IArray [T ] =
351
352
arr.asInstanceOf [Array [T ]].sortWith(f).asInstanceOf
352
353
353
- def sorted (given math .Ordering [T ]): IArray [T ] =
354
+ def [ T ]( arr : IArray [ T ]) sorted(given math .Ordering [T ]): IArray [T ] =
354
355
arr.asInstanceOf [Array [T ]].sorted.asInstanceOf
355
356
356
- def span (p : T => Boolean ): (IArray [T ], IArray [T ]) = arr.asInstanceOf [Array [T ]].span(p) match {
357
- case (x, y) => (x.asInstanceOf [IArray [T ]], y.asInstanceOf [IArray [T ]])
358
- }
357
+ def [T ](arr : IArray [T ]) span(p : T => Boolean ): (IArray [T ], IArray [T ]) =
358
+ arr.asInstanceOf [Array [T ]].span(p) match {
359
+ case (x, y) => (x.asInstanceOf [IArray [T ]], y.asInstanceOf [IArray [T ]])
360
+ }
359
361
360
- def splitAt (n : Int ): (IArray [T ], IArray [T ]) = arr.asInstanceOf [Array [T ]].splitAt(n) match {
361
- case (x, y) => (x.asInstanceOf [IArray [T ]], y.asInstanceOf [IArray [T ]])
362
- }
362
+ def [T ](arr : IArray [T ]) splitAt(n : Int ): (IArray [T ], IArray [T ]) =
363
+ arr.asInstanceOf [Array [T ]].splitAt(n) match {
364
+ case (x, y) => (x.asInstanceOf [IArray [T ]], y.asInstanceOf [IArray [T ]])
365
+ }
363
366
364
- def startsWith [ U >: T : ClassTag ](that : IArray [U ], offset : Int = 0 ): Boolean =
367
+ def [ T , U >: T : ClassTag ]( arr : IArray [ T ]) startsWith (that : IArray [U ], offset : Int = 0 ): Boolean =
365
368
arr.asInstanceOf [Array [T ]].startsWith(that.asInstanceOf [Array [U ]])
366
369
367
- def tail : IArray [T ] =
370
+ def [ T ]( arr : IArray [ T ]) tail : IArray [T ] =
368
371
arr.asInstanceOf [Array [T ]].tail.asInstanceOf
369
372
370
- def take (n : Int ): IArray [T ] =
373
+ def [ T ]( arr : IArray [ T ]) take(n : Int ): IArray [T ] =
371
374
arr.asInstanceOf [Array [T ]].take(n).asInstanceOf
372
375
373
- def takeRight (n : Int ): IArray [T ] =
376
+ def [ T ]( arr : IArray [ T ]) takeRight(n : Int ): IArray [T ] =
374
377
arr.asInstanceOf [Array [T ]].takeRight(n).asInstanceOf
375
378
376
- def takeWhile (p : T => Boolean ): IArray [T ] =
379
+ def [ T ]( arr : IArray [ T ]) takeWhile(p : T => Boolean ): IArray [T ] =
377
380
arr.asInstanceOf [Array [T ]].takeWhile(p).asInstanceOf
378
381
379
- def unzip [ U : ClassTag , V : ClassTag ](given T => (U , V )): (IArray [U ], IArray [V ]) =
380
- arr.asInstanceOf [Array [T ]].unzip(asPair, ct1, ct2) match {
382
+ def [ T , U : ClassTag , V : ClassTag ]( arr : IArray [ T ]) unzip (given T => (U , V )): (IArray [U ], IArray [V ]) =
383
+ arr.asInstanceOf [Array [T ]].unzip match {
381
384
case (x, y) => (x.asInstanceOf [IArray [U ]], y.asInstanceOf [IArray [V ]])
382
385
}
383
386
384
- def zip [ U : ClassTag ](that : IterableOnce [U ]): IArray [(T , U )] =
387
+ def [ T , U : ClassTag ]( arr : IArray [ T ]) zip (that : IterableOnce [U ]): IArray [(T , U )] =
385
388
arr.asInstanceOf [Array [T ]].zip(that).asInstanceOf
386
389
}
387
390
}
0 commit comments