Skip to content

Instantly share code, notes, and snippets.

@ephe-meral
Last active December 24, 2015 00:09
Show Gist options
  • Save ephe-meral/6715045 to your computer and use it in GitHub Desktop.
Save ephe-meral/6715045 to your computer and use it in GitHub Desktop.
Pickling 0.8.0-SNAPSHOT fails with out-of-mem error when trying to compile this...
import scala.pickling._
import json._
package testclasses {
sealed trait A
case class A1(b: B) extends A
case class A2(b: B) extends A
case class A3(b: B) extends A
case class A4(ab: Array[B]) extends A
case class A5(ab: Array[B]) extends A
case class A6(ab: Array[B]) extends A
sealed trait B
case class B1(c: C) extends B
case class B2(c: C) extends B
case class B3(c: C) extends B
case class B4(ac: Array[C]) extends B
case class B5(ac: Array[C]) extends B
case class B6(ac: Array[C]) extends B
sealed trait C
case class C1(d: D) extends C
case class C2(d: D) extends C
case class C3(d: D) extends C
case class C4(ad: Array[D]) extends C
case class C5(ad: Array[D]) extends C
case class C6(ad: Array[D]) extends C
sealed trait D
case class D1(i: Int) extends D
case class D2(s: String) extends D
case class D3(b: Boolean) extends D
case class D4(ai: Array[Int]) extends D
case class D5(as: Array[String]) extends D
case class D6(ab: Array[Boolean]) extends D
}
import testclasses._
object Jsonify {
def toJson(t: A) = t.pickle.value
def fromJson(s: String) = toJSONPickle(s).unpickle[A]
}
import scala.pickling._
import json._
package testclasses {
sealed trait A
case class A1(b: B) extends A
case class A2(b: B) extends A
case class A3(b: B) extends A
case class A4(b: B) extends A
case class A5(b: B) extends A
case class A6(b: B) extends A
sealed trait B
case class B1(c: C) extends B
case class B2(c: C) extends B
case class B3(c: C) extends B
case class B4(c: C) extends B
case class B5(c: C) extends B
case class B6(c: C) extends B
sealed trait C
case class C1(d: D) extends C
case class C2(d: D) extends C
case class C3(d: D) extends C
case class C4(d: D) extends C
case class C5(d: D) extends C
case class C6(d: D) extends C
sealed trait D
case class D1() extends D
case class D2() extends D
case class D3() extends D
case class D4() extends D
case class D5() extends D
case class D6() extends D
}
import testclasses._
object Jsonify {
def toJson(t: A) = t.pickle.value
def fromJson(s: String) = toJSONPickle(s).unpickle[A]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment