diff --git a/core/src/main/scala-2/sttp/tapir/internal/CaseClassUtil.scala b/core/src/main/scala-2/sttp/tapir/internal/CaseClassUtil.scala index 30757ad845..59b04366c6 100644 --- a/core/src/main/scala-2/sttp/tapir/internal/CaseClassUtil.scala +++ b/core/src/main/scala-2/sttp/tapir/internal/CaseClassUtil.scala @@ -23,7 +23,7 @@ private[tapir] class CaseClassUtil[C <: blackbox.Context, T: C#WeakTypeTag](val lazy val instanceFromValues: Tree = if (fields.size == 1) { q"$companion.apply(values.head.asInstanceOf[${fields.head.typeSignature}])" } else { - q"$companion.tupled.asInstanceOf[Any => $t].apply(sttp.tapir.internal.SeqToParams(values))" + q"($companion.apply _).tupled.asInstanceOf[Any => $t].apply(sttp.tapir.internal.SeqToParams(values))" } lazy val schema: Tree = c.typecheck(q"_root_.scala.Predef.implicitly[_root_.sttp.tapir.Schema[$t]]") diff --git a/core/src/test/scala/sttp/tapir/EndpointTest.scala b/core/src/test/scala/sttp/tapir/EndpointTest.scala index 2f20df18a0..10c780edc0 100644 --- a/core/src/test/scala/sttp/tapir/EndpointTest.scala +++ b/core/src/test/scala/sttp/tapir/EndpointTest.scala @@ -401,4 +401,15 @@ class EndpointTest extends AnyFlatSpec with EndpointTestExtensions with Matchers |query[Int]("q1").and(query[String]("q2")).mapTo[Wrapper] """) } + + "mapTo" should "compile for case class with defined companion object" in { + assertCompiles(""" + import sttp.tapir.generic.auto._ + + case class Wrapper(i: Int, s: String) + object Wrapper + + formBody[Wrapper] + """) + } }