diff --git a/main-settings/src/main/scala/sbt/Structure.scala b/main-settings/src/main/scala/sbt/Structure.scala index c3b68e2e9..96ed330ae 100644 --- a/main-settings/src/main/scala/sbt/Structure.scala +++ b/main-settings/src/main/scala/sbt/Structure.scala @@ -184,14 +184,14 @@ sealed abstract class TaskKey[A1] inline def <++=[A2](vs: Initialize[Task[A2]]): Setting[Task[A1]] = ${ TaskMacro.fakeAppendNImpl } - final inline def -=[A2](v: A2)(using Remove.Value[A1, A2]): Setting[Task[A1]] = + final inline def -=[A2](inline v: A2)(using Remove.Value[A1, A2]): Setting[Task[A1]] = remove1[A2](taskMacro[A2](v)) final inline def remove1[A2](v: Initialize[Task[A2]])(using ev: Remove.Value[A1, A2] ): Setting[Task[A1]] = make(v)(ev.removeValue) - final inline def --=[A2](vs: A2)(using r: Remove.Values[A1, A2]): Setting[Task[A1]] = + final inline def --=[A2](inline vs: A2)(using r: Remove.Values[A1, A2]): Setting[Task[A1]] = removeN[A2](taskMacro[A2](vs)) final inline def removeN[A2](vs: Initialize[Task[A2]])(using diff --git a/sbt-app/src/sbt-test/project1/remove/build.sbt b/sbt-app/src/sbt-test/project/remove/build.sbt similarity index 72% rename from sbt-app/src/sbt-test/project1/remove/build.sbt rename to sbt-app/src/sbt-test/project/remove/build.sbt index 5a16e59d8..91bf72f54 100644 --- a/sbt-app/src/sbt-test/project1/remove/build.sbt +++ b/sbt-app/src/sbt-test/project/remove/build.sbt @@ -4,25 +4,36 @@ val intsFromScalaV = settingKey[Seq[Int]]("a seq of ints from scalaVersion") val intsSetSetting = settingKey[Set[Int]]("A set of ints setting") val stringIntMapSetting = settingKey[Map[String, Int]]("A map of string to int setting") -scalaVersion := "2.11.6" +lazy val intSetting2 = Def.setting { + 3 +} +lazy val intsSetting2 = Def.setting { + Seq(1, 2, 3) +} + +scalaVersion := "3.7.2" intsTask := Seq(1, 2, 3, 4, 5, 6, 7) intsTask -= 3 intsTask --= Seq(1, 2) intsTask -= Option(6) intsTask --= Option(7) +intsTask -= intSetting2.value +intsTask --= intsSetting2.value intsSetting := Seq(1, 2, 3, 4, 5, 6, 7) intsSetting -= 3 intsSetting --= Seq(1, 2) intsSetting -= Option(6) intsSetting --= Option(7) +intsSetting -= intSetting2.value +intsSetting --= intsSetting2.value intsFromScalaV := Seq(1, 2, 3, 4, 5, 6, 7) -intsFromScalaV -= { if (scalaVersion.value == "2.11.6") 3 else 5 } -intsFromScalaV --= { if (scalaVersion.value == "2.11.6") Seq(1, 2) else Seq(4) } -intsFromScalaV -= { if (scalaVersion.value == "2.11.6") Option(6) else None } -intsFromScalaV --= { if (scalaVersion.value == "2.11.6") Option(7) else None } +intsFromScalaV -= { if scalaVersion.value == "3.7.2" then 3 else 5 } +intsFromScalaV --= { if scalaVersion.value == "3.7.2" then Seq(1, 2) else Seq(4) } +intsFromScalaV -= { if scalaVersion.value == "3.7.2" then Option(6) else None } +intsFromScalaV --= { if scalaVersion.value == "3.7.2" then Option(7) else None } intsSetSetting := Set(1, 2, 3, 4, 5, 6, 7) intsSetSetting -= 3 @@ -32,7 +43,9 @@ stringIntMapSetting := Map("a" -> 1, "b" -> 2 , "c" -> 3, "d" -> 4, "e" -> 5) stringIntMapSetting -= "c" stringIntMapSetting --= Seq("a", "b") +@transient val check = taskKey[Unit]("Runs the check") + check := { assert(intsTask.value == Seq(4, 5), s"intsTask should be Seq(4, 5) but is ${intsTask.value}") assert(intsSetting.value == Seq(4, 5), s"intsSetting should be Seq(4, 5) but is ${intsSetting.value}") diff --git a/sbt-app/src/sbt-test/project1/remove/test b/sbt-app/src/sbt-test/project/remove/test similarity index 100% rename from sbt-app/src/sbt-test/project1/remove/test rename to sbt-app/src/sbt-test/project/remove/test