Skip to content

Commit 9b62e78

Browse files
author
Antoine Brunner
committed
Adapt the extension to the (yet) new syntax
1 parent 7444d02 commit 9b62e78

File tree

1 file changed

+61
-58
lines changed

1 file changed

+61
-58
lines changed

library/src-bootstrapped/scala/IArray.scala

Lines changed: 61 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)