mirror of https://github.com/sbt/sbt.git
simplify previous macro
This commit is contained in:
parent
e75cf2218b
commit
8ed146a79e
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue