Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[kebs-spray-json] Lazy formats stopped working in 1.5.2 version #21

Closed
dbronecki opened this issue Feb 13, 2018 · 9 comments
Closed

[kebs-spray-json] Lazy formats stopped working in 1.5.2 version #21

dbronecki opened this issue Feb 13, 2018 · 9 comments

Comments

@dbronecki
Copy link
Contributor

dbronecki commented Feb 13, 2018

Using lazy format for recursive case class gives StackOverflowError after upgrading to 1.5.2

case class Category(
   name: String,
   parent: Option[Category]
)
  implicit val categoryFormat = jsonFormatRec[Category]
macro expansion has failed: java.lang.StackOverflowError
        at scala.reflect.internal.Symbols$TermSymbol.isClassConstructor(Symbols.scala:2817)
        at scala.reflect.internal.Symbols$TermSymbol.isConstructor(Symbols.scala:2819)
        at scala.tools.nsc.typechecker.Contexts$Context.nextOuter(Contexts.scala:620)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:881)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:904)
        at scala.tools.nsc.typechecker.Contexts$Context.withOuter$1(Contexts.scala:884)
        at scala.tools.nsc.typechecker.Contexts$Context.implicitss(Contexts.scala:901)
        at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1409)
        at scala.tools.nsc.typechecker.Implicits.inferImplicit(Implicits.scala:95)
        at scala.tools.nsc.typechecker.Implicits.inferImplicit$(Implicits.scala:82)
        at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:458)
        at scala.tools.nsc.typechecker.Implicits.inferImplicitFor(Implicits.scala:40)
        at scala.tools.nsc.typechecker.Implicits.inferImplicitFor$(Implicits.scala:39)
        at scala.tools.nsc.Global$$anon$1.inferImplicitFor(Global.scala:458)
        at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$applyImplicitArgs$2(Typers.scala:172)
        at scala.tools.nsc.typechecker.Typers$Typer.applyImplicitArgs(Typers.scala:165)
        at scala.tools.nsc.typechecker.Typers$Typer.$anonfun$adapt$1(Typers.scala:883)
        at scala.tools.nsc.typechecker.Typers$Typer.adaptToImplicitMethod$1(Typers.scala:477)
        at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1210)
        at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1207)
        at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit1(Implicits.scala:698)
        at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.typedImplicit0(Implicits.scala:635)
        at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$typedImplicit(Implicits.scala:503)
        at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.rankImplicits(Implicits.scala:954)
        at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.findBest(Implicits.scala:982)
        at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1039)
        at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1409)
        at scala.tools.nsc.typechecker.Implicits.inferImplicit(Implicits.scala:95)
        at scala.tools.nsc.typechecker.Implicits.inferImplicit$(Implicits.scala:82)
        at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:458)
        at scala.tools.nsc.typechecker.Implicits.$anonfun$inferImplicit$3(Implicits.scala:119)
        at scala.tools.nsc.typechecker.Implicits.inferImplicit(Implicits.scala:119)
        at scala.tools.nsc.typechecker.Implicits.inferImplicit$(Implicits.scala:117)
        at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:458)
        at scala.reflect.macros.contexts.Typers.inferImplicitValue(Typers.scala:44)
        at scala.reflect.macros.contexts.Typers.inferImplicitValue$(Typers.scala:42)
        at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
        at scala.reflect.macros.contexts.Context.inferImplicitValue(Context.scala:6)
        at pl.iterators.kebs.macros.MacroUtils.inferImplicitValue(MacroUtils.scala:34)
        at pl.iterators.kebs.json.macros.KebsSprayMacros.$anonfun$materializeRootJsonFormat$1(KebsSprayMacros.scala:31)
        at scala.collection.immutable.List.map(List.scala:283)
        at pl.iterators.kebs.json.macros.KebsSprayMacros.materializeRootJsonFormat(KebsSprayMacros.scala:31)
        at pl.iterators.kebs.json.macros.KebsSprayMacros.materializeRootFormat(KebsSprayMacros.scala:72)
        at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers.$anonfun$resolveJavaReflectionRuntime$4(JavaReflectionRuntimes.scala:34)
        at scala.tools.nsc.typechecker.Macros.macroExpandWithRuntime(Macros.scala:772)
@marcin-rzeznicki
Copy link
Contributor

Fix released in 1.5.3

marcin-rzeznicki pushed a commit that referenced this issue Feb 27, 2018
@luksow luksow reopened this Apr 5, 2018
@luksow
Copy link
Contributor

luksow commented Apr 5, 2018

Reopening as it seems it's back. Tests passes though.

@marcin-rzeznicki
Copy link
Contributor

Can't reproduce anymore - does anyone have this problem still?

@dbronecki
Copy link
Contributor Author

Yes, it's still an issue (when you bump Scala version)

@marcin-rzeznicki
Copy link
Contributor

Ah, 👌

@marcin-rzeznicki
Copy link
Contributor

marcin-rzeznicki commented May 26, 2018

Ok, I got some progress. Looks like my check for recursive implicit search (based on a flag) was a bit simplistic. Now, I have version which works OK (no StackOverflowException) - but it turns out that recursive formats need to be ascripted ie.
implicit val recFormat: JsonFormat[X] = jsonFormatRec[X] will work, but implicit val recFormat = jsonFormatRec[X] will not.
Is this OK?

@marcin-rzeznicki
Copy link
Contributor

marcin-rzeznicki commented May 26, 2018

⬆️ in Scala 2.12.6, that is

@dbronecki
Copy link
Contributor Author

That's OK. Explicitly adding type is not a big problem.

@marcin-rzeznicki
Copy link
Contributor

Then fixed in fa99940 :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants