【发布时间】:2018-09-13 20:16:39
【问题描述】:
我有一个项目正在生成编译时堆栈溢出错误。
我正在使用 Quill 进行持久性,它使用宏。我有一个包含 600 多个字段的案例类,代表一个数据库表。
在编译期间,我得到以下无限递归:
ervice.scala:27: UPDATE email_user SET password_hash = ?在哪里用户 ID = ? [info] .run(quote { [info] ^ java.lang.StackOverflowError at scala.tools.nsc.transform.Erasure$Eraser.adaptMember(Erasure.scala:686) 在 scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:773) 在 scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5584) 在 scala.tools.nsc.typechecker.Typers$Typer.typedInternal(Typers.scala:5616) 在 scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5557) 在 scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5562) 在 scala.tools.nsc.typechecker.Typers$Typer.$anonfun$typed1$38(Typers.scala:4708) 在 scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:698) 在 scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4710) 在 scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4757) 在 scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5530) 在 scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5547) 在 scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:773) 在 scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5584)
即使案例字段数量的 22 个字段限制现在已经消失,我是否遇到了一些实际限制?
如果我没有使用 Quill 访问有问题的表/大案例类,则会出现此编译错误。
感谢您的任何见解!
【问题讨论】: