From 0005705eb6bba9c1c48ab03fb9b69a7c411ae0a0 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Tue, 26 Mar 2024 14:33:31 +0100 Subject: [PATCH] Fix += on sourceGenerators --- main-settings/src/main/scala/sbt/Def.scala | 2 +- main-settings/src/main/scala/sbt/Structure.scala | 2 +- main-settings/src/main/scala/sbt/std/TaskMacro.scala | 7 ++++--- sbt-app/src/sbt-test/actions/clean-managed/build.sbt | 2 ++ sbt-app/src/sbt-test/actions/clean-managed/pending | 6 ------ sbt-app/src/sbt-test/actions/clean-managed/test | 6 ++++++ sbt-app/src/sbt-test/actions/generator/build.sbt | 2 +- sbt-app/src/sbt-test/actions/generator/pending | 2 -- sbt-app/src/sbt-test/actions/generator/test | 2 ++ 9 files changed, 17 insertions(+), 14 deletions(-) delete mode 100644 sbt-app/src/sbt-test/actions/clean-managed/pending create mode 100644 sbt-app/src/sbt-test/actions/clean-managed/test delete mode 100644 sbt-app/src/sbt-test/actions/generator/pending create mode 100644 sbt-app/src/sbt-test/actions/generator/test diff --git a/main-settings/src/main/scala/sbt/Def.scala b/main-settings/src/main/scala/sbt/Def.scala index 6b05794d5..739c2f7f7 100644 --- a/main-settings/src/main/scala/sbt/Def.scala +++ b/main-settings/src/main/scala/sbt/Def.scala @@ -319,7 +319,7 @@ object Def extends Init[Scope] with TaskMacroExtra with InitializeImplicits: inline def value: A1 = InputWrapper.`wrapInitTask_\u2603\u2603`[A1](in) /** - * This treats the `Initailize[Task[A]]` as a setting that returns the Task value, + * This treats the `Initialize[Task[A]]` as a setting that returns the Task value, * instead of evaluating the task. */ inline def taskValue: Task[A1] = InputWrapper.`wrapInit_\u2603\u2603`[Task[A1]](in) diff --git a/main-settings/src/main/scala/sbt/Structure.scala b/main-settings/src/main/scala/sbt/Structure.scala index 3e507179e..5539a155c 100644 --- a/main-settings/src/main/scala/sbt/Structure.scala +++ b/main-settings/src/main/scala/sbt/Structure.scala @@ -82,7 +82,7 @@ sealed abstract class SettingKey[A1] final inline def :=(inline v: A1): Setting[A1] = ${ TaskMacro.settingAssignMacroImpl('this, 'v) } - final inline def +=[A2](inline v: A2)(using Append.Value[A1, A2]): Setting[A1] = + final inline def +=[A2](inline v: A2)(using inline ev: Append.Value[A1, A2]): Setting[A1] = ${ TaskMacro.settingAppend1Impl[A1, A2]('this, 'v) } final inline def append1[A2](v: Initialize[A2])(using diff --git a/main-settings/src/main/scala/sbt/std/TaskMacro.scala b/main-settings/src/main/scala/sbt/std/TaskMacro.scala index a5fcaf8d5..3bcf57f5e 100644 --- a/main-settings/src/main/scala/sbt/std/TaskMacro.scala +++ b/main-settings/src/main/scala/sbt/std/TaskMacro.scala @@ -93,7 +93,7 @@ object TaskMacro: '{ InputWrapper.`wrapInitTask_\u2603\u2603`[Option[A1]](Previous.runtime[A1]($t)($ev)) } - case _ => report.errorAndAbort(s"JsonFormat[${Type.of[A1]}] missing") + case _ => report.errorAndAbort(s"JsonFormat[${Type.show[A1]}] missing") /** Implementation of := macro for settings. */ def settingAssignMacroImpl[A1: Type](rec: Expr[Scoped.DefinableSetting[A1]], v: Expr[A1])(using @@ -147,7 +147,7 @@ object TaskMacro: $rec.+=($v2.taskValue)(using $ev) } case _ => - report.errorAndAbort(s"Append.Value[${Type.of[A1]}, ${Type.of[Task[a]]}] missing") + report.errorAndAbort(s"Append.Value[${Type.show[A1]}, ${Type.show[Task[a]]}] missing") case _ => Expr.summon[Append.Value[A1, A2]] match case Some(ev) => @@ -155,7 +155,8 @@ object TaskMacro: '{ $rec.append1[A2]($init)(using $ev) } - case _ => report.errorAndAbort(s"Append.Value[${Type.of[A1]}, ${Type.of[A2]}] missing") + case _ => + report.errorAndAbort(s"Append.Value[${Type.show[A1]}, ${Type.show[A2]}] missing") /* private[this] def transformMacroImpl[A](using qctx: Quotes)(init: Expr[A])( diff --git a/sbt-app/src/sbt-test/actions/clean-managed/build.sbt b/sbt-app/src/sbt-test/actions/clean-managed/build.sbt index 1505d55f0..83eb19f2f 100644 --- a/sbt-app/src/sbt-test/actions/clean-managed/build.sbt +++ b/sbt-app/src/sbt-test/actions/clean-managed/build.sbt @@ -1,5 +1,7 @@ import sbt.nio.file.Glob +name := "clean-managed" +scalaVersion := "3.3.1" Compile / sourceGenerators += { Def.task { val files = Seq(sourceManaged.value / "foo.txt", sourceManaged.value / "bar.txt") diff --git a/sbt-app/src/sbt-test/actions/clean-managed/pending b/sbt-app/src/sbt-test/actions/clean-managed/pending deleted file mode 100644 index f6fd6ce8f..000000000 --- a/sbt-app/src/sbt-test/actions/clean-managed/pending +++ /dev/null @@ -1,6 +0,0 @@ -> compile -$ exists target/scala-2.12/src_managed/foo.txt target/scala-2.12/src_managed/bar.txt - -> clean -$ absent target/scala-2.12/src_managed/foo.txt -$ exists target/scala-2.12/src_managed/bar.txt diff --git a/sbt-app/src/sbt-test/actions/clean-managed/test b/sbt-app/src/sbt-test/actions/clean-managed/test new file mode 100644 index 000000000..f9cf78153 --- /dev/null +++ b/sbt-app/src/sbt-test/actions/clean-managed/test @@ -0,0 +1,6 @@ +> compile +$ exists target/out/jvm/scala-3.3.1/clean-managed/src_managed/foo.txt target/out/jvm/scala-3.3.1/clean-managed/src_managed/bar.txt + +> clean +$ absent target/out/jvm/scala-3.3.1/clean-managed/src_managed/foo.txt +$ exists target/out/jvm/scala-3.3.1/clean-managed/src_managed/bar.txt diff --git a/sbt-app/src/sbt-test/actions/generator/build.sbt b/sbt-app/src/sbt-test/actions/generator/build.sbt index 56dbe41e1..5d88c6637 100644 --- a/sbt-app/src/sbt-test/actions/generator/build.sbt +++ b/sbt-app/src/sbt-test/actions/generator/build.sbt @@ -10,5 +10,5 @@ lazy val root = (project in file(".")) file :: Nil }, Compile / sourceGenerators += buildInfo, - Compile / sourceGenerators += Def.task { Nil }, + Compile / sourceGenerators += Def.task { Seq.empty[File] }, ) diff --git a/sbt-app/src/sbt-test/actions/generator/pending b/sbt-app/src/sbt-test/actions/generator/pending deleted file mode 100644 index b7ff4b2e4..000000000 --- a/sbt-app/src/sbt-test/actions/generator/pending +++ /dev/null @@ -1,2 +0,0 @@ -> compile -$ exists target/scala-2.12/src_managed/BuildInfo.scala diff --git a/sbt-app/src/sbt-test/actions/generator/test b/sbt-app/src/sbt-test/actions/generator/test new file mode 100644 index 000000000..b568c3497 --- /dev/null +++ b/sbt-app/src/sbt-test/actions/generator/test @@ -0,0 +1,2 @@ +> compile +$ exists target/out/jvm/scala-2.12.12/root/src_managed/BuildInfo.scala