pickling
pickling copied to clipboard
diverging implicit expansion error
I get the error:
Description Resource Path Location Type
diverging implicit expansion for type scala.pickling.Pickler[Map[scratch.pickletest.A,Int]] starting with macro method genPickler in trait GenPicklers pickletest.scala
on the file
package scratch
object pickletest {
sealed abstract class A(val cs1: Seq[C], val cs2: Seq[C])
case class B(override val cs1: Seq[C], override val cs2: Seq[C])
extends A(cs1, cs2)
sealed abstract trait C;
case object Unresolved extends C
sealed abstract trait NamedTrait extends C
case class Named(val typeParams: Seq[C]) extends NamedTrait
def main(args: Array[String]) {
import scala.pickling.Defaults._
import scala.pickling.json._
val l: Map[A, Int] = Map(B(Seq(Unresolved), Seq(Unresolved)) -> 2)
val wire: String = l.pickle.value
println(wire)
}
}
many small tweaks will make the above compile, for instance being more specific about the imports
package scratch
object pickletest {
sealed abstract class A(val cs1: Seq[C], val cs2: Seq[C])
case class B(override val cs1: Seq[C], override val cs2: Seq[C])
extends A(cs1, cs2)
sealed abstract trait C;
case object Unresolved extends C
sealed abstract trait NamedTrait extends C
case class Named(val typeParams: Seq[C]) extends NamedTrait
def main(args: Array[String]) {
import scala.pickling.Defaults.genPickler
import scala.pickling.Defaults.pickleOps
import scala.pickling.json.pickleFormat
val l: Map[A, Int] = Map(B(Seq(Unresolved), Seq(Unresolved)) -> 2)
val wire: String = l.pickle.value
println(wire)
}
}
I am using scala 2.11.6 and scala-pickling_2.11 version 0.10.0.