A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/playframework/play-json/issues/974 below:

Scala 3 macro cannot find Writes for Seq[Map[String, T]] · Issue #974 · playframework/play-json · GitHub

Code
import play.api.libs.json._

case class Result(status: String)
object Result {
  implicit val format: OFormat[Result] = Json.format[Result]
}

case class Response(results: Seq[Map[String, Result]])
object Response {
  implicit val format: OFormat[Response] = Json.format[Response]
}

val response = Response(results = Seq(Map("123" -> Result("ok"))))
println(Json.toJson(response))
Scala 2.13.12 (works)
-> % scala-cli -S 2.13.12 playJsonSeqMapMacro.sc
Compiling project (Scala 2.13.12, JVM (17))
Compiled project (Scala 2.13.12, JVM (17))
{"results":[{"123":{"status":"ok"}}]}
Scala 3.3.1 (fails)
-> % scala-cli -S 3.3.1 playJsonSeqMapMacro.sc
Compiling project (Scala 3.3.1, JVM (17))
[error] ./playJsonSeqMapMacro.sc:12:44
[error] Instance not found: play.api.libs.json.Writes[scala.collection.immutable.Seq[scala.collection.immutable.Map[String, playJsonSeqMapMacro_.Result]]]
[error]   implicit val format: OFormat[Response] = Json.format[Response]
[error]                                            ^^^^^^^^^^^^^^^^^^^^^
Error compiling project (Scala 3.3.1, JVM (17))
Compilation failed

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4