From 2f50a88a3d446579fbd7e338259e326722183b6a Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 15 May 2022 23:13:40 -0400 Subject: [PATCH] Fix Cont --- .../scala/sbt/internal/util/appmacro/Cont.scala | 15 +++++++-------- .../sbt/internal/util/appmacro/ContextUtil.scala | 1 + 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/core-macros/src/main/scala/sbt/internal/util/appmacro/Cont.scala b/core-macros/src/main/scala/sbt/internal/util/appmacro/Cont.scala index 343e36c1a..959845638 100644 --- a/core-macros/src/main/scala/sbt/internal/util/appmacro/Cont.scala +++ b/core-macros/src/main/scala/sbt/internal/util/appmacro/Cont.scala @@ -181,9 +181,9 @@ trait Cont: // the call is addType(Type A, Tree qual) // The result is a Tree representing a reference to // the bound value of the input. - def substitute(name: String, tpe: TypeRepr, qual: Term, replace: Term) = - convert[A](name, qual) transform { (tree: Term) => - val idx = inputs.indexWhere(input => input.term == qual) + def substitute(name: String, tpe: TypeRepr, qual: Term, oldTree: Term) = + convert[A](name, qual) transform { (replacement: Term) => + val idx = inputs.indexWhere(input => input.qual == qual) Select .unique(Ref(p0.symbol), "apply") .appliedToTypes(List(br.inputTupleTypeRepr)) @@ -218,13 +218,12 @@ trait Cont: // Called when transforming the tree to add an input. // For `qual` of type F[A], and a `selection` qual.value. - def record(name: String, tpe: TypeRepr, qual: Term, replace: Term) = - convert[A](name, qual) transform { (tree: Term) => - inputBuf += Input(tpe, qual, freshName("q")) - replace + def record(name: String, tpe: TypeRepr, qual: Term, oldTree: Term) = + convert[A](name, qual) transform { (replacement: Term) => + inputBuf += Input(tpe, qual, replacement, freshName("q")) + oldTree } val tx = transformWrappers(expr.asTerm, record, Symbol.spliceOwner) - // println("tx: " + tx.show) val tr = makeApp(inner(tx), inputBuf.toList) tr end Cont diff --git a/core-macros/src/main/scala/sbt/internal/util/appmacro/ContextUtil.scala b/core-macros/src/main/scala/sbt/internal/util/appmacro/ContextUtil.scala index 7c2503c02..a0ba7328c 100644 --- a/core-macros/src/main/scala/sbt/internal/util/appmacro/ContextUtil.scala +++ b/core-macros/src/main/scala/sbt/internal/util/appmacro/ContextUtil.scala @@ -53,6 +53,7 @@ trait ContextUtil[C <: Quotes & scala.Singleton](val qctx: C): final class Input( val tpe: TypeRepr, + val qual: Term, val term: Term, val name: String )