From a092be25db54db7bae840b38edccf8935c5d15a1 Mon Sep 17 00:00:00 2001 From: Jan Chyb Date: Mon, 7 Jul 2025 12:31:00 +0200 Subject: [PATCH] Add regression test --- tests/pos-macros/i22585/Macro.scala | 22 ++++++++++++++++++++++ tests/pos-macros/i22585/Main.scala | 5 +++++ 2 files changed, 27 insertions(+) create mode 100644 tests/pos-macros/i22585/Macro.scala create mode 100644 tests/pos-macros/i22585/Main.scala diff --git a/tests/pos-macros/i22585/Macro.scala b/tests/pos-macros/i22585/Macro.scala new file mode 100644 index 000000000000..0daf304ab3a7 --- /dev/null +++ b/tests/pos-macros/i22585/Macro.scala @@ -0,0 +1,22 @@ +import scala.quoted.* + +trait Hammer[I, O] { + def hammer(input: I): O +} + +object Hammer { + inline def makeProductHammerMacro[I, O](): Hammer[I, O] = + ${ makeProductHammerMacroImpl[I, O] } + + def makeProductHammerMacroImpl[I: Type, O: Type](using Quotes): Expr[Hammer[I, O]] = + '{ makeHammer[I, O]() } + + inline def makeHammer[S, O](): Hammer[S, O] = + new Hammer[S, O] { + lazy val (hammer: Hammer[?, Int], idx: Int) = ??? + + override def hammer(input: S): O = { + hammer.hammer(???.asInstanceOf).asInstanceOf[O] + } + } +} \ No newline at end of file diff --git a/tests/pos-macros/i22585/Main.scala b/tests/pos-macros/i22585/Main.scala new file mode 100644 index 000000000000..6b09d1fb719c --- /dev/null +++ b/tests/pos-macros/i22585/Main.scala @@ -0,0 +1,5 @@ +object HammerSpec { + case class A(x: Int) + case class B(x: Int) + Hammer.makeProductHammerMacro[A, B]() +} \ No newline at end of file