diff options
Diffstat (limited to 'tests/disabled/macro/run/exprs_serialize.scala')
-rw-r--r-- | tests/disabled/macro/run/exprs_serialize.scala | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/disabled/macro/run/exprs_serialize.scala b/tests/disabled/macro/run/exprs_serialize.scala new file mode 100644 index 000000000..85cf55e1c --- /dev/null +++ b/tests/disabled/macro/run/exprs_serialize.scala @@ -0,0 +1,39 @@ +import java.io._ +import scala.reflect.runtime.universe._ +import scala.reflect.runtime.{universe => ru} +import scala.reflect.runtime.{currentMirror => cm} + +object Test extends dotty.runtime.LegacyApp { + def test(expr: Expr[_]) = + try { + val fout = new ByteArrayOutputStream() + val out = new ObjectOutputStream(fout) + out.writeObject(expr) + out.close() + fout.close() + + val fin = new ByteArrayInputStream(fout.toByteArray) + val in = new ObjectInputStream(fin) + val reexpr = in.readObject().asInstanceOf[ru.Expr[_]].in(cm) + in.close() + fin.close() + + println(reexpr) + } catch { + case ex: Exception => + println(ex) + } + + test(reify(2)) + test(reify{def foo = "hello"; foo + "world!"}) + test(reify { + def foo(x: Int) = { + class Local { + val f = 2 + } + val obj = new Local + x % obj.f == 0 + } + foo(5) + }) +} |