@@ -228,160 +228,163 @@ object IArray {
228228
229229 /** All the methods on Array[T] that don't mutate in-place can be used with IArray[T].
230230 */
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 ] =
233233 (arr.asInstanceOf [Array [T ]] ++ that.asInstanceOf [Array [U ]]).asInstanceOf
234234
235- def contains (elem : T ): Boolean =
235+ def [ T ]( arr : IArray [ T ]) contains(elem : T ): Boolean =
236236 arr.asInstanceOf [Array [T ]].contains(elem)
237237
238- def count (p : T => Boolean ): Int =
238+ def [ T ]( arr : IArray [ T ]) count(p : T => Boolean ): Int =
239239 arr.asInstanceOf [Array [T ]].count(p)
240240
241- def drop (n : Int ): IArray [T ] =
241+ def [ T ]( arr : IArray [ T ]) drop(n : Int ): IArray [T ] =
242242 arr.asInstanceOf [Array [T ]].drop(n).asInstanceOf
243243
244- def dropRight (n : Int ): IArray [T ] =
244+ def [ T ]( arr : IArray [ T ]) dropRight(n : Int ): IArray [T ] =
245245 arr.asInstanceOf [Array [T ]].dropRight(n).asInstanceOf
246246
247- def dropWhile (p : T => Boolean ): IArray [T ] =
247+ def [ T ]( arr : IArray [ T ]) dropWhile(p : T => Boolean ): IArray [T ] =
248248 arr.asInstanceOf [Array [T ]].dropWhile(p).asInstanceOf
249249
250- def exists (p : T => Boolean ): IArray [T ] =
250+ def [ T ]( arr : IArray [ T ]) exists(p : T => Boolean ): IArray [T ] =
251251 arr.asInstanceOf [Array [T ]].exists(p).asInstanceOf
252252
253- def filter (p : T => Boolean ): IArray [T ] =
253+ def [ T ]( arr : IArray [ T ]) filter(p : T => Boolean ): IArray [T ] =
254254 arr.asInstanceOf [Array [T ]].filter(p).asInstanceOf
255255
256- def filterNot (p : T => Boolean ): IArray [T ] =
256+ def [ T ]( arr : IArray [ T ]) filterNot(p : T => Boolean ): IArray [T ] =
257257 arr.asInstanceOf [Array [T ]].filterNot(p).asInstanceOf
258258
259- def find (p : T => Boolean ): Option [T ] =
259+ def [ T ]( arr : IArray [ T ]) find(p : T => Boolean ): Option [T ] =
260260 arr.asInstanceOf [Array [T ]].find(p).asInstanceOf
261261
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 ] =
263263 arr.asInstanceOf [Array [T ]].flatMap(f).asInstanceOf
264264
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 ] =
266266 arr.asInstanceOf [Array [T ]].flatten.asInstanceOf
267267
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 =
269269 arr.asInstanceOf [Array [T ]].fold(z)(op).asInstanceOf
270270
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 =
272272 arr.asInstanceOf [Array [T ]].foldLeft(z)(op).asInstanceOf
273273
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 =
275275 arr.asInstanceOf [Array [T ]].foldRight(z)(op).asInstanceOf
276276
277- def forall (p : T => Boolean ): Boolean =
277+ def [ T ]( arr : IArray [ T ]) forall(p : T => Boolean ): Boolean =
278278 arr.asInstanceOf [Array [T ]].forall(p)
279279
280- def foreach [ U ] (f : T => U ): Unit =
280+ def [ T , U ]( arr : IArray [ T ]) foreach (f : T => U ): Unit =
281281 arr.asInstanceOf [Array [T ]].foreach(f)
282282
283- def head : T =
283+ def [ T ]( arr : IArray [ T ]) head : T =
284284 arr.asInstanceOf [Array [T ]].head
285285
286- def headOption : Option [T ] =
286+ def [ T ]( arr : IArray [ T ]) headOption : Option [T ] =
287287 arr.asInstanceOf [Array [T ]].headOption
288288
289- def indexOf (elem : T , from : Int = 0 ): Int =
289+ def [ T ]( arr : IArray [ T ]) indexOf(elem : T , from : Int = 0 ): Int =
290290 arr.asInstanceOf [Array [T ]].indexOf(elem, from)
291291
292- def indexWhere (p : T => Boolean , from : Int = 0 ): Int =
292+ def [ T ]( arr : IArray [ T ]) indexWhere(p : T => Boolean , from : Int = 0 ): Int =
293293 arr.asInstanceOf [Array [T ]].indexWhere(p, from)
294294
295- def indices : Range =
295+ def [ T ]( arr : IArray [ T ]) indices : Range =
296296 arr.asInstanceOf [Array [T ]].indices.asInstanceOf
297297
298- def init : IArray [T ] =
298+ def [ T ]( arr : IArray [ T ]) init : IArray [T ] =
299299 arr.asInstanceOf [Array [T ]].init.asInstanceOf
300300
301- def isEmpty : Boolean =
301+ def [ T ]( arr : IArray [ T ]) isEmpty : Boolean =
302302 arr.asInstanceOf [Array [T ]].isEmpty
303303
304- def iterator : Iterator [T ] =
304+ def [ T ]( arr : IArray [ T ]) iterator : Iterator [T ] =
305305 arr.asInstanceOf [Array [T ]].iterator
306306
307- def last : T =
307+ def [ T ]( arr : IArray [ T ]) last : T =
308308 arr.asInstanceOf [Array [T ]].last
309309
310- def lastOption : Option [T ] =
310+ def [ T ]( arr : IArray [ T ]) lastOption : Option [T ] =
311311 arr.asInstanceOf [Array [T ]].lastOption
312312
313- def lastIndexOf (elem : T , from : Int = 0 ): Int =
313+ def [ T ]( arr : IArray [ T ]) lastIndexOf(elem : T , from : Int = 0 ): Int =
314314 arr.asInstanceOf [Array [T ]].lastIndexOf(elem, from)
315315
316- def lastIndexWhere (p : T => Boolean , from : Int = 0 ): Int =
316+ def [ T ]( arr : IArray [ T ]) lastIndexWhere(p : T => Boolean , from : Int = 0 ): Int =
317317 arr.asInstanceOf [Array [T ]].lastIndexWhere(p, from)
318318
319- def map [ U : ClassTag ](f : T => U ): IArray [U ] =
319+ def [ T , U : ClassTag ]( arr : IArray [ T ]) map (f : T => U ): IArray [U ] =
320320 arr.asInstanceOf [Array [T ]].map(f).asInstanceOf
321321
322- def nonEmpty : Boolean =
322+ def [ T ]( arr : IArray [ T ]) nonEmpty : Boolean =
323323 arr.asInstanceOf [Array [T ]].nonEmpty
324324
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+ }
328329
329- def reverse : IArray [T ] =
330+ def [ T ]( arr : IArray [ T ]) reverse : IArray [T ] =
330331 arr.asInstanceOf [Array [T ]].reverse.asInstanceOf
331332
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 ] =
333334 arr.asInstanceOf [Array [T ]].scan(z)(op).asInstanceOf
334335
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 ] =
336337 arr.asInstanceOf [Array [T ]].scanLeft(z)(op).asInstanceOf
337338
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 ] =
339340 arr.asInstanceOf [Array [T ]].scanRight(z)(op).asInstanceOf
340341
341- def size : Int =
342+ def [ T ]( arr : IArray [ T ]) size : Int =
342343 arr.asInstanceOf [Array [T ]].size
343344
344- def slice (from : Int , until : Int ): Array [T ] =
345+ def [ T ]( arr : IArray [ T ]) slice(from : Int , until : Int ): Array [T ] =
345346 arr.asInstanceOf [Array [T ]].slice(from, until).asInstanceOf
346347
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 ] =
348349 arr.asInstanceOf [Array [T ]].sortBy(f).asInstanceOf
349350
350- def sortWith (f : (T , T ) => Boolean ): IArray [T ] =
351+ def [ T ]( arr : IArray [ T ]) sortWith(f : (T , T ) => Boolean ): IArray [T ] =
351352 arr.asInstanceOf [Array [T ]].sortWith(f).asInstanceOf
352353
353- def sorted (given math .Ordering [T ]): IArray [T ] =
354+ def [ T ]( arr : IArray [ T ]) sorted(given math .Ordering [T ]): IArray [T ] =
354355 arr.asInstanceOf [Array [T ]].sorted.asInstanceOf
355356
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+ }
359361
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+ }
363366
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 =
365368 arr.asInstanceOf [Array [T ]].startsWith(that.asInstanceOf [Array [U ]])
366369
367- def tail : IArray [T ] =
370+ def [ T ]( arr : IArray [ T ]) tail : IArray [T ] =
368371 arr.asInstanceOf [Array [T ]].tail.asInstanceOf
369372
370- def take (n : Int ): IArray [T ] =
373+ def [ T ]( arr : IArray [ T ]) take(n : Int ): IArray [T ] =
371374 arr.asInstanceOf [Array [T ]].take(n).asInstanceOf
372375
373- def takeRight (n : Int ): IArray [T ] =
376+ def [ T ]( arr : IArray [ T ]) takeRight(n : Int ): IArray [T ] =
374377 arr.asInstanceOf [Array [T ]].takeRight(n).asInstanceOf
375378
376- def takeWhile (p : T => Boolean ): IArray [T ] =
379+ def [ T ]( arr : IArray [ T ]) takeWhile(p : T => Boolean ): IArray [T ] =
377380 arr.asInstanceOf [Array [T ]].takeWhile(p).asInstanceOf
378381
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 {
381384 case (x, y) => (x.asInstanceOf [IArray [U ]], y.asInstanceOf [IArray [V ]])
382385 }
383386
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 )] =
385388 arr.asInstanceOf [Array [T ]].zip(that).asInstanceOf
386389 }
387390}
0 commit comments