From 07f347b0f4b97dbeeec8be5adbc4beb498e1a491 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sun, 22 Nov 2020 15:29:16 -0500 Subject: [PATCH] Revert "Strip out raw Ident(_) in blocks if it's synthetic" This reverts commit a44aee9ac183d960c8f946a782447fba1f17b0ef. --- .../scala/sbt/internal/util/appmacro/ContextUtil.scala | 10 ---------- .../scala/sbt/internal/util/appmacro/Instance.scala | 4 +++- 2 files changed, 3 insertions(+), 11 deletions(-) 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 1a4658813..4bec6e63d 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 @@ -312,16 +312,6 @@ final class ContextUtil[C <: blackbox.Context](val ctx: C) { case Converted.Failure(p, m) => ctx.abort(p, m) case _: Converted.NotApplicable[_] => super.transform(tree) } - // try to workaround https://github.com/scala/bug/issues/12112 by removing raw Ident(_) in blocks - case Block(stats0, expr0) => - val stats = stats0 flatMap { stat0 => - val stat = super.transform(stat0) - stat match { - case Typed(ident @ Ident(_), _) if ident.symbol.isSynthetic => None - case _ => Some(stat) - } - } - Block(stats, super.transform(expr0)) case _ => super.transform(tree) } } diff --git a/core-macros/src/main/scala/sbt/internal/util/appmacro/Instance.scala b/core-macros/src/main/scala/sbt/internal/util/appmacro/Instance.scala index f077ed5ab..5c15a3346 100644 --- a/core-macros/src/main/scala/sbt/internal/util/appmacro/Instance.scala +++ b/core-macros/src/main/scala/sbt/internal/util/appmacro/Instance.scala @@ -187,7 +187,9 @@ object Instance { qual.foreach(checkQual) val vd = util.freshValDef(tpe, qual.pos, functionSym) inputs ::= new Input(tpe, qual, vd) - util.refVal(selection, vd) + // try to workaround https://github.com/scala/bug/issues/12112 by calling Predef.identity(...) + val rv = util.refVal(selection, vd) + q"scala.Predef.identity[$tpe]($rv: $tpe)" } def sub(name: String, tpe: Type, qual: Tree, replace: Tree): Converted[c.type] = { val tag = c.WeakTypeTag[T](tpe)