Merge pull request #8118 from xuwei-k/previous-macro

[2.x] simplify `previous` macro
This commit is contained in:
eugene yokota 2025-05-10 21:46:31 -07:00 committed by GitHub
commit cf5ad6b12c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 1 additions and 14 deletions

View File

@ -398,7 +398,7 @@ object Def extends BuildSyntax with Init with InitializeImplicits:
extension [A1](inline in: TaskKey[A1])
// implicit def macroPrevious[T](@deprecated("unused", "") in: TaskKey[T]): MacroPrevious[T] = ???
inline def previous(using JsonFormat[A1]): Option[A1] =
${ TaskMacro.previousImpl[A1]('in) }
InputWrapper.`wrapInitTask_\u2603\u2603`[Option[A1]](Previous.runtime[A1](in))
// The following conversions enable the types Parser[T], Initialize[Parser[T]], and
// Initialize[State => Parser[T]] to be used in the inputTask macro as an input with an ultimate

View File

@ -23,7 +23,6 @@ import sbt.internal.util.{ LinePosition, NoPosition, SourcePosition }
import language.experimental.macros
import scala.quoted.*
import sjsonnew.JsonFormat
import sbt.util.BuildWideCacheConfiguration
object TaskMacro:
@ -92,18 +91,6 @@ object TaskMacro:
val convert1 = new FullConvert(qctx, 1000)
convert1.contFlatMap[A1, F, Id](t, convert1.appExpr, None)
/** Translates <task: TaskKey[T]>.previous(format) to Previous.runtime(<task>)(format).value */
def previousImpl[A1: Type](t: Expr[TaskKey[A1]])(using
qctx: Quotes
): Expr[Option[A1]] =
import qctx.reflect.*
Expr.summon[JsonFormat[A1]] match
case Some(ev) =>
'{
InputWrapper.`wrapInitTask_\u2603\u2603`[Option[A1]](Previous.runtime[A1]($t)(using $ev))
}
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
qctx: Quotes