diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2015-09-24 12:54:19 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2015-09-24 12:54:19 +1000 |
commit | 58a5c5a57c1ada086c4e728586537d64dca765ef (patch) | |
tree | 54bf3c3c75a1911f7a570ab16831d71c3fbd4ef4 /test/files/run | |
parent | df704ef7389ff6265afc1278783489ee97ee4ce7 (diff) | |
parent | b0b5b09f90b84696695538a42e7b7ff36555c0f9 (diff) | |
download | scala-58a5c5a57c1ada086c4e728586537d64dca765ef.tar.gz scala-58a5c5a57c1ada086c4e728586537d64dca765ef.tar.bz2 scala-58a5c5a57c1ada086c4e728586537d64dca765ef.zip |
Merge pull request #4763 from lrytz/inlineDeserializeLambda
Add $deserializeLambda$ when inlining an indyLambda into a class
Diffstat (limited to 'test/files/run')
-rw-r--r-- | test/files/run/inlineAddDeserializeLambda.scala | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/files/run/inlineAddDeserializeLambda.scala b/test/files/run/inlineAddDeserializeLambda.scala new file mode 100644 index 0000000000..a6bafd0f49 --- /dev/null +++ b/test/files/run/inlineAddDeserializeLambda.scala @@ -0,0 +1,20 @@ +class C { @inline final def f: Int => Int = (x: Int) => x + 1 } + +object Test extends App { + import java.io._ + + def serialize(obj: AnyRef): Array[Byte] = { + val buffer = new ByteArrayOutputStream + val out = new ObjectOutputStream(buffer) + out.writeObject(obj) + buffer.toByteArray + } + def deserialize(a: Array[Byte]): AnyRef = { + val in = new ObjectInputStream(new ByteArrayInputStream(a)) + in.readObject + } + + def serializeDeserialize[T <: AnyRef](obj: T) = deserialize(serialize(obj)).asInstanceOf[T] + + assert(serializeDeserialize((new C).f).isInstanceOf[Function1[_, _]]) +} |