Skip to content

Commit af2373e

Browse files
authored
Merge pull request scala/scala#9001 from SethTisue/bye-bye-delegates
minor cleanup: 'delegate' isn't reserved in Dotty anymore
2 parents 7502133 + 1c3e6b9 commit af2373e

File tree

2 files changed

+45
-45
lines changed

2 files changed

+45
-45
lines changed

library/src/scala/collection/Factory.scala

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -282,11 +282,11 @@ object IterableFactory {
282282
}
283283

284284
@SerialVersionUID(3L)
285-
class Delegate[CC[_]](`delegate`: IterableFactory[CC]) extends IterableFactory[CC] {
286-
override def apply[A](elems: A*): CC[A] = `delegate`.apply(elems: _*)
287-
def empty[A]: CC[A] = `delegate`.empty
288-
def from[E](it: IterableOnce[E]): CC[E] = `delegate`.from(it)
289-
def newBuilder[A]: Builder[A, CC[A]] = `delegate`.newBuilder[A]
285+
class Delegate[CC[_]](delegate: IterableFactory[CC]) extends IterableFactory[CC] {
286+
override def apply[A](elems: A*): CC[A] = delegate.apply(elems: _*)
287+
def empty[A]: CC[A] = delegate.empty
288+
def from[E](it: IterableOnce[E]): CC[E] = delegate.from(it)
289+
def newBuilder[A]: Builder[A, CC[A]] = delegate.newBuilder[A]
290290
}
291291
}
292292

@@ -300,11 +300,11 @@ trait SeqFactory[+CC[A] <: SeqOps[A, Seq, Seq[A]]] extends IterableFactory[CC] {
300300

301301
object SeqFactory {
302302
@SerialVersionUID(3L)
303-
class Delegate[CC[A] <: SeqOps[A, Seq, Seq[A]]](`delegate`: SeqFactory[CC]) extends SeqFactory[CC] {
304-
override def apply[A](elems: A*): CC[A] = `delegate`.apply(elems: _*)
305-
def empty[A]: CC[A] = `delegate`.empty
306-
def from[E](it: IterableOnce[E]): CC[E] = `delegate`.from(it)
307-
def newBuilder[A]: Builder[A, CC[A]] = `delegate`.newBuilder[A]
303+
class Delegate[CC[A] <: SeqOps[A, Seq, Seq[A]]](delegate: SeqFactory[CC]) extends SeqFactory[CC] {
304+
override def apply[A](elems: A*): CC[A] = delegate.apply(elems: _*)
305+
def empty[A]: CC[A] = delegate.empty
306+
def from[E](it: IterableOnce[E]): CC[E] = delegate.from(it)
307+
def newBuilder[A]: Builder[A, CC[A]] = delegate.newBuilder[A]
308308
}
309309

310310
final class UnapplySeqWrapper[A](private val c: SeqOps[A, Seq, Seq[A]]) extends AnyVal {
@@ -420,11 +420,11 @@ object MapFactory {
420420
}
421421

422422
@SerialVersionUID(3L)
423-
class Delegate[C[_, _]](`delegate`: MapFactory[C]) extends MapFactory[C] {
424-
override def apply[K, V](elems: (K, V)*): C[K, V] = `delegate`.apply(elems: _*)
425-
def from[K, V](it: IterableOnce[(K, V)]): C[K, V] = `delegate`.from(it)
426-
def empty[K, V]: C[K, V] = `delegate`.empty
427-
def newBuilder[K, V]: Builder[(K, V), C[K, V]] = `delegate`.newBuilder
423+
class Delegate[C[_, _]](delegate: MapFactory[C]) extends MapFactory[C] {
424+
override def apply[K, V](elems: (K, V)*): C[K, V] = delegate.apply(elems: _*)
425+
def from[K, V](it: IterableOnce[(K, V)]): C[K, V] = delegate.from(it)
426+
def empty[K, V]: C[K, V] = delegate.empty
427+
def newBuilder[K, V]: Builder[(K, V), C[K, V]] = delegate.newBuilder
428428
}
429429
}
430430

@@ -513,11 +513,11 @@ object EvidenceIterableFactory {
513513
}
514514

515515
@SerialVersionUID(3L)
516-
class Delegate[CC[_], Ev[_]](`delegate`: EvidenceIterableFactory[CC, Ev]) extends EvidenceIterableFactory[CC, Ev] {
517-
override def apply[A: Ev](xs: A*): CC[A] = `delegate`.apply(xs: _*)
518-
def empty[A : Ev]: CC[A] = `delegate`.empty
519-
def from[E : Ev](it: IterableOnce[E]): CC[E] = `delegate`.from(it)
520-
def newBuilder[A : Ev]: Builder[A, CC[A]] = `delegate`.newBuilder[A]
516+
class Delegate[CC[_], Ev[_]](delegate: EvidenceIterableFactory[CC, Ev]) extends EvidenceIterableFactory[CC, Ev] {
517+
override def apply[A: Ev](xs: A*): CC[A] = delegate.apply(xs: _*)
518+
def empty[A : Ev]: CC[A] = delegate.empty
519+
def from[E : Ev](it: IterableOnce[E]): CC[E] = delegate.from(it)
520+
def newBuilder[A : Ev]: Builder[A, CC[A]] = delegate.newBuilder[A]
521521
}
522522
}
523523

@@ -528,8 +528,8 @@ trait SortedIterableFactory[+CC[_]] extends EvidenceIterableFactory[CC, Ordering
528528

529529
object SortedIterableFactory {
530530
@SerialVersionUID(3L)
531-
class Delegate[CC[_]](`delegate`: EvidenceIterableFactory[CC, Ordering])
532-
extends EvidenceIterableFactory.Delegate[CC, Ordering](`delegate`) with SortedIterableFactory[CC]
531+
class Delegate[CC[_]](delegate: EvidenceIterableFactory[CC, Ordering])
532+
extends EvidenceIterableFactory.Delegate[CC, Ordering](delegate) with SortedIterableFactory[CC]
533533
}
534534

535535
/** Base trait for companion objects of collections that require an implicit `ClassTag`.
@@ -645,23 +645,23 @@ trait ClassTagIterableFactory[+CC[_]] extends EvidenceIterableFactory[CC, ClassT
645645

646646
object ClassTagIterableFactory {
647647
@SerialVersionUID(3L)
648-
class Delegate[CC[_]](`delegate`: EvidenceIterableFactory[CC, ClassTag])
649-
extends EvidenceIterableFactory.Delegate[CC, ClassTag](`delegate`) with ClassTagIterableFactory[CC]
648+
class Delegate[CC[_]](delegate: EvidenceIterableFactory[CC, ClassTag])
649+
extends EvidenceIterableFactory.Delegate[CC, ClassTag](delegate) with ClassTagIterableFactory[CC]
650650

651651
/** An IterableFactory that uses ClassTag.Any as the evidence for every element type. This may or may not be
652652
* sound depending on the use of the `ClassTag` by the collection implementation. */
653653
@SerialVersionUID(3L)
654-
class AnyIterableDelegate[CC[_]](`delegate`: ClassTagIterableFactory[CC]) extends IterableFactory[CC] {
655-
def empty[A]: CC[A] = `delegate`.empty(ClassTag.Any).asInstanceOf[CC[A]]
656-
def from[A](it: IterableOnce[A]): CC[A] = `delegate`.from[Any](it)(ClassTag.Any).asInstanceOf[CC[A]]
657-
def newBuilder[A]: Builder[A, CC[A]] = `delegate`.newBuilder(ClassTag.Any).asInstanceOf[Builder[A, CC[A]]]
658-
override def apply[A](elems: A*): CC[A] = `delegate`.apply[Any](elems: _*)(ClassTag.Any).asInstanceOf[CC[A]]
659-
override def iterate[A](start: A, len: Int)(f: A => A): CC[A] = `delegate`.iterate[A](start, len)(f)(ClassTag.Any.asInstanceOf[ClassTag[A]])
660-
override def unfold[A, S](init: S)(f: S => Option[(A, S)]): CC[A] = `delegate`.unfold[A, S](init)(f)(ClassTag.Any.asInstanceOf[ClassTag[A]])
661-
override def range[A](start: A, end: A)(implicit i: Integral[A]): CC[A] = `delegate`.range[A](start, end)(i, ClassTag.Any.asInstanceOf[ClassTag[A]])
662-
override def range[A](start: A, end: A, step: A)(implicit i: Integral[A]): CC[A] = `delegate`.range[A](start, end, step)(i, ClassTag.Any.asInstanceOf[ClassTag[A]])
663-
override def fill[A](n: Int)(elem: => A): CC[A] = `delegate`.fill[Any](n)(elem)(ClassTag.Any).asInstanceOf[CC[A]]
664-
override def tabulate[A](n: Int)(f: Int => A): CC[A] = `delegate`.tabulate[Any](n)(f)(ClassTag.Any).asInstanceOf[CC[A]]
654+
class AnyIterableDelegate[CC[_]](delegate: ClassTagIterableFactory[CC]) extends IterableFactory[CC] {
655+
def empty[A]: CC[A] = delegate.empty(ClassTag.Any).asInstanceOf[CC[A]]
656+
def from[A](it: IterableOnce[A]): CC[A] = delegate.from[Any](it)(ClassTag.Any).asInstanceOf[CC[A]]
657+
def newBuilder[A]: Builder[A, CC[A]] = delegate.newBuilder(ClassTag.Any).asInstanceOf[Builder[A, CC[A]]]
658+
override def apply[A](elems: A*): CC[A] = delegate.apply[Any](elems: _*)(ClassTag.Any).asInstanceOf[CC[A]]
659+
override def iterate[A](start: A, len: Int)(f: A => A): CC[A] = delegate.iterate[A](start, len)(f)(ClassTag.Any.asInstanceOf[ClassTag[A]])
660+
override def unfold[A, S](init: S)(f: S => Option[(A, S)]): CC[A] = delegate.unfold[A, S](init)(f)(ClassTag.Any.asInstanceOf[ClassTag[A]])
661+
override def range[A](start: A, end: A)(implicit i: Integral[A]): CC[A] = delegate.range[A](start, end)(i, ClassTag.Any.asInstanceOf[ClassTag[A]])
662+
override def range[A](start: A, end: A, step: A)(implicit i: Integral[A]): CC[A] = delegate.range[A](start, end, step)(i, ClassTag.Any.asInstanceOf[ClassTag[A]])
663+
override def fill[A](n: Int)(elem: => A): CC[A] = delegate.fill[Any](n)(elem)(ClassTag.Any).asInstanceOf[CC[A]]
664+
override def tabulate[A](n: Int)(f: Int => A): CC[A] = delegate.tabulate[Any](n)(f)(ClassTag.Any).asInstanceOf[CC[A]]
665665
}
666666
}
667667

@@ -675,14 +675,14 @@ trait ClassTagSeqFactory[+CC[A] <: SeqOps[A, Seq, Seq[A]]] extends ClassTagItera
675675

676676
object ClassTagSeqFactory {
677677
@SerialVersionUID(3L)
678-
class Delegate[CC[A] <: SeqOps[A, Seq, Seq[A]]](`delegate`: ClassTagSeqFactory[CC])
679-
extends ClassTagIterableFactory.Delegate[CC](`delegate`) with ClassTagSeqFactory[CC]
678+
class Delegate[CC[A] <: SeqOps[A, Seq, Seq[A]]](delegate: ClassTagSeqFactory[CC])
679+
extends ClassTagIterableFactory.Delegate[CC](delegate) with ClassTagSeqFactory[CC]
680680

681681
/** A SeqFactory that uses ClassTag.Any as the evidence for every element type. This may or may not be
682682
* sound depending on the use of the `ClassTag` by the collection implementation. */
683683
@SerialVersionUID(3L)
684-
class AnySeqDelegate[CC[A] <: SeqOps[A, Seq, Seq[A]]](`delegate`: ClassTagSeqFactory[CC])
685-
extends ClassTagIterableFactory.AnyIterableDelegate[CC](`delegate`) with SeqFactory[CC]
684+
class AnySeqDelegate[CC[A] <: SeqOps[A, Seq, Seq[A]]](delegate: ClassTagSeqFactory[CC])
685+
extends ClassTagIterableFactory.AnyIterableDelegate[CC](delegate) with SeqFactory[CC]
686686
}
687687

688688
trait StrictOptimizedClassTagSeqFactory[+CC[A] <: SeqOps[A, Seq, Seq[A]]] extends ClassTagSeqFactory[CC] {
@@ -760,10 +760,10 @@ object SortedMapFactory {
760760
}
761761

762762
@SerialVersionUID(3L)
763-
class Delegate[CC[_, _]](`delegate`: SortedMapFactory[CC]) extends SortedMapFactory[CC] {
764-
override def apply[K: Ordering, V](elems: (K, V)*): CC[K, V] = `delegate`.apply(elems: _*)
765-
def from[K : Ordering, V](it: IterableOnce[(K, V)]): CC[K, V] = `delegate`.from(it)
766-
def empty[K : Ordering, V]: CC[K, V] = `delegate`.empty
767-
def newBuilder[K : Ordering, V]: Builder[(K, V), CC[K, V]] = `delegate`.newBuilder
763+
class Delegate[CC[_, _]](delegate: SortedMapFactory[CC]) extends SortedMapFactory[CC] {
764+
override def apply[K: Ordering, V](elems: (K, V)*): CC[K, V] = delegate.apply(elems: _*)
765+
def from[K : Ordering, V](it: IterableOnce[(K, V)]): CC[K, V] = delegate.from(it)
766+
def empty[K : Ordering, V]: CC[K, V] = delegate.empty
767+
def newBuilder[K : Ordering, V]: Builder[(K, V), CC[K, V]] = delegate.newBuilder
768768
}
769769
}

library/src/scala/concurrent/Future.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,7 @@ object Future {
687687
* @param executor the execution context on which the `body` is evaluated in
688688
* @return the `Future` holding the result of the computation
689689
*/
690-
final def `delegate`[T](body: => Future[T])(implicit executor: ExecutionContext): Future[T] =
690+
final def delegate[T](body: => Future[T])(implicit executor: ExecutionContext): Future[T] =
691691
unit.flatMap(_ => body)
692692

693693
/** Simple version of `Future.traverse`. Asynchronously and non-blockingly transforms, in essence, a `IterableOnce[Future[A]]`

0 commit comments

Comments
 (0)