Skip to content

Commit

Permalink
Fix #974 – Scala 3 macro cannot find Writes for Seq[Map[String, T]] (#…
Browse files Browse the repository at this point in the history
…993)

Moved the deprecated method `DefaultWrites.mapWrites` into `LowPriorityWrites` to get rid of the ambiguity.
  • Loading branch information
sgodbillon authored Mar 5, 2024
1 parent fe39d65 commit a842faf
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ trait DefaultWrites extends LowPriorityWrites with EnumerationWrites {
* Serializer for Map[String,V] types.
*/
@deprecated("Use `genericMapWrites`", "2.8.0")
implicit def mapWrites[V: Writes]: OWrites[MapWrites.Map[String, V]] = MapWrites.mapWrites
def mapWrites[V: Writes]: OWrites[MapWrites.Map[String, V]] = MapWrites.mapWrites

implicit def keyMapWrites[K: KeyWrites, V: Writes, M[K, V] <: MapWrites.Map[K, V]]: OWrites[M[K, V]] = {
val kw = implicitly[KeyWrites[K]]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@ final class WritesSharedSpec extends AnyWordSpec with Matchers {
"write lazy maps" in {
Json.toJson(Map("a" -> 1).map(kv => kv._1 -> (kv._2 + 1))).mustEqual(Json.obj("a" -> 2))
}

"write a map nested in a seq" in {
Json.toJson(Seq(Map("a" -> 1))).mustEqual(Json.arr(Json.obj("a" -> 1)))
}
}

"Iterable writes" should {
Expand Down

0 comments on commit a842faf

Please sign in to comment.