From cf3c9bbf0db2aee9802284c2e9d3e5a2c56e2c0a Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Wed, 7 Feb 2024 10:49:23 +0100 Subject: [PATCH] Remove ~>| and use polymorphic function instead --- tasks-standard/src/main/scala/sbt/std/Transform.scala | 9 +++------ .../src/main/scala/sbt/internal/util/TypeFunctions.scala | 6 ------ 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/tasks-standard/src/main/scala/sbt/std/Transform.scala b/tasks-standard/src/main/scala/sbt/std/Transform.scala index b21bb26f0..f3e24b18e 100644 --- a/tasks-standard/src/main/scala/sbt/std/Transform.scala +++ b/tasks-standard/src/main/scala/sbt/std/Transform.scala @@ -20,9 +20,6 @@ object Transform: def fromDummyStrict[T](original: Task[T], value: T): Task[T] = fromDummy(original)(value) - implicit def to_~>|[K[_], V[_]](map: RMap[K, V]): ~>|[K, V] = - [A] => (k: K[A]) => map.get(k) - final case class DummyTaskMap(mappings: List[TaskAndValue[_]]) { def ::[T](tav: (Task[T], T)): DummyTaskMap = DummyTaskMap(new TaskAndValue(tav._1, tav._2) :: mappings) @@ -30,17 +27,17 @@ object Transform: final class TaskAndValue[T](val task: Task[T], val value: T) - def dummyMap(dummyMap: DummyTaskMap): TaskId ~>| Task = { + def dummyMap(dummyMap: DummyTaskMap): [A] => TaskId[A] => Option[Task[A]] = { val pmap = new DelegatingPMap[TaskId, Task](new collection.mutable.ListMap) def add[T](dummy: TaskAndValue[T]): Unit = { pmap(dummy.task) = fromDummyStrict(dummy.task, dummy.value) } dummyMap.mappings.foreach(x => add(x)) - pmap + ([A] => (task: TaskId[A]) => pmap.get(task)) } /** Applies `map`, returning the result if defined or returning the input unchanged otherwise. */ - implicit def getOrId(map: TaskId ~>| Task): [A] => TaskId[A] => Task[A] = + private def getOrId(map: [A] => TaskId[A] => Option[Task[A]]): [A] => TaskId[A] => Task[A] = [A] => (in: TaskId[A]) => map(in).getOrElse(in.asInstanceOf) def apply(dummies: DummyTaskMap) = taskToNode(getOrId(dummyMap(dummies))) diff --git a/util-collection/src/main/scala/sbt/internal/util/TypeFunctions.scala b/util-collection/src/main/scala/sbt/internal/util/TypeFunctions.scala index 28ac50dd7..78712d7f5 100644 --- a/util-collection/src/main/scala/sbt/internal/util/TypeFunctions.scala +++ b/util-collection/src/main/scala/sbt/internal/util/TypeFunctions.scala @@ -44,12 +44,6 @@ trait TypeFunctions: f: [a] => F1[a] => F2[a] ): [a] => Compose[F1, F3][a] => Compose[F2, F3][a] = f.asInstanceOf[[a] => Compose[F1, F3][a] => Compose[F2, F3][a]] - - /* - type Endo[T] = T => T - type ~>|[A[_], B[_]] = A ~> Compose[Option, B]#Apply - */ - type ~>|[F1[_], F2[_]] = [A] => F1[A] => Option[F2[A]] end TypeFunctions /*