argonaut-shapeless icon indicating copy to clipboard operation
argonaut-shapeless copied to clipboard

Cannot autogenerate encoders/decoders for recursive ADTs

Open clayrat opened this issue 7 years ago • 2 comments

Trying to run this

case class Foo(id: Int, foos: Vector[Foo])

val fooE = EncodeJson.of[Foo]

results in a

java.lang.StackOverflowError
    at Main$anon$mkEncodeJson$macro$33$1.inst$macro$25$lzycompute(Main.scala:24)
    at Main$anon$mkEncodeJson$macro$33$1.inst$macro$25(Main.scala:24)
    at Main$anon$mkEncodeJson$macro$33$1.inst$macro$21$lzycompute(Main.scala:24)
    at Main$anon$mkEncodeJson$macro$33$1.inst$macro$21(Main.scala:24)
    at Main$anon$mkEncodeJson$macro$33$1$$anonfun$inst$macro$5$1.apply(Main.scala:24)
    at Main$anon$mkEncodeJson$macro$33$1$$anonfun$inst$macro$5$1.apply(Main.scala:24)
    at shapeless.compat.Lazy$$anon$2.value$lzycompute(Lazy.scala:105)
    at shapeless.compat.Lazy$$anon$2.value(Lazy.scala:105)
    at argonaut.derive.ProductEncodeJson$$anon$5.apply(MkEncodeJson.scala:76)
    at argonaut.derive.MkEncodeJson$$anon$12.encodeJson(MkEncodeJson.scala:161)
    at argonaut.DerivedInstances$class.mkEncodeJson(Shapeless.scala:41)
    at argonaut.Shapeless$.mkEncodeJson(Shapeless.scala:70)
.... (repeats for a while)

on 1.0.0-M1 and upwards, while running correctly on 0.3.1. Same for DecodeJson.

clayrat avatar Sep 26 '16 14:09 clayrat

I've hit the same problem. Did you ever find a solution?

alltonp avatar Feb 16 '18 21:02 alltonp

I've rolled back to 0.3.1, haven't updated it since.

clayrat avatar Feb 16 '18 22:02 clayrat